Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022
Azure Pipelines 讓開發者能夠將套件發佈到組織內的 Azure Artifacts feed、其他組織的 feed,以及像 nuget.org 這樣的公開登錄檔。本文說明如何利用 Classic 與 YAML 管線將 NuGet 套件發佈到內部與外部的串流。
必要條件
| 產品 | 要求 |
|---|---|
| Azure DevOps | - Azure DevOps 組織和專案。 - Azure Artifacts 資料饋送。 - 如果你使用自架代理程式,請確保安裝了 .NET Core SDK 和 NuGet 。 - 權限: - 若要授與專案中所有管線的存取權,您必須是 Project Administrators 群組的成員,。 - 若要建立服務連線,您必須具有 系統管理員 或 創建者 角色,針對 服務連線。 |
注意
如果你使用 Ubuntu 24.04 或更新版本,必須用 NuGetAuthenticate 來執行任務,而不是用nuget.exe。 如需詳細資訊,請參閱 支援更新版本的 Ubuntu 虛擬映像。
將 NuGet 套件發佈至相同組織中的摘要
如果你還沒有訂閱源,可以建立 新的,否則請依照以下步驟將你的 NuGet 套件發佈到同一組織內的訂閱源:
登入你的 Azure DevOps,然後導覽到你的專案。
選擇 「管線」,然後選擇你的管線定義。
選擇 編輯,然後將以下片段加入你的 YAML 管線,以驗證並發佈你的套件:
steps: - task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 # Authenticate with Azure Artifacts and other NuGet registries. displayName: 'NuGet Authenticate' - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
登入你的 Azure DevOps,然後導覽到你的專案。
選擇 「管線」,然後選擇你的管線定義。
選擇 編輯,然後將以下片段加入你的 YAML 管線,以驗證並發佈你的套件:
steps: - task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 displayName: 'NuGet Authenticate' - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
注意
要使用 Azure Pipelines 發佈套件到串流,請確保專案 集合建置服務(Project Collection Build Service )及你專案的 建置服務 身份在你的導覽設定中都指定了 「饋源發佈者(貢獻者) 」角色。 如需詳細資訊,請參閱 管理許可權 。
將 NuGet 套件發佈至另一個組織中的摘要
要將你的 NuGet 套件發佈到不同的 Azure DevOps 組織中的一個資料流,你必須先在目標組織建立個人存取權杖(PAT),然後在你管線運行的組織內建立服務連線。 接著你可以利用 YAML 或 Classic 管線中的服務連線來驗證並發佈你的套件。
1. 建立個人存取令牌
登入托管你目標訂閱源的 Azure DevOps 組織。
請前往 使用者設定>個人存取令牌。
選擇新的 Token,提供描述性名稱,然後在範圍中選擇封裝>讀取和寫入。
完成後選擇 建立 ,然後複製並儲存你的 PAT 到安全位置,因為接下來設定服務連線時會需要它。
2. 建立服務連結
登入到將執行您的管線的 Azure DevOps 組織,然後導覽至您的專案。
流覽至您的項目設定>服務連線。
選取 [ 新增服務連線],選取 [NuGet],然後選取 [ 下一步]。
選取 [外部 Azure DevOps Server ] 作為 [驗證] 方法,然後輸入您的目標 摘要 URL。 貼上 您稍早建立的個人存取令牌 、為您的服務連線提供名稱,並在適用於您的案例時檢查 [授與所有管線 的訪問許可權]。
當完成時,選擇儲存。
3. 發佈你的包裹
登入您的 Azure DevOps 組織,然後流覽至您的專案。
選取 [ 管線],然後選取您的管線定義。
選擇 編輯,然後將以下片段加入你的 YAML 管線,以驗證並發佈你的套件:
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 inputs: nuGetServiceConnections: <SERVICE_CONNECTION_NAME> - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
登入您的 Azure DevOps 組織,然後瀏覽至您的專案。
選取 [ 管線],然後選取您的管線定義。
選取 [ 編輯],然後將下列代碼段新增至您的 YAML 管線。
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 # Authenticate with Azure Artifacts and other NuGet registries. inputs: nuGetServiceConnections: <SERVICE_CONNECTION_NAME> # Name of the service connection used to authenticate with feeds across organizations or public registries. - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push