我有一个包含在NMakeBuildCommandLine部分明确的Windows shell命令的vcxproj文件:代码重用文件的存在测试在Visual Studio中vcxproj文件
<NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
move file1 file2
</NMakeBuildCommandLine>
我使用的MSBuild执行vcxproj,直接或通过sln文件。问题是,当file1
不存在,输出是非常无益的,甚至没有列出该文件的名称:
The system cannot find the file specified.
我天真的解决方案是,以取代move file1 file2
:
if exist file1 (move file1 file2) else (echo file1 does not exist && exit 1)
(注我需要写&&
而不是&&
。)
这工作,但因为我需要在每行file1
三次,并确保他们的所有比赛是容易出错。 file1
只是需要移动的许多文件之一。而且,各种构建配置中的一系列命令实际上是相同的。
如何避免这两个命令行内和跨构建配置重复自己?我认为UserMacros
属性组可能会帮助我,但我无法弄清楚如何通过IDE编写这样的宏。 (右键单击Visual Studio中的项目不会显示用于输入用户宏的字段。)我也无法在Internet上找到关于此部分语法的任何讨论,所以我不知道如何使用文本编辑器(我真的更喜欢)。
在vcxproj文件中可能还有一种更好的方法来识别需要存在的文件,所以我对任何选择都是开放的。
可能是最好的开始查找如何使用属性MSBuild的。在文本编辑器中打开vcxproj,将 path/to/file 添加到PropertyGroup,然后使用'if exists $(file1)...'? –
stijn
@stijn,这是我正在寻找的信息。有用。如果你把它作为答案,我会upvote它和(除非有更好的出现)选择它。谢谢! – Alan