前几天我在项目文件中看到了这一点:
<ProjectReference Include="Foo\Bar\Baz.csproj">
<Project>{A GUID HERE}</Project>
<Name>Baz</Name>
<Private>False</Private> <!-- ??? -->
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
</ProjectReference>
ProjectReference
除了中的每个节点,它们似乎都是自我解释的(引用的项目文件,GUID,在解决方案资源管理器中显示的名称以及当前项目是否应链接到引用的项目)Private
,而“ 公共MSBuild项目项”页面则没有。 t记录此值。(有一个Private
文件化的设置Reference
,而不是ProjectReference
-但它有Never
,Always
和PreserveNewest
设置,而不是真假)
此设置有什么作用?
2
就MSBuild而言,ProjectReference是项目组(即列表),而Private是所包含项目的项目元数据。您的问题的答案在于任何包含它的内容。概括地说,这是什么类型的项目?也许用csharp标记您的问题。
—
汤姆·布洛杰特
我的意思是“导入”而不是“包含”。
—
Tom Blodget 2014年
@malexander:如果您不删除它,我认为您的回答很好……
—
Billy ONeal 2014年
@汤姆:当然,严格来说是真的。另一方面,
—
Billy ONeal 2014年
ProjectReference
(至少)C#和C ++ MSBuild支持基础结构可以识别该项目。看起来大部分是在Microsoft.Common.CurrentVersion.targets
文件中处理的。