2010-06-22 253 views
0

我遇到了MSBuild腳本的問題,因爲它正確執行,但在TFS Build Explorer中報告失敗(紅色X圖標)。然而,儘管所有的報告構建失敗,如果我檢查日誌,他們看起來很好,和結束:MSBuild報告構建失敗,但日誌報告構建成功


完成項目「TFSBuild.proj」建設目標「EndToEndIteration」。 完成構建項目「C:\ Builds \ EDRM Development \ CI_Development_IW471_UserGroup_CG3 \ BuildType \ TFSBuild.proj」(EndToEndIteration target(s))。

構建成功。 0警告(S) 0錯誤(S)


究竟是用來確定構建腳本成功構建資源管理器?

該腳本本身使用MSBuild擴展包(來自CodePlex)來構建包含40個VB6項目的解決方案。爲了能夠通過團隊構建來運行,我已經實現了目標EndToEndIteration,將構建目標作爲「DependsOnTargets」。 EndToEndIteration是我在腳本中實現的唯一一個團隊構建目標(它似乎是唯一必需的目標?)。

當我從命令行運行腳本時,它也報告成功,所以只有Build Explorer表示失敗。

任何想法爲什麼會發生這種情況?

回答

0

構建的成功取決於所有以成功模式結束的任務(如果其中一個失敗,它可能會被視爲部分成功構建,但該圖標仍將保留爲具有小綠色成功圖標的失敗圖標:)

嘗試查看構建日誌,因爲它看起來,一些前或過去的運行步驟失敗(無法複製某物等)。最簡單的方法是確定問題出在哪裏,是從Visual Studio安排每個任務的最大詳細級別。

0

感謝您的回覆。所有任務都以成功結束。

雖然我剛剛發現瞭解決方案,所以我會在這裏添加它。當我建立一個VB6解決方案(包含40多個項目)時,我創建了一個純粹的msbuild腳本,我原本是從命令行運行的。爲了在團隊構建中使用它,我添加了一個目標「EndToEndIteration」,因爲這是團隊構建中新的msbuild腳本的唯一強制目標(即不是通過TFS的創建構建腳本嚮導創建的腳本)。這會導致上述問題,即使腳本執行完美,構建瀏覽器仍會報告失敗。

解決方案是使用TFS嚮導創建構建腳本(對於任何.Net .sln文件 - 無關緊要 - 對其的引用將被刪除)。然後獲取這個tfsbuild.proj文件的副本,並去除與.Net項目相關的細節並粘貼到你的msbuild目標中。然後執行目標「CoreCompile」來啓動你粘貼的目標。