TL;DR是否有任何官方文档详细描述<private>
/“复制本地”选项如何与 MSBuild 一起使用?应该包含哪些价值观?
当您将Visual Studio 中一个项目的项目引用添加到另一个项目时,它会将一个添加<ProjectReference Include=".....csproj">
到.csproj
MSBuild 文件中。
当您将来自 Visual Studio 中的一个项目的文件引用添加到文件系统中的程序集文件时,它将添加<Reference Include="Foo"> <HintPath>....Foo.dll</HintPath> ...
到.csproj
MSBuild 文件中。
在这两种情况下,对于 Visual Studio Setting ,都会添加Copy Local = True|False
一个子元素<Private>True</Private>
or 。<Private>False</Private>
Reference
并且ProjectReference
似乎记录在Common MSBuild Project Items下:
<ProjectReference> Represents a reference to another project. Item Name Description ------------------------- Name ... Project ... Package ... <Reference> Represents an assembly (managed) reference in the project. Item Name Description -------------------------- HintPath Optional string. Relative or absolute path of the assembly. Name ... ... Private Optional string. Determines whether to copy the file to the output directory. Values are: 1. Never 2. Always 3. PreserveNewest
你会注意到,
ProjectReference
根本不记录该<private>
项目Reference
没有列出True
或False
作为可能的值。
所以。嗯?是否有任何官方文档(我会对一个好的博客条目感到非常满意)详细描述了该<private>
选项的工作原理?医生只是大错特错还是还有更多?
我的 VS 2013 Express 的示例片段在这里:
...
<ItemGroup>
<Reference Include="ClassLibrary2">
<HintPath>C:\Somewhere\ClassLibrary2.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
...
<ItemGroup>
<ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj">
<Project>{861dd746-de2e-4961-94db-4bb5b05effe9}</Project>
<Name>ClassLibrary1</Name>
<Private>False</Private>
</ProjectReference>
...