最近用bat檔案調用vcbuild或者msbuild,對於只調用簡單的命令列,可以很快上手,可以查詢msdn的關於msbuild的使用指導http://msdn.microsoft.com/zh-cn/library/0k6kkbsd(vcbuild版本較老,可以側重msbuild)。
什麼是vcbuild如何使用vcbuild,讀者可以在網上查詢,使用可以參考http://www.cnblogs.com/tianfang/archive/2007/11/23/969908.html,本篇主要是用Bat檔案批處理vcbuild.exe。運用bat檔案在批量處理工程時可節省大量時間。需要注意的是要把vcbuild.exe的路徑設定在環境變數,msbuild.exe要設定環境變數同時要注意版本的選擇。bat檔案set
path會衝掉系統內容變數,使用時注意查看(set)環境變數是否有系統內容變數。
msbuild的說明與不同,可以查看http://www.blueidea.com/tech/program/2010/7571.asp。命令列參數減少是最直觀的,但是使用更將複雜,個人認為對與常用的build主要關注switches中的/target與/property,這兩個開關與VCBUILD
[options] [project | solution] [config | $ALL]中的[options] [solution]功能相似,是常用命令,具體意義與詳細使用可以參考http://msdn.microsoft.com/zh-cn/library/ms164311。
msbuild也不是萬能的,它雖然能夠重建項目,但是也有局限性,http://connect.microsoft.com/VisualStudio/feedback/details/690318/msbuild-doesnt-parse-environment-variables-in-sln-files是我遇到的問題,當project用環境變數去尋找需要depends的file或者projects時,vs可以很好的運行,但使用msbuild重建該project時,msbuild不能解析環境變數。例子如下
把depends的projects路徑設定在環境變數中
在相應的project.sln中可以找到相應的配置
vs能夠正常運行
當用msbuild.exe重建project時就會報錯,找不到該檔案
這個問題Microsoft給出的解答是軟體功能問題,暫時不能解決。http://connect.microsoft.com/VisualStudio/feedback/details/690318/msbuild-doesnt-parse-environment-variables-in-sln-files
問題已解決
最好用devenv,命令列參考http://www.cnblogs.com/Ihaveadream/archive/2008/04/25/1170885.html,同時也要設定環境變數,本人環境變數為C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE,參考網上devenv同樣可以取代vcbuild。