私の C++ プロジェクトには、出力ディレクトリに逐語的にコピーする必要がある一連の (コード以外の) ファイルが含まれています。.vcxprojに設定されたContent
ノードとしてそれらを追加しました。例えば:CopyToOutputDirectory
PreserveNewest
<ItemGroup>
<Content Include="util.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="lib_util_needs.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<!-- etc. -->
</ItemGroup>
これはほとんど機能します。プロジェクトをビルドすると、タイムスタンプが既存のものよりも新しい場合、各コンテンツ ファイルが出力ディレクトリに正しくコピーされます。しかし...実際のコンパイル済みコード ファイルを同時に変更せずにこれらのコンテンツ ファイルの 1 つを更新すると、Visual Studio 2017 はプロジェクトが既に最新であると判断し、ビルドせず、新しいバージョンのファイルをコピーしません。コンテンツ ファイルを出力ディレクトリにコピーします。これについて私にできることはありますか?動作しないもの:
- ノード下
PublishState
への設定Prerequisite
Content
DependentUpon
コード ファイルのノードの下にコンテンツ ファイルをノードとしてリストする
編集: さらに調査した結果、動作はコンテンツ ファイルの拡張子に依存するようです。たとえば、dll は希望どおりに動作します (タイムスタンプが更新された場合、プロジェクトはダーティとマークされ、ビルドされます) が、exe はそうではありません。