次のnuspecファイルを検討してください。
<?xml version="1.0"?>
<package >
[SOME METADATA]
<files>
<file src="bin\x64\$configuration$\GR*.filetype" target="content\" />
</files>
</package>
上記は、「GR」で始まるファイルタイプファイルを正常にパッケージ化し、それらを新しい参照ソリューションに追加しました。
問題は、これらのファイルを常に出力ディレクトリにコピーしたいということです。新しいソリューションのプロパティを手動で修正せずに、nuspecを介してこれを行うことはできますか?
Nuspecファイルの「copytooutputdirectory」プロパティを設定するにはどうすればよいですか?
マーティンは正しい方向を指摘しました、私は前に同じ要求を持っています、そして kjbartelの答え は私にとっていいです。私はあなたの質問のためのより詳細な答えをここに投稿します、これがあなたにいくつかの助けを与えることを願っています。
この質問を解決するには、以下の手順に従います。
プロジェクトフォルダーにxx.targetsファイルを追加し、ターゲットファイルの名前がパッケージIDと同じ名前であることを確認します(TestDemoは私のパッケージIDであるため、.targetsの名前はTestDemo.targetsです)。
ターゲットファイルに以下のコードを追加します。
<Project xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)GRabc.txt">
<Link>GRabc.txt</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
注:「$(MSBuildThisFileDirectory)」のパスは相対パスである必要があります。慣れていない場合は、絶対パスを使用できます。
Nuspecファイルで、必要なファイルをターゲットファイルと一緒にBuildディレクトリに追加します。
<files>
<file src="bin\x64\Debug\GR*.txt" target="Build\" />
<file src="TestDemo.targets" target="Build\" />
<file src="bin\Debug\TestDemo.dll" target="lib\462" />
</files>
このパッケージをパックしてから、他のプロジェクトに追加してテストします。正常に動作します。