Microsoft 裝載的代理程式 \(英文\)

Azure DevOps Services

Microsoft 裝載的代理程式僅適用於裝載於雲端的 Azure DevOps Services。 您無法搭配內部部署 TFS 或 Azure DevOps Server 使用 Microsoft 裝載的代理程式或 Azure Pipelines 代理程式集區。 使用這些內部部署版本,您必須使用 自我裝載的代理程式。

重要

從 Azure DevOps 內容版本選取器選取版本。

選取對應至您平臺和版本的本文版本。 版本選取器位於目錄上方。 查閱您的 Azure DevOps 平臺和版本

如果您的管線位於 Azure Pipelines 中,您可以使用 Microsoft 裝載的代理程式,輕鬆地執行作業。 使用 Microsoft 託管的代理程式,就不需要自己維護和升級。 您一律會取得管線中指定的最新 VM 映像版本。 每次執行管線時,您都會為管線中的每個作業取得全新的虛擬機器。 虛擬機器會在一個作業之後捨棄 (這表示作業對虛擬機器檔案系統所做的任何變更,例如簽出程式碼,將無法用於下一個作業)。 Microsoft 裝載的代理程式可以直接在 VM容器上執行作業。

Azure Pipelines 會使用 Microsoft 裝載的代理程式,提供名為 Azure Pipelines 的預先定義代理程式集區。

對於許多小組來說,這是執行作業的最簡單方式。 您可以先試用,看看這是否適用於您的組建或部署。 如果沒有,您可以使用 擴展集代理程式 或自我裝載代理程式。

提示

您可以免費試用 Microsoft 裝載的代理程式。

軟體

Azure Pipelines 代理程式集區提供數個虛擬機映射可供選擇,每個映像都包含各種工具和軟體。

映像 傳統編輯器代理程序規格 YAML VM 映像標籤 包含的軟體
Windows Server 2022 與 Visual Studio 2022 windows-2022 windows-latestwindows-2022 連結
Windows Server 2019 搭配 Visual Studio 2019 windows-2019 windows-2019 連結
Ubuntu 22.04 ubuntu-22.04 ubuntu-latestubuntu-22.04 連結
Ubuntu 20.04 ubuntu-20.04 ubuntu-20.04 連結
macOS 13 Ventura macOS-13 macOS-13 連結
macOS 12 蒙特利 macOS-12 macOS-latestmacOS-12 連結
macOS 11 Big Sur (已淘汰) macOS-11 macOS-11 連結

傳統組建管線的預設代理程式映射為 windows-2019,而 YAML 組建管線的預設代理程式映像為 ubuntu-latest。 如需詳細資訊,請參閱 在管線中指定集區。

您可以選擇資料表中的 [包含的軟體] 連結,以查看每個託管代理程式的 已安裝軟體 。 使用macOS映射時,您可以從工具版本手動選取。 閱讀更多內容

最近的更新

建議客戶移轉至較新版本或 自我裝載的代理程式

如需有關如何更新使用這些映像之管線的詳細資訊和指示,請參閱 移除 Azure Pipelines 託管集區中的舊映像。

注意

macOS 容量目前有限。 不同於 Linux 和 Windows 映像,我們的容量會受到 Azure 所有容量的限制,而 macOS 容量則受限於我們可用的硬體數量。 雖然我們正在努力讓 2024 年春季提供額外的容量,但有些作業可能會遇到延遲執行。 可能的話,例如,對於未建立Apple生態系統應用程式的工作,客戶應該選擇Linux或 Windows 映射。

注意

Azure Pipelines 裝載的集區會取代先前裝載的集區,這些集區的名稱對應至對應的映像。 您在先前裝載集區中擁有的任何作業都會自動重新導向至新 Azure Pipelines 裝載集區中的正確映像。 在某些情況下,您仍可能會看到舊的集區名稱,但裝載作業會在幕後使用 Azure Pipelines 集區執行。 如需此更新的詳細資訊,請參閱 2019 年 7 月 1 日 - Sprint 154 版本資訊中的單一裝載集區版本資訊。

重要

若要要求在 Microsoft 裝載的代理程式上安裝其他軟體,請勿在此檔上建立意見反應要求,或開啟支援票證。 相反地,請在存放 上開啟問題,在此我們管理腳本以產生各種映像。

如何使用已被取代的託管映像來識別管線

若要識別使用已取代映像的管線,請流覽至您組織中的下列位置: https://dev.azure.com/{organization}/{project}/_settings/agentqueues,並篩選要檢查的映射名稱。 下列範例會 vs2017-win2016 檢查影像。

依影像名稱篩選管線的螢幕快照。

您也可以使用此處的腳本來查詢已取代之專案映像的作業歷程記錄,如下列範例所示。

./QueryJobHistoryForRetiredImages.ps1 -accountUrl https://dev.azure.com/{org} -pat {pat}

使用 Microsoft 裝載的代理程式

在 YAML 管線中,如果您未指定集區,管線預設為 Azure Pipelines 代理程式集區。 您只需要指定要使用的虛擬機映像。

jobs:
- job: Linux
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo hello from Linux
- job: macOS
  pool:
    vmImage: 'macOS-latest'
  steps:
  - script: echo hello from macOS
- job: Windows
  pool:
    vmImage: 'windows-latest'
  steps:
  - script: echo hello from Windows

注意

集區的規格可以在YAML檔案中的多個層級完成。 如果您注意到管線未在預期的映射上執行,請確定您在管線、階段和作業層級驗證集區規格。

避免硬式編碼參考

當您使用 Microsoft 裝載的代理程式時,請一律使用 變數 來參考組建環境和代理程序資源。 例如,不要硬式編碼包含存放庫的驅動器號或資料夾。 託管代理程式的精確版面配置可能會變更,而不會發出警告。

硬體

執行 Windows 和 Linux 映射的 Microsoft 裝載代理程式會布建在具有 2 核心 CPU、7 GB RAM 和 14 GB SSD 磁碟空間的 Azure 一般用途虛擬機上。 這些虛擬機會與 Azure DevOps 組織位於相同的地理位置。

執行 macOS 映射的代理程式會布建在具有 3 核心 CPU、14 GB RAM 和 14 GB SSD 磁碟空間的 Mac 專業人員上。 無論 Azure DevOps 組織的位置為何,這些代理程式一律在美國執行。 如果數據主權對您很重要,而且如果您的組織不在美國,則您不應該使用macOS映像。 深入了解

所有這些機器至少有 10 GB 的可用磁碟空間可供管線執行。 當您的管線取出原始碼、下載套件、提取 Docker 映射或產生中繼檔案時,會耗用此可用空間。

重要

我們無法接受增加 Microsoft 裝載代理程式磁碟空間的要求,或布建更強大的機器。 如果 Microsoft 裝載的代理程式規格不符合您的需求,則您應該考慮 自我裝載代理程式擴展集代理程式

網路

在某些設定中,您可能需要知道代理程式部署所在的IP位址範圍。 例如,如果您需要透過防火牆授與託管代理程式存取權,您可能想要依IP位址限制該存取權。 因為 Azure DevOps 使用 Azure 全域網路,因此 IP 範圍會隨著時間而有所不同。 Microsoft 會 每周發佈 JSON 檔案 ,列出 Azure 數據中心的 IP 範圍,依區域細分。 此檔案會每周更新一次,並包含新的計劃IP範圍。 只有最新版本的檔案可供下載。 如果您需要舊版,您必須每周下載並封存它們,因為它們可供使用。 新的IP範圍會在下周生效。 我們建議您經常檢查一次(每周至少一次),以確保您保持最新的清單。 如果代理程式作業開始失敗,第一個疑難解答步驟是確定您的設定符合最新的IP位址清單。 託管代理程式的IP位址範圍會列在美國西部區域的每周檔案底下AzureCloud.<region>AzureCloud.westus

您的託管代理程式會在與組織相同的 Azure 地理位置 中執行。 每個地理位置都包含一或多個區域。 雖然您的代理程式可能會在與組織相同的區域中執行,但並不保證會執行此動作。 若要取得代理程式可能IP範圍的完整清單,您必須使用您地理位置中包含的所有區域的IP範圍。 例如,如果您的組織位於 美國 地理位置,則必須使用該地理位置中所有區域的IP範圍。

若要判斷地理位置,請流覽至 https://dev.azure.com/<your_organization>/_settings/organizationOverview,取得您的區域,並從 Azure geography 數據表尋找相關聯的地理位置。 識別地理位置之後,請針對該地理位置中的所有區域,使用每周檔案中的IP範圍

重要

您無法使用 ExpressRoute 或 VPN 之類的私人連線,將 Microsoft 裝載的代理程式連線到您的公司網路。 Microsoft 裝載的代理程式與伺服器之間的流量將會透過公用網路。

識別 Microsoft 裝載代理程式的可能 IP 範圍

  1. 在 [組織設定] 中識別您組織的區域。
  2. 識別您組織區域的 Azure 地理位置
  3. 將地理位置中區域的名稱對應至每周檔案中使用的格式AzureCloud.<region>,格式如下。AzureCloud.westus 您可以從適用於 .NET 的 Azure 管理連結庫,檢閱傳遞至 Region 類別原始碼中定義之區域建構函式的區域名稱,將區域名稱從 Azure Geography 清單對應至每周檔案中使用的格式。

    注意

    由於 Azure 管理連結庫 for .NET沒有 API 可列出地理位置的區域,因此您必須手動列出它們,如下列範例所示。

  4. 每周檔案擷取地理位置中所有區域的IP位址。 如果您的區域是 巴西南部西歐,您必須根據後援地理位置包含其他IP範圍,如下列注意事項所述。

注意

由於容量限制,巴西南部西歐地區的某些組織偶爾可能會看到其託管的代理程序位於其預期的地理位置之外。 在這些情況下,除了包含地理位置中所有區域的IP範圍,如上一節所述,容量後援地理位置中的區域必須包含其他IP範圍。

如果您的組織位於巴西南部區域,您的容量後援地理位置就會 美國

如果您的組織位於 西歐 區域,則容量後援地理位置為 法國

我們的 Mac IP 範圍不會包含在上述 Azure IP 中,因為它們裝載於 GitHub 的 macOS 雲端中。 您可以使用此處提供的指示,使用 GitHub 元數據 API 來擷取 IP 範圍。

範例

在下列範例中,會從每周檔案擷取美國西部區域中組織的託管代理程式IP位址範圍。 由於美國西部區域位於 美國 地理位置,因此會包含 美國 地理位置中所有區域的IP位址。 在此範例中,IP 位址會寫入主控台。

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace WeeklyFileIPRanges
{
    class Program
    {
        // Path to the locally saved weekly file
        const string weeklyFilePath = @"C:\MyPath\ServiceTags_Public_20230904.json";

        static void Main(string[] args)
        {
            // United States geography has the following regions:
            // Central US, East US, East US 2, East US 3, North Central US, 
            // South Central US, West Central US, West US, West US 2, West US 3
            // This list is accurate as of 9/8/2023
            List<string> USGeographyRegions = new List<string>
            {
                "centralus",
                "eastus",
                "eastus2",
                "eastus3",
                "northcentralus",
                "southcentralus",
                "westcentralus",
                "westus",
                "westus2",
                "westus3"
            };

            // Load the weekly file
            JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
            JArray values = (JArray)weeklyFile["values"];

            foreach (string region in USGeographyRegions)
            {
                string tag = $"AzureCloud.{region}";
                Console.WriteLine(tag);

                var ipList =
                    from v in values
                    where tag.Equals((string)v["name"], StringComparison.OrdinalIgnoreCase)
                    select v["properties"]["addressPrefixes"];

                foreach (var ip in ipList.Children())
                {
                    Console.WriteLine(ip);
                }
            }
        }
    }
}

服務標籤

服務標籤無法列出 Microsoft 裝載的代理程式。 如果您嘗試將裝載的代理程式存取權授與資源,則必須遵循IP範圍允許清單方法。

安全性

Microsoft 裝載的代理程式會在安全的 Azure 平台上執行。 不過,您必須注意下列安全性考慮。

  • 雖然 Microsoft 裝載的代理程式會在 Azure 公用網路上執行,但不會指派公用 IP 位址。 因此,外部實體無法以 Microsoft 裝載的代理程式為目標。
  • Microsoft 裝載的代理程式會在個別 VM 中執行,這些 VM 會在每次執行之後重新建立映像。 每個代理程式都專用於單一組織,而每個 VM 只會裝載單一代理程式。
  • 從安全性的觀點來看,在 Microsoft 裝載的代理程式上執行管線有幾個優點。 如果您在管線中執行不受信任的程式代碼,例如分叉的貢獻,在 Microsoft 裝載的代理程式上執行管線比在公司網路中自我裝載的代理程式更安全。
  • 當管線需要存取防火牆後方的公司資源時,您必須允許 Azure 地理位置的 IP 位址範圍。 這可能會增加您的曝光率,因為IP位址的範圍相當大,而且因為此範圍中的機器也可以屬於其他客戶。 若要避免這種情況,最好的方法是避免需要存取內部資源。 如需將成品部署至一組伺服器的資訊,請參閱 通訊以部署至目標伺服器
  • 裝載的映像不符合 CIS 強化基準。 若要使用 CIS 強化的映像,您必須建立自我裝載代理程式或擴展集代理程式。

功能和限制

Microsoft 裝載的代理程式:

  • 具有 上述軟體。 您也可以使用 工具安裝程式工作在組建或發行期間新增軟體。
    • 您會為管線中的每個作業取得全新的映像代理程式。
  • 為您的來源和建置輸出提供 10 GB 的記憶體。
  • 提供免費層:
    • 公用專案:每個月最多可以執行 360 分鐘(6 小時)的免費 Microsoft 裝載平行作業,且每個月沒有整體時間限制。 請與我們連 絡,以增加您的免費層限制。
    • 私人專案:每個月最多可以執行 60 分鐘的免費平行作業,直到您每月使用 1,800 分鐘(30 小時)。 您可以為每個平行作業的額外容量付費。 付費平行作業會移除每月時間限制,並可讓您執行每個作業最多 360 分鐘 (6 小時)。 購買 Microsoft 裝載的平行作業
    • 當您建立新的 Azure DevOps 組織時,預設不會獲得這些免費授與。 若要要求公用或私人項目的免費授與,請提交 要求
  • 在 Microsoft Azure 一般用途虛擬機 上執行Standard_DS2_v2
  • 在 Windows 上以系統管理員身分執行,並在 Linux 上以無密碼 sudo 使用者身分執行。
  • (僅限 Linux)執行 中 cgroup 提供 6 GB 物理記憶體和 13 GB 總記憶體的 中的步驟。
  • 使用定期更新的 VM 映像(每 3 周)。

Microsoft 裝載的代理程序不提供:

  • 遠端連線的能力。
  • 成品卸除至 UNC 檔案共用的能力。
  • 能夠將機器直接加入公司網路。
  • 取得更大或更強大的組建機器的能力。
  • 預先載入自定義軟體的能力。 您可以在管線執行期間安裝軟體,例如透過 工具安裝程式工作 或在腳本中安裝軟體。
  • 您可以使用可能更快啟動和執行組建的自我裝載代理程式,取得的潛在效能優勢。 深入了解
  • 執行 XAML 組建的能力。
  • 復原至先前 VM 映像版本的能力。 您一律會使用最新版本。

如果 Microsoft 裝載的代理程式不符合您的需求,您可以部署自己的 自我裝載代理程式 或使用 擴充集代理程式

常見問題集

如何查看映像中包含的軟體?

您可以選擇 [軟體] 資料表中的 [包含的軟體] 連結,以查看每個託管代理程式的已安裝軟體

注意

根據預設,Windows 代理程式會使用隨附於代理程式軟體的 Git 版本。 Microsoft 建議使用隨附於代理程式的 Git 版本,但您有數個選項可覆寫此預設行為,並使用代理程式電腦已安裝在路徑中的 Git 版本。

  • 在管線中將名為 System.PreferGitFromPath 的管線變數設定為 true
  • 在自我裝載代理程式上,您可以在代理程式根目錄中建立名為 .env 的檔案,並將一 System.PreferGitFromPath=true 行新增至檔案。 如需詳細資訊,請參閱 如何? 為每個個別代理程式設定不同的環境變數?

若要查看管線所使用的 Git 版本,您可以查看管線中步驟的記錄 checkout ,如下列範例所示。

Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1

Microsoft 如何選擇要放在映像上的軟體和版本?

如需映像上所含軟體版本的詳細資訊,請參閱 所安裝專案的指導方針。

映像何時更新?

影像通常會每周更新一次。 您可以檢查 狀態徽章 ,其格式 20200113.x 為第一個部分指出影像更新日期的格式。

如果我需要的軟體已移除或取代為較新版本,該怎麼辦?

您可以選擇 [使用 Microsoft 裝載的代理程式] 數據表中的 [包含的軟體] 連結,以提出 GitHub 問題,讓我們知道。

您也可以使用包含所需軟體確切版本的自我裝載代理程式。 如需詳細資訊,請參閱 自我裝載代理程式。

如果我需要具有更多處理能力、記憶體或磁碟空間的較大計算機,該怎麼辦?

我們無法增加 Microsoft 裝載代理程式的記憶體、處理能力或磁碟空間,但您可以使用裝載於機器上的自我裝載代理程式或擴展集代理程式搭配您所需的規格。

我無法選取 Microsoft 裝載的代理程式,而且無法將組建或部署排入佇列。 我該怎麼做?

Microsoft 裝載的代理程式僅適用於 Azure Pipelines,不適用於 TFS 或 Azure DevOps Server。

根據預設,組織中的所有項目參與者都可以存取 Microsoft 裝載的代理程式。 但是,您的組織系統管理員可能會限制 Microsoft 裝載代理程式的存取權,以選取使用者或專案。 要求 Azure DevOps 組織的擁有者授與您使用 Microsoft 裝載的代理程式的許可權。 請參閱 代理程式集區安全性

在 Microsoft 裝載集區代理程式上執行的管理需要更多時間才能完成。 如何加快速度?

如果您的管線最近速度變慢,請參閱我們的狀態頁面以瞭解中斷。 我們的服務可能有問題。 或者,檢閱您在應用程式程式碼或管線中所做的任何變更。 在簽出期間,您的存放庫大小可能已增加、您可能正在上傳大型成品,或者您可能正在執行更多測試。

如果您僅設定管線並將 Microsfot 裝載代理程式與本機電腦或自我裝載代理程式進行比較,請注意我們用來執行作業的規格。 我們無法為您提供更大或功能更強大的機器。 如果無法接受此效能,您可考慮使用自我裝載式代理程式擴展集代理程式

我需要更多的代理人。 我能做什麼?

所有 Azure DevOps 組織都會為開放原始碼專案提供數個免費平行作業,以及每個月一個免費平行作業,以及私人專案的有限分鐘數。 如果您需要開放原始碼專案的額外分鐘數或平行作業,請連絡 支持人員。 如果您需要私人項目的額外分鐘數或平行作業,您可以 購買更多專案。

我的管線會在自我裝載代理程式上成功,但在 Microsoft 裝載的代理程式上失敗。 我該怎麼做?

您的自我裝載代理程式可能已安裝所有正確的相依性,而相同的相依性、工具和軟體不會安裝在 Microsoft 裝載的代理程式上。 首先,請遵循上表中包含的軟體連結 ,仔細檢閱 Microsoft 裝載代理程式上安裝的軟體 清單。 然後,將這與安裝在自我裝載代理程式上的軟體進行比較。 在某些情況下,Microsoft 裝載的代理程式可能會有您需要的工具(例如 Visual Studio),但可能尚未安裝所有必要的選擇性元件。 如果您發現差異,則您有兩個選項:

  • 您可以在存放庫建立新的問題,我們會在其中追蹤其他軟體的要求。 連絡支持人員無法協助您在 Microsoft 裝載的代理程式上設定新軟體。

  • 您可以使用 自我裝載代理 程式或 擴展集代理程式。 使用這些代理程式,您可以完全控制用來執行管線的映像。

我的組建會在本機計算機上成功,但在 Microsoft 裝載的代理程式上失敗。 我該怎麼做?

您的本機計算機可能已安裝所有正確的相依性,而相同的相依性、工具和軟體不會安裝在 Microsoft 裝載的代理程式上。 首先,請遵循上表中包含的軟體連結 ,仔細檢閱 Microsoft 裝載代理程式上安裝的軟體 清單。 然後,將這與安裝在本機計算機上的軟體進行比較。 在某些情況下,Microsoft 裝載的代理程式可能會有您需要的工具(例如 Visual Studio),但可能尚未安裝所有必要的選擇性元件。 如果您發現差異,則您有兩個選項:

  • 您可以在存放庫建立新的問題,我們會在其中追蹤其他軟體的要求。 這是安裝新軟體的最佳選擇。 連絡支持人員將無法協助您在 Microsoft 裝載的代理程式上設定新軟體。

  • 您可以使用 自我裝載代理 程式或 擴展集代理程式。 使用這些代理程式,您可以完全控制用來執行管線的映像。

我的管線失敗,並出現錯誤:「裝置上沒有剩餘空間」。

Microsoft 裝載的代理程式僅有 10 GB 的磁碟空間可供執行您的作業。 當您簽出原始碼、下載套件、下載 Docker 映像或產生中繼檔案時,會耗用此空間。 不幸的是,我們無法增加 Microsoft 裝載映像上可用的可用空間。 您可以重新建構管線,使其可以納入此空間。 或者,您可以考慮使用 自我裝載代理 程式或 擴展集代理程式

我在 Microsoft 裝載的代理程式上執行的管線需要存取公司網路上的伺服器。 如何取得防火牆中允許的IP位址清單?

請參閱代理程式IP範圍一節

在 Microsoft 裝載的代理程式上執行的管線無法解析公司網路上的伺服器名稱。 如何修正此問題?

如果您依 DNS 名稱參照伺服器,請確定您的伺服器可透過其 DNS 名稱在因特網上公開存取。 如果您依其IP位址參照您的伺服器,請確定IP位址可在因特網上公開存取。 在這兩種情況下,請確定代理程式與公司網路之間的任何防火牆都 允許代理程式IP範圍

我收到來自 Azure 儲存體 帳戶的 SAS IP 授權錯誤

如果您收到 SAS 錯誤碼,很可能是因為由於您的 Azure 儲存體 規則而不允許來自 Microsoft 裝載代理程式的 IP 位址範圍。 有一些因應措施:

  1. 管理您 Azure 儲存體 帳戶的IP網路規則,並新增託管代理程式的IP位址範圍。
  2. 在您的管線中,使用 Azure CLI 來更新您 Azure 儲存體 帳戶的網路規則集,再存取記憶體,然後還原先前的規則集。
  3. 使用 自我裝載代理 程式或 擴展集代理程式

如何在託管 macOS 代理程式上手動選取工具的版本?

Xamarin

裝載的 macOS 代理程式會將 Xamarin SDK 版本和相關聯的 Mono 版本儲存為一組符號連結至單一套件組合符號連結所提供的 Xamarin SDK 位置。

若要手動選取要用於託管 macOS 代理程式的 Xamarin SDK 版本,請在您的 Xamarin 建置工作作為組建的一部分之前執行下列 bash 命令,並指定要與 Xamarin 版本套件組合的符號連結。

/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"

您可以在代理程式檔案中找到所有可用的 Xamarin SDK 版本與符號連結清單:

此命令不會選取 Xamarin SDK 以外的 Mono 版本。 若要手動選取Mono版本,請參閱下列指示。

如果您使用非預設版本的 Xcode 來建置 Xamarin.iOS 或 Xamarin.Mac 應用程式,您應該另外執行此命令行:

/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"

where $(xcodeRoot) = /Applications/Xcode_13.2.app

您可以在代理程式和代理程式在這裡macos-12macos-11找到託管 macOS 代理程式集區上的 Xcode 版本。

Xcode

如果您使用 Azure Pipelines 和 TFS 隨附的 Xcode 工作 ,您可以在該工作的屬性中選取 Xcode 版本。 否則,若要手動將 Xcode 版本設定為在託管 macOS 代理程式集區上使用,請在xcodebuild建置工作之前,視需要執行此命令行,並視需要取代 Xcode 版本號碼 13.2:

/bin/bash -c "sudo xcode-select -s /Applications/Xcode_13.2.app/Contents/Developer"

您可以在代理程式和代理程式在這裡macos-12macos-11找到託管 macOS 代理程式集區上的 Xcode 版本。

此命令不適用於 Xamarin 應用程式。 若要手動選取 Xcode 版本來建置 Xamarin 應用程式,請參閱上述指示。

Mono

若要在裝載 macOS 代理程式集區上手動選取要使用的 Mono 版本,請在您的 Mono 建置工作之前,在您的組建的每個作業中執行此腳本,並指定具有必要 Mono 版本的符號連結(您可以在上述 Xamarin 區段中找到所有可用的符號連結清單):

SYMLINK=<symlink>
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"