診斷組建的問題

診斷和修正建置問題是軟體開發的一般工作。 Team Foundation Build 提供的工具可協助您偵錯及解決問題,例如:

  • 失敗或部分成功的組建

  • 例外狀況、錯誤或警告

  • 未預期的事件或結果

您想要怎麼做?

  • 判斷建置為何不執行

  • 尋找組建結果視窗中某問題的相關資訊

  • 要求和檢視診斷記錄檔

  • 檢查建置系統及偵錯建置流程

  • 取得更多提示

必要的權限

您必須是組建伺服器上的 Windows Administrators 群組成員,而且是 Team 專案集合上的 Project Collection Build Administrators 群組成員。 請參閱 Team Foundation Server 的權限參考

判斷建置為何不執行

如果組建是在佇列中的下一個,但是仍然無法執行,請確定組建控制器和至少一個組建代理程式可用且已啟用。 如果建置流程有組建代理程式篩選條件,請確定有符合準則的組建代理程式可用且已啟用。 請參閱管理您的建置系統指定處理組建的組建代理程式部署和設定組建代理程式

尋找組建結果視窗中某問題的相關資訊

如果您的組建正在執行、卡在流程的某個部分,或者已完成,則可以從建置結果視窗取得問題的詳細資訊。 選擇 [檢視記錄檔] 以顯示更詳細的資訊:

  • 若要直接跳至組建的問題,請選取 [下一個錯誤] 或 [下一個警告]。

  • 只要看到 [MSBuild 記錄檔] 連結,選擇該連結,即可深入了解 MSBuild 活動編譯程式碼和執行其他工作時發生事件的詳細資訊。

  • 您可以複製資訊,也可以與可以協助您解決問題的人共用。 選取記錄檔的特定段落,或從記錄檔中任何位置開啟內容功能表,然後選擇 [全選]。 之後您可以開啟內容功能表並選擇 [複製] 將文字複製到剪貼簿。

檢視診斷記錄

如果您還沒有足夠的資訊來診斷問題,您可以檢視更詳細的診斷記錄檔。 在建置結果視窗中,選擇 [診斷],然後:

  • 如果組建已完成,請選擇 [ date and time 為止的最後記錄檔]。

  • 如果建置尚未完成,請選擇 [要求記錄檔]。

    擷取診斷記錄

    系統會組合記錄檔。

    當記錄檔就緒時,選取 [診斷]、[ date and time 為止的 User who requested the log]。

如果您的組建會將輸出暫存至 UNC 路徑置放資料夾,則系統會開啟包含診斷記錄的置放資料夾子資料夾。 在您開啟置放資料夾或下載 .zip 檔之後,您可以檢視下列其中一個記錄檔:

  • 從組建控制器:ActivityLog

  • 從每個參與建置的組建代理程式:**ActivityLog.AgentScope.**Build_Agent_ID

  • 對於 MSBuild 活動編譯的每個方案:Solution_Name

檢視這些記錄檔最好的方式是,將其複製到您的開發電腦,然後從中開啟檔案。

注意事項注意事項

如果您使用 Visual Studio 2010,則 [診斷] 功能表不會出現在建置結果視窗上,但是您仍然可以在組建完成時檢視置放資料夾中的診斷記錄檔。

檢查建置系統及偵錯建置流程

某些問題可能由您的內部部署建置系統產生。

提示

嘗試部署您的開發電腦做為組建伺服器,讓您可以更輕鬆地取得對建置流程執行環境的直接存取。請參閱 部署和設定組建伺服器

檢查建置系統元件

確定已正確設定組建伺服器、控制器和代理程式。 請參閱部署和設定組建伺服器部署和設定組建控制器部署和設定組建代理程式

登入組建伺服器,並確認它是否正確運作。 您也可以在組建伺服器上檢視詳細的診斷資料。 請參閱 管理您的建置系統

在組建伺服器上偵錯建置流程

若要診斷由自訂建置流程活動造成的問題,或者由未攔截例外狀況產生的問題,請嘗試在組建伺服器上偵錯建置流程。

  1. 登入組建伺服器。

  2. 以系統管理員身分執行 Visual Studio。

  3. 在 Visual Studio 中,從功能表列選擇 [工具]、[附加至處理序]。

  4. 在 [附加至處理序] 對話方塊上:

    1. 選取 [顯示所有使用者的處理序]。

    2. 選取 TFSBuildServiceHost.exe

    3. 選擇 [附加]。

  5. 從功能表列選擇 [偵錯]、[例外狀況]。 在 [例外狀況] 對話方塊中,選取 [通用語言執行平台例外狀況]。 選擇 [確定]。

  6. 從功能表列選擇 [工具]、[選項]。 在 [選項] 對話方塊的樹狀目錄窗格中,選取 [偵錯]。 在 [一般] 清單中,清除 [啟用 Just My Code] 核取方塊。 選擇 [確定]。

  7. 在 Visual Studio 中,將組建排入佇列,並確定它是在裝載於啟用偵錯工具之組建伺服器的組建控制器與組建伺服器上執行。

您現在可以偵錯在建置程序期間所擲回的例外狀況,以及設定中斷點並偵錯您的自訂建置流程活動。 請參閱 Visual Studio 偵錯

祕訣

  • 提示 當您診斷建置流程的問題時,可以暫停直到您能夠修復程序為止,為自己和小組成員避免問題:

    • 編輯組建定義,然後選擇 [一般] 索引標籤底部的 [已暫停]。

    • 若要測試您對建置流程的修正,選取已佇列組建,開啟內容功能表,然後選擇 [立即啟動]。

  • 提示如果您認為您的其中一個組建系統元件可能是其中一個問題的原因,您可以啟動、停止或重新啟動組建伺服器,或視需要啟用或停用控制器或代理程式。 請參閱 管理您的建置系統

  • 提示嘗試修正建置流程問題時,您通常需要重複使用相同選項將組建排入佇列以測試各種修正。 您可以快速重試組建:

    • 建置結果視窗,藉由選擇 [動作]、[重試組建]。

    • 從 Team Explorer 中的組建頁面或從 Build 總管,藉由選取完成的組建,開啟內容功能表,並選擇 [重試組建]。

  • 提示您是否正在使用裝載的組建控制器? 請參閱使用裝載的組建控制器