我有很多Visual Studio項目解決方案在多個目錄中(所有的擴展名爲.sln),我想編寫一個簡單的批處理腳本,它將自動構建批處理文件中列出的所有解決方案。如何從命令行爲Visual Studio創建簡單構建腳本?
我可以手動生成通過啓動一個解決方案Visual Studio Command Prompt
(這僅僅是一個用下面的命令的命令行實例執行
"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
在這之後我再通過調用生成項目:
devenv "path\to\solutionFile\projectSolution1.sln" /build Debug
這將構建項目(假設該項目沒有錯誤),我沖洗和重複每一個項目我想BUI LT。
然而時,我有一個批處理文件名爲如下build.bat
:
"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
echo "Starting Build for all Projects with proposed changes"
echo .
devenv "path\to\solutionFile\projectSolution2.sln" /build Debug
devenv "another\path\to\solutionFile\projectSolution3.sln" /build Debug
devenv "yet\another\path\to\solutionFile\projectSolution4.sln" /build Debug
echo "All builds completed."
pause
批處理腳本只執行第一線,並等待,直到我在exit
執行先於其他類型。基於我對批處理文件和所有StackOverflow問題所做的研究,我對此的理解是,cmd
實際上調用其自身的另一個實例,該實例執行vcvarsall.bat
來設置構建環境。
這不會作爲打字exit
工作殺死與devenv
該實例設置和之後的命令不能執行如devenv
是不可識別的命令(因爲導出路徑將不再存在)
總之 ,如何實現這一點(將其餘命令傳遞給定義爲devenv
的cmd實例)在一個批處理文件中?我知道這不是一種強有力的方法(並且有很多工具可以做到這一點)調用構建,但我只希望有一個批處理腳本來自動化單獨調用這些項目的手動工作。
我測試腳本,發現「呼叫」......「x86」線應該在一條新線上。我試圖編輯代碼,但SO需要至少6個字符更改... :-( –
@MaartenDocter良好的捕獲,謝謝!我已更新它。代碼格式得到fudged當我通過虛擬機複製粘貼。:( – matrixanomaly
太棒了!感謝您的編輯! –