本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 nuget 或 dotnet CLI 使用 CodeArtifact
您可以使用 nuget和 等 CLI 工具dotnet,從 CodeArtifact 發佈和使用套件。本文件提供有關設定 CLI 工具以及使用它們來發佈或取用套件的資訊。
主題
設定 nuget 或 dotnet CLI
您可以使用 CodeArtifact NuGet 登入資料提供者、使用 或手動設定 nuget AWS CLI或 dotnet CLI。強烈建議使用登入資料提供者設定 NuGet,以簡化設定並持續進行身分驗證。
方法 1:使用 CodeArtifact NuGet 登入資料提供者設定
CodeArtifact NuGet 登入資料提供者使用 NuGet CLI 工具簡化 CodeArtifact 的身分驗證和組態。CodeArtifact 身分驗證字符的有效期最長為 12 小時。為了避免在使用 nuget 或 dotnet CLI 時手動重新整理權杖,憑證提供者會在目前的權杖過期之前定期擷取新的權杖。
重要
若要使用登入資料提供者,請確定任何現有的 AWS CodeArtifact 登入資料都已從您的nuget.config檔案清除,這些登入資料可能已手動新增,或執行 aws codeartifact login來設定 NuGet。
安裝和設定 CodeArtifact NuGet 登入資料提供者
建立儲存庫並設定登入資料提供者之後,您可以使用 nuget或 dotnet CLI 工具來安裝和發佈套件。如需詳細資訊,請參閱 從 CodeArtifact 取用 NuGet 套件 和 將 NuGet 套件發佈至 CodeArtifact。
方法 2:使用登入命令設定 nuget 或 dotnet
中的 codeartifact login命令會將儲存庫端點和授權字符 AWS CLI 新增至您的 NuGet 組態檔案,讓 nuget 或 dotnet 連線到 CodeArtifact 儲存庫。這將修改位於 的使用者層級 NuGet 組態,%appdata%\NuGet\NuGet.Config適用於 Windows 和 ~/.config/NuGet/NuGet.Config ~/.nuget/NuGet/NuGet.Config Mac/Linux。如需 NuGet 組態的詳細資訊,請參閱常見 NuGet 組態
使用 login命令設定 nuget 或 dotnet
-
設定您的 AWS 登入資料以搭配 使用 AWS CLI,如 中所述CodeArtifact 入門。
-
確定 NuGet CLI 工具 (
nuget或dotnet) 已正確安裝和設定。如需說明,請參閱 nuget或 dotnet 文件。 -
使用 CodeArtifact
login命令來擷取登入資料,以便與 NuGet 搭配使用。注意
如果您要存取您擁有之網域中的儲存庫,則不需要包含
--domain-owner。如需詳細資訊,請參閱跨帳戶網域。
登入命令將:
-
使用您的 AWS 登入資料從 CodeArtifact 擷取授權字符。
-
使用 NuGet 套件來源的新項目來更新您的使用者層級 NuGet 組態。指向 CodeArtifact 儲存庫端點的來源將稱為
。domain_name/repo_name
呼叫 後的預設授權期間login為 12 小時,login必須呼叫 以定期重新整理字符。如需使用 login命令建立的授權字符的詳細資訊,請參閱 使用 login命令建立的字符。
建立儲存庫並設定身分驗證之後dotnet,您可以使用 nuget、 或 msbuild CLI 用戶端來安裝和發佈套件。如需詳細資訊,請參閱 從 CodeArtifact 取用 NuGet 套件 和 將 NuGet 套件發佈至 CodeArtifact。
方法 3:在沒有登入命令的情況下設定 nuget 或 dotnet
對於手動組態,您必須將儲存庫端點和授權字符新增至 NuGet 組態檔案,以啟用 nuget 或 dotnet 來連線至 CodeArtifact 儲存庫。
手動設定 nuget 或 dotnet 以連接至 CodeArtifact 儲存庫。
-
使用
get-repository-endpointAWS CLI 命令判斷 CodeArtifact 儲存庫端點。aws codeartifact get-repository-endpoint --domainmy_domain--domain-owner111122223333--repositorymy_repo--format nuget輸出範例:
{ "repositoryEndpoint": "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/" } -
使用
get-authorization-tokenAWS CLI 命令,從套件管理員取得連接至儲存庫的授權字符。aws codeartifact get-authorization-token --domainmy_domain輸出範例:
{ "authorizationToken": "eyJ2I...viOw", "expiration": 1601616533.0 } -
透過附加
/v3/index.json至步驟 3get-repository-endpoint中 傳回的 URL 來建立完整的儲存庫端點 URL。 設定 nuget 或 dotnet 以使用步驟 1 的儲存庫端點和步驟 2 的授權字符。
注意
來源 URL 必須以 結尾
/v3/index.json,讓 nuget 或 dotnet 成功連線至 CodeArtifact 儲存庫。輸出範例:
Package source with Name:domain_name/repo_nameadded successfully.注意
若要使用雙堆疊端點,請使用
codeartifact.端點。region.on.aws
從 CodeArtifact 取用 NuGet 套件
使用 CodeArtifact 設定 NuGet 後,您可以使用存放在 CodeArtifact 儲存庫或其其中一個上游儲存庫中的 NuGet 套件。
若要使用 CodeArtifact 儲存庫或其中一個上游儲存庫中的套件版本,請執行下列命令,將 packageName 取代為您想要使用的套件名稱nugetdotnet,並使用 NuGet 組態檔案中 CodeArtifact 儲存庫的來源名稱取代 packageSourceName。如果您使用 login命令來設定 NuGet 組態,來源名稱為 domain_name/repo_name。
注意
請求套件時,NuGet 用戶端會快取該套件存在的版本。由於此行為,在所需版本可用之前,先前請求的套件安裝可能會失敗。若要避免此失敗並成功安裝存在的套件,您可以在安裝 之前使用 nuget locals all --clear或 清除 NuGet 快取dotnet nuget locals all --clear,或藉由提供 的 -NoCache選項nuget或 的 --no-cache選項,避免在 install和 restore命令期間使用快取dotnet。
安裝特定版本的套件
如需詳細資訊,請參閱 Microsoft 文件中的使用 nuget.exe CLI 管理套件
從 NuGet.org 取用 NuGet 套件
您可以透過 CodeArtifact 儲存庫使用 NuGet.org 的 NuGet 套件,方法是使用 NuGet.org 的外部連線來設定儲存庫。 NuGet.org
將 NuGet 套件發佈至 CodeArtifact
使用 CodeArtifact 設定 NuGet 後,您可以使用 nuget或 dotnet將套件版本發佈至 CodeArtifact 儲存庫。
若要將套件版本推送至 CodeArtifact 儲存庫,請在 NuGet 組態檔案中,使用.nupkg檔案的完整路徑和 CodeArtifact 儲存庫的來源名稱執行下列命令。如果您使用 login命令來設定 NuGet 組態,則來源名稱為 domain_name/repo_name。
注意
如果您沒有要發佈的 NuGet 套件,您可以建立該套件。如需詳細資訊,請參閱 Microsoft 文件中的套件建立工作流程
CodeArtifact NuGet 登入資料提供者參考
CodeArtifact NuGet 登入資料提供者可讓您輕鬆地使用 CodeArtifact 儲存庫設定和驗證 NuGet。
CodeArtifact NuGet 登入資料提供者命令
本節包含 CodeArtifact NuGet 登入資料提供者的命令清單。這些命令必須以 做為字首,dotnet codeartifact-creds如下列範例所示。
dotnet codeartifact-credscommand
configure set profile:設定登入資料提供者以使用提供的 AWS 設定檔。profileconfigure unset profile:如果已設定,則移除已設定的設定檔。install:將登入資料提供者複製到plugins資料夾。install --profile:將登入資料提供者複製到profileplugins資料夾,並將其設定為使用提供的 AWS 設定檔。uninstall:解除安裝登入資料提供者。這不會移除組態檔案的變更。uninstall --delete-configuration:解除安裝登入資料提供者,並移除組態檔案的所有變更。
CodeArtifact NuGet 登入資料提供者日誌
若要啟用 CodeArtifact NuGet 登入資料提供者的記錄,您必須在環境中設定日誌檔案。登入資料提供者日誌包含有用的偵錯資訊,例如:
-
用於進行連線的 AWS 設定檔
-
任何身分驗證錯誤
-
如果提供的端點不是 CodeArtifact URL
設定 CodeArtifact NuGet 登入資料提供者日誌檔案
export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file
設定日誌檔案後,任何codeartifact-creds命令都會將其日誌輸出附加至該檔案的內容。
CodeArtifact NuGet 登入資料提供者版本
下表包含 CodeArtifact NuGet 登入資料提供者的版本歷史記錄資訊和下載連結。
| 版本 | 變更 | 發佈日期 | 下載連結 (S3) |
|---|---|---|---|
|
1.0.2 (最新) |
升級的相依性 |
06/26/2024 |
|
|
1.0.1 |
新增對 net5、net6 和 SSO 設定檔的支援 |
03/05/2022 |
|
|
1.0.0 |
初始 CodeArtifact NuGet 登入資料提供者版本 |
11/20/2020 |