【发布时间】:2014-12-02 06:56:27
【问题描述】:
前几天我在一个项目文件中看到了这个:
<ProjectReference Include="Foo\Bar\Baz.csproj">
<Project>{A GUID HERE}</Project>
<Name>Baz</Name>
<Private>False</Private> <!-- ??? -->
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
</ProjectReference>
ProjectReference 中的每个节点似乎都是不言自明的(引用的项目文件、GUID、在解决方案资源管理器中显示的名称,以及当前项目是否应该链接到引用的项目),Private 除外, Common MSBuild Project Items 页面没有记录这个值。 (有一个 Private 设置记录为 Reference 而不是 ProjectReference - 但它有 Never、Always 和 PreserveNewest 设置,不是真假)
这个设置有什么作用?
【问题讨论】:
-
就 MSBuild 而言,ProjectReference 是一个项目组(即列表),Private 是包含项目的项目元数据。您的问题的答案在于任何包含的内容。更笼统地说,它是什么特定类型的项目?也许用 csharp 标记你的问题。
-
我的意思是“导入”而不是“包含”。
-
@malexander:如果您取消删除它,我认为您的回答很好......
-
@Tom:当然,严格来说是这样。另一方面,
ProjectReference项目(至少)被 C# 和 C++ MSBuild 支持基础架构识别;看起来它主要在Microsoft.Common.CurrentVersion.targets文件中处理。
标签: visual-studio msbuild