我正在使用自定义构建步骤将C++ 项目的构建 DLL(即$(TargetPath) )复制到磁盘上的不同位置。
我已将Output
自定义构建步骤设置为目标 DLL 路径,并Additional Dependencies
设置为$(TargetPath)
- 我正在复制的文件,希望 VS 仅在源 DLL 比目标 DLL 更新时才运行该步骤。
但是,每次我构建项目时,VS 都会运行自定义构建步骤 - 所以它似乎无法判断不需要执行复制,(源 DLL $(TargetPath) 没有改变)。我必须错误地配置了步骤。
什么设置会给我我想要的行为(即 - 如果项目构建并且自定义构建步骤成功,VS 认为项目是最新的)?
在 VS 输出窗口中,我看到这一行似乎暗示 Visual Studio 将 vcxproj 作为触发构建步骤的文件。我希望它使用$(TargetPath):
Input file "MyProject.vcxproj" is newer than output file "c:\custom\build\step\copies\the\dll\here.dll".
(PS:我应该补充一下,我最初使用的是Post Build Step,但是如果失败了,VS认为该项目已成功构建,并且在您第二次构建时不会再次运行它)