TL;DR<private>
/ "Copy Local" オプションが MSBuild でどのように機能するかを詳しく説明している公式ドキュメントはありますか? そして、それに入る値は何ですか?
Visual Studio のあるプロジェクトから別のプロジェクトへのプロジェクト参照を追加<ProjectReference Include=".....csproj">
すると、.csproj
MSBuild ファイルに が追加されます。
Visual Studio の 1 つのプロジェクトからファイル システムのアセンブリ ファイルにファイル参照を追加<Reference Include="Foo"> <HintPath>....Foo.dll</HintPath> ...
すると、.csproj
MSBuild ファイルに が追加されます。
どちらの場合も、Visual Studio SettingCopy Local = True|False
のサブ要素<Private>True</Private>
or<Private>False</Private>
が追加されます。
Reference
Common MSBuild Project ItemsProjectReference
の下に文書化されているようです:
<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>
...