共用方式為


驗證和準備伺服器環境以進行移轉

驗證牽涉到準備已升級的 Azure DevOps Server 環境以進行移轉。 本文可協助您針對常見問題進行疑難解答。 如果沒有錯誤且所有通過驗證檢查,則您的小組專案集合已就緒,您可以繼續進行下一個階段。 查看記錄檔,如果未通過所有檢查,則尋找任何錯誤。

已醒目提示移轉七個階段之驗證階段的圖表。

必要條件

下載最新的 數據遷移工具

瞭解程式驗證類型

在驗證期間,數據遷移工具會決定每個專案的目標進程模型。 它會自動將下列兩個程式模型之一指派給集合中的每個專案:

  • 繼承的進程模型: 如果專案是以敏捷式、Scrum 或功能成熟度模型整合 (CMMI) 程式範本建立,且從未自定義過。
  • 裝載的 XML 進程模型: 如果項目進程似乎已自定義。 自訂程式包含自定義欄位、工作項目類型或其他自訂類型。

當裝載的 XML 進程是目標進程模型時,資料遷移工具會驗證是否可以移轉自定義專案。 資料移移工具會在驗證期間產生兩個檔案:

  • DataMigrationTool.log: 包含集合中找到的進程驗證錯誤集。 修正找到的所有程序錯誤,以繼續進行您的移轉。
  • TryMatchOobProcesses.log: 目標進程模型 - 繼承或託管 XML 的每個項目清單。 針對設定為以託管 XML 進程模型為目標的專案,它會說明為何要將其視為自定義。 您不需要修正這些錯誤,但會提供指引,以防您想要移轉至繼承程式模型時該怎麼辦。 一旦集合移轉,您就可以將專案移轉至繼承程式模型。

驗證小組專案集合

由於每個 Team 專案集合都對應至自己的 SQL 資料庫,因此驗證程式會檢查集合的各個層面,包括:

  • 集合資料庫的大小
  • SQL 資料庫的定序
  • 集合中使用者的身分識別
  • 樣本自訂專案 (程式)

若要開始驗證,請使用移轉程式工具。 建議您從 Azure DevOps Server 環境中的其中一個應用程式層 (AT) 伺服器執行移轉工具。

如需特定的命令列選項,請使用下列命令要求說明文字:

	Migrator validate /help

開始驗證的最常見方式是使用下列結構指定 Team 專案集合的 URL:

	Migrator validate /collection:http://localhost:8080/tfs/DefaultCollection

檢視驗證警告和錯誤

當移轉程式工具完成時,它會產生命令提示字元畫面上顯示的記錄檔和結果。 如果沒有發生任何錯誤,而且所有驗證檢查都會通過,您的小組專案集合已準備好進行下一個階段。 如果驗證檢查失敗,請檢閱記錄檔以識別錯誤,然後加以解決。

將焦點放在 Migrator.log 檔案上,其中包含驗證檢查的基本詳細數據,並協助您保留自定義。 其他檔案會根據其名稱對應到特定的驗證錯誤。 搜尋字串「驗證 - 開始驗證專案 1」。每個專案都會經過驗證。 掃描所有專案,並搜尋包含 前置詞的任何行 [Error...

此外,也會 TryMatchOobProcesses.log 列出與使用現成專案 (OOB) 程式 (例如 Agile、Scrum 或 CMMI) 相關的錯誤。 如果項目在沒有自定義的情況下使用 OOB 程式,專案就會包含在繼承的模型中。 重要的是,此檔案中的錯誤不會妨礙移轉程式。

數據遷移工具所產生的DataMigrationTool.log檔案螢幕快照。

如需驗證錯誤的清單,請參閱 解決驗證錯誤。 針對每個驗證錯誤,我們提供了要解決的錯誤號碼、描述和方法。 驗證檢查記錄中可能會出現各種錯誤類型。 請向已訓練的 DevOps 合作夥伴、Microsoft諮詢服務或Microsoft頂級支援尋求協助,以解決發生錯誤。

解決進程範本錯誤

我們發現的主要錯誤是進程範本問題。 這些問題源於過時的小組專案,而未納入 Azure DevOps Server 的最新功能或 Azure DevOps Services 不支援的自定義。 但是,Azure DevOps Services 確實支援一系列自定義,而驗證只會標幟需要預先移轉解析的自定義專案。 數據遷移工具會針對 Azure DevOps Services 相容性執行範本的完整檢查,但可能需要進行一些修改。

  • 自訂的進程範本或過時的範本可能會導致移轉期間的程式驗證錯誤。
  • 如果您使用 OOB Agile、Scrum 或 CMMI 程式,請檢查 TryMatchOobProcesses.log 是否有錯誤。 無錯誤項目會對應至 OOB 程式。
  • 某些自定義項目無法在 Azure DevOps Services 中運作。 檢閱支援的自定義清單。
  • 對於使用較舊範本的專案,請執行 [ 設定功能精靈 ] 來更新具有最新功能的範本,並減少錯誤計數。
  • 請確定 witadmin 可在修正程式錯誤的電腦上使用。 對處理範本進行變更至關重要。
  • 針對和 Not 規則,在嘗試移轉之前,應該先將處理程式範本批注化或移除。 Azure DevOps Service 中支援這些規則,但在移轉過程中不支援這些規則。 移轉集合之後,您可以將這些規則新增回進程範本。

請考慮下列工具來解決行程錯誤:

  • 利用 Visual Studio 安裝隨附的命令行工具witadmin.exe。 如需解決這些錯誤的詳細技術檔,請參閱此連結。
  • 使用未記載的移轉程式工具命令,自動匯出每個小組專案的程式範本:移轉程式會驗證 /collection:http://localhost:8080/tfs/DefaultCollection /SaveProcesses。
  • 探索 GitHub 上的 TFS Team Project Manager (連結)。 它可讓您比較小組專案與已知的程式範本,包括現用的範本。

若要修正錯誤,請變更 XML 語法,並將變更套用回專案。

提示

建議您手動修改 XML,而不是使用 TFS Power Tools。

若要從專案取得程式範本,請在執行資料遷移工具命令時新增 /SaveProcesses 參數。

Migrator validate /collection:{collection URL} /tenantDomainName:{name} /region:{region} /SaveProcesses 

此命令會從專案擷取 XML,並將它放入與記錄相同的資料夾中。 將 zip 檔案解壓縮到本機計算機,以便編輯檔案。

現在,請修正 XML。 使用來自DataMigrationTool.log檔案的記錄來判斷每個項目的錯誤。

數據遷移工具所產生的進程記錄檔案螢幕快照。

某些錯誤會要求您使用 witadmin changefield 命令。 變更功能變數名稱是最常見的範例。 若要省下一些時間,建議您執行 witadmin changefield 命令,然後重新執行數據遷移工具。 如此一來,請使用更正的名稱重新匯出 XML。 否則,也請手動修正 XML 語法中的欄位。

進行修正之後,請將變更套用回 Azure DevOps Server。 視您所做的變更而定,您必須執行一或多個 witadmin 命令。 我們已建立PowerShell腳本來自動化此程式。 腳本包含確認整個程式所需的所有 witadmin 命令。

您可以在程式自定義文稿取得文稿。 使用 import/ConformProject.ps1 腳本。

.\conformproject.ps1 "<collection url>" "<project name>" "<process template folder>" 

當文稿完成時,請重新執行資料遷移工具來驗證集合。 請遵循步驟 1 到 3,直到數據遷移工具不會產生任何驗證錯誤為止。

PowerShell 中符合專案程序的螢幕快照。

提示

如果您不熟悉 XML 和 witadmin,建議您一次進行一個修正,然後符合。 繼續此迴圈,直到解決所有錯誤為止。

更新至系統進程

如果您從舊版的 Azure DevOps Server 開始,您的專案可能會使用較舊的程式範本。 如果未使用 [ 設定功能精靈] 更新這些專案,數據遷移工具會偵測程序錯誤。 在罕見的情況下,即使是精靈也可能無法解決舊的程式相關問題。

您可能會收到下列一些範例錯誤訊息:

Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402571: Required element PortfolioBacklog is missing from Process Configuration.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402571: Required element BugWorkItems is missing from Process Configuration.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402571: Required element FeedbackRequestWorkItems is missing from Process Configuration.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402571: Required element FeedbackResponseWorkItems is missing from Process Configuration.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402574: ProcessConfiguration doesn't specify required TypeField Team.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402574: ProcessConfiguration doesn't specify required TypeField RemainingWork.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402574: ProcessConfiguration doesn't specify required TypeField Order.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402574: ProcessConfiguration doesn't specify required TypeField Effort.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402574: ProcessConfiguration doesn't specify required TypeField Activity.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402574: ProcessConfiguration doesn't specify required TypeField ApplicationStartInformation.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402574: ProcessConfiguration doesn't specify required TypeField ApplicationLaunchInstructions.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF402574: ProcessConfiguration doesn't specify required TypeField ApplicationType.
Invalid process template: WorkItem Tracking\Process\ProcessConfiguration.xml:: TF400572: The Project Process Settings must be configured for this feature to be used.

如果您未自定義專案(例如新增欄位、工作項目類型等等),修正這些錯誤很簡單。 但是,如果您自定義程式,此方法就不足。 您必須手動調整程式範本,以保留自定義專案不受覆寫。

請針對每個項目執行下列步驟,以配合您的程式:

  1. 識別您項目開始使用的初始程式(Scrum、Agile 或 CMMI)。
  2. 請流覽 GitHub 上的程式自定義文稿,並下載存放庫。
  3. 將焦點放在 [移轉] 資料夾中的內容。
  4. 利用下列 ConformProject.ps1 腳本,將您選擇的專案與 Agile 系統程式對齊。 此動作會將整個專案更新為 Agile。
.\ConformProject.ps1 "<collection url>" "<project name>" "c:\process-customization-scripts\import\agile"  

常見的驗證錯誤

VS402841:工作項目類型的字段 X Bug 具有 syncnamechanges=false,但有規則使其成為識別字段。 識別欄位必須具有 syncnamechanges=true。 請更新您的程式範本以包含此變更。

在 Azure DevOps Services 中,我們新增了規則,讓每個身分識別欄位都必須有 syncnamechanges=true 屬性。 在 Azure DevOps Server 中,規則不適用。 因此,數據遷移工具會將此問題識別為問題。 在 Azure DevOps Server 內部部署上進行這項變更並不會造成任何傷害。

執行 witadmin changefield 命令。 命令的語法看起來像下列範例。

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:fieldname /syncnamechanges:true

如需 witadmin changefield 命令的詳細資訊,請參閱 管理工作專案欄位

TF402556:若要妥善定義 System.IterationId 欄位,您必須將它命名為反覆運算標識碼,並將其類型設定為 Integer。

此錯誤通常與過期的進程範本相關聯。 若要解決此問題,您可以針對每個項目執行 [ 設定功能精靈 ]。 或者,您可以執行下列命令,將程序自動化。

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:fieldname /name:newname

TF402571:進程組態中遺漏必要的 BugWorkItems 元素。

當進程一段時間未更新時,通常會看到此錯誤。 若要修正此問題,請針對每個項目執行 [ 設定功能精靈 ]。

TF402564:您已定義XX全域清單。 只允許 64 個

Azure DevOps Services 原生支援 64 個全域清單。 當有大量組建管線時,通常會發生此錯誤,因為每個新管線都會建立名為 Builds - TeamProjectName的全域清單。 若要解決此錯誤,請移除任何過期的全域清單。

重複驗證檢查

在每個反覆專案中,處理錯誤並進行驗證檢查,以解決這些錯誤,如驗證記錄檔所指示。 保留此週期,直到修正所有錯誤為止,而且您會收到確認集合驗證檢查是否成功。

下一步