2012-10-16 63 views
0

我們使用Jenkins自動構建我們的解決方案。我們通過命令行調用devenv(Visual Studio 2010):devenv PathToProject \ Project.sln/build發佈devenv命令行不顯示有缺陷項目的錯誤

當解決方案包含有缺陷的項目(* .vdproj,* .csproj)時,在Visual Studio中打開解決方案IDE將導致錯誤消息。但是,當使用上述命令行構建解決方案時,根本不顯示任何錯誤消息,因此Jenkins報告成功。

如果您想重現該問題,只需在編輯器中打開vdproj文件,並在文件的某處刪除}。

這個問題怎麼解決?

+0

我知道這顯然是你目前的問題,但是你真的*經常*最終會損壞項目文件嗎?如何/爲什麼?你不應該解決這個問題嗎? –

+0

當然,這並不經常發生。但持續集成的含義恰恰是應該自動檢測這些問題。 –

回答

0

在Visual Studio 2012上,/Out將構建消息寫入文本文件。

devenv.exe YourVisualStudioSolution.sln /build "Debug|Win32" /Out "YourLogFile.txt" 

According to MSDN,這個開關也應該在Visual Studio 2010上工作。

+0

感謝您的提示。詹金斯無論如何都會接收輸出,並使其在構建的「控制檯輸出」頁面上可用,即將輸出寫入文件只會使事情更加複雜。而devenv過程的返回值不會改變,是嗎?這是關鍵問題 - 在失敗的情況下返回失敗並不成功。 –

+0

唯一的方法是解析devenv控制檯輸出的最後一行,也就是說========== Build:1成功,0失敗,0最新,0使用類似['tail']的工具跳過=========='(http://linux.about.com/library/cmd/blcmdl1_tail.htm)。 – rwong

+0

@rwong另一個煩惱是,在23個項目的解決方案中,這些信息是不夠的;如果它表示「22成功,1失敗」,它不會說哪一個失敗。 – Nyerguds