我有一個包含在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