我正在使用自定义构建步骤将C++项目的构建DLL(即$(TargetPath))复制到磁盘上的其他位置。
我已将自定义构建步骤的Output
设置为目标DLL路径,将Additional Dependencies
设置为$(TargetPath)
-即我要复制的文件,希望VS只有在源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".
< p >< em > (PS:我要补充一点,起初我使用的是“构建后操作”,但如果此操作失败,则VS会将项目视为成功构建,并且在第二次构建时不会再次运行它)