我的 C++ 项目包含一组(非代码)文件,需要逐字复制到输出目录。Content
我将它们作为节点添加到我的 .vcxproj并CopyToOutputDirectory
设置为PreserveNewest
. 例如:
<ItemGroup>
<Content Include="util.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="lib_util_needs.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<!-- etc. -->
</ItemGroup>
这几乎可以工作;当我构建项目时,如果每个内容文件的时间戳比已经存在的时间戳更新,则每个内容文件都会正确复制到输出目录。但是......如果我更新其中一个内容文件而不同时修改实际编译的代码文件,Visual Studio 2017 会得出结论,该项目已经是最新的,不会构建,并且不会复制较新版本的内容文件到输出目录。对此我能做些什么吗?不起作用的事情:
- 设置
PublishState
为节点Prerequisite
下Content
- 将内容文件列为
DependentUpon
代码文件节点下的节点
编辑:经过进一步调查,该行为似乎取决于内容文件的扩展名。例如,dll 以我想要的方式运行(如果时间戳已更新,则项目标记为脏并构建),但 exe 不会。