

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 CodeArtifact 与 NuGet 结合使用
<a name="using-nuget"></a>

以下主题介绍如何使用 CodeArtifact 来使用和发布 `NuGet` 程序包。

**注意**  
AWS CodeArtifact 支持 [NuGet.exe 4.8](https://docs.microsoft.com/en-us/nuget/release-notes/nuget-4.8-rtm) 及更高版本。



**Topics**
+ [将 CodeArtifact 与 Visual Studio 结合使用](nuget-visual-studio.md)
+ [CodeArtifact 与 nuget 或 dotnet 一起使用](nuget-cli.md)
+ [NuGet 程序包名称、版本和资产名称规范化](nuget-name-normalization.md)
+ [NuGet 兼容性](nuget-compatibility.md)

# 将 CodeArtifact 与 Visual Studio 结合使用
<a name="nuget-visual-studio"></a>

 借助 CodeArtifact 凭证提供程序，您可以在 Visual Studio 中直接使用 CodeArtifact 程序包。凭证提供程序简化了在 Visual Studio 中设置和验证 CodeArtifact 存储库的过程，凭证提供程序包含在 [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) 中。

**注意**  
 Visual Studio for Mac 未提供 AWS Toolkit for Visual Studio。

要通过 CLI 工具配置和使用 NuGet，请参阅[CodeArtifact 与 nuget 或 dotnet CLI 配合使用](nuget-cli.md)。

**Topics**
+ [在 Visual Studio 中配置 CodeArtifact 凭证提供程序](#nuget-vs-cred-provider)
+ [使用 Visual Studio Package Manager 控制台](#built-in-nuget-terminal-vs)

## 在 Visual Studio 中配置 CodeArtifact 凭证提供程序
<a name="nuget-vs-cred-provider"></a>

CodeArtifact 凭证提供程序简化了 CodeArtifact 和 Visual Studio 之间的设置和持续身份验证。CodeArtifact 身份验证令牌的有效期最长为 12 小时。为了避免在 Visual Studio 中使用时手动刷新令牌，凭证提供程序会在当前令牌到期之前定期提取新令牌。

**重要**  
要使用凭证提供程序，请确保已从之前可能手动添加或通过运行 `aws codeartifact login` 来配置 NuGet 而添加的 `nuget.config` 文件中清除任何现有 AWS CodeArtifact 凭证。

**借助 AWS Toolkit for Visual Studio 在 Visual Studio 中使用 CodeArtifact**

1. 按照以下步骤安装 AWS Toolkit for Visual Studio。按照这些步骤，该工具包可与 Visual Studio 2017 和 2019 兼容。AWSCodeArtifact 不支持 Visual Studio 2015 及更早版本。

   1.  适用于 Visual Studio 2017 和 Visual Studio 2019 的 Toolkit for Visual Studio 已在 [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=AmazonWebServices.AWSToolkitforVisualStudio2017) 中分发。您也可以在 Visual Studio 中使用**工具** ≫ **扩展和更新** (Visual Studio 2017) 或**扩展** ≫ **管理扩展** (Visual Studio 2019) 来安装和更新该工具包。

   1.  工具包安装完成后，从**视图**菜单中选择 **AWS Explorer** 将其打开。

1. 按照**《AWS Toolkit for Visual Studio 用户指南》的[提供 AWS 凭证](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/credentials.html)中的步骤，使用您的 AWS 凭证配置 Toolkit for Visual Studio。

1. （可选）设置要与 CodeArtifact 一起使用的 AWS 配置文件。如果未设置配置文件，CodeArtifact 将使用默认配置文件。要设置配置文件，请转至**工具 > NuGet 程序包管理器 > 选择 CodeArtifact AWS 配置文件**。

1. 在 Visual Studio 中将您的 CodeArtifact 存储库添加为程序包来源。

   1. 在 **AWS Explorer** 窗口中导航到您的存储库，右键单击并选择 `Copy NuGet Source Endpoint`。

   1. 使用**工具 > 选项** 命令并滚动到 **NuGet 程序包管理器**。

   1. 选择**程序包来源**节点。

   1. 选择 **\$1**，编辑名称，然后将在步骤 3a 中复制的存储库 URL 端点粘贴到**来源**框中，然后选择**更新**。

   1. 选中您新添加的程序包来源的复选框来启用它。
**注意**  
我们建议在 CodeArtifact 存储库中添加指向 **NuGet.org** 的外部连接，并在 Visual Studio 中禁用 **nuget.org** 程序包来源。使用外部连接时，从 **Nuget.org** 提取的所有程序包都将存储在您的 CodeArtifact 存储库中。如果 **Nuget.org** 变得不可用，您的应用程序依赖项仍可用于 CI 构建和本地开发。有关外部连接的更多信息，请参阅[将 CodeArtifact 仓库连接到公共仓库](external-connection.md)。

1. 重新启动 Visual Studio 以使更改生效。

配置完成后，Visual Studio 可以使用 CodeArtifact 存储库及其任何上游存储库中的程序包，如果您添加了外部连接，则还可以使用来自 [Nuget.org](https://www.nuget.org/) 的程序包。有关在 Visual Studio 中浏览和安装 NuGet 程序包的更多信息，请参阅 *NuGet 文档*中的[使用 NuGet 程序包管理器在 Visual Studio 中安装和管理程序包](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-visual-studio)。

## 使用 Visual Studio Package Manager 控制台
<a name="built-in-nuget-terminal-vs"></a>

Visual Studio Package Manager 控制台将不会使用 Visual Studio 版本的 CodeArtifact 凭证提供程序。要使用它，您必须配置命令行凭证提供程序。参阅 [CodeArtifact 与 nuget 或 dotnet CLI 配合使用](nuget-cli.md) 了解更多信息。

# CodeArtifact 与 nuget 或 dotnet CLI 配合使用
<a name="nuget-cli"></a>

您可以使用`nuget`和之类的 CLI 工具`dotnet`来发布和使用来自的软件包 CodeArtifact。本文档提供有关配置 CLI 工具以及使用这些工具来发布或使用程序包的信息。

**Topics**
+ [配置 nuget 或 dotnet CLI](#nuget-configure-cli)
+ [使用来自的 NuGet 包裹 CodeArtifact](#nuget-consume-cli)
+ [将 NuGet 包发布到 CodeArtifact](#nuget-publish-cli)
+ [CodeArtifact NuGet 凭证提供商参考](#nuget-cred-provider-reference)
+ [CodeArtifact NuGet 凭证提供程序版本](#nuget-cred-provider-history)

## 配置 nuget 或 dotnet CLI
<a name="nuget-configure-cli"></a>

您可以使用凭据提供程序、或手动配置 nuget 或 dotnet CLI AWS CLI。 CodeArtifact NuGet 强烈建议 NuGet 使用凭据提供程序进行配置，以简化设置并持续进行身份验证。

### 方法 1：使用 CodeArtifact NuGet 凭据提供程序进行配置
<a name="nuget-configure-cli-cred-provider"></a>

 CodeArtifact NuGet 凭据提供程序简化了 NuGet CLI 工具的 CodeArtifact 身份验证和配置。 CodeArtifact 身份验证令牌的有效期最长为 12 小时。为了避免在使用 nuget 或 dotnet CLI 时手动刷新令牌，凭证提供程序会在当前令牌到期之前定期提取新令牌。

**重要**  
要使用凭证提供程序，请确保已从您的`nuget.config`文件中清除所有现有 AWS CodeArtifact 证书，这些证书可能是手动添加的，或者是 NuGet 之前通过运行配置`aws codeartifact login`添加的。

**安装和配置 CodeArtifact NuGet 凭据提供程序**

------
#### [ dotnet ]

1. 下载最新版本的 [AWS。 CodeArtifact。 NuGet。 CredentialProvider 来自 NuGet .org 的工具](https://www.nuget.org/packages/AWS.CodeArtifact.NuGet.CredentialProvider)，使用以下`dotnet`命令。

   ```
   dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
   ```

1. 使用`codeartifact-creds install`命令将凭据提供者复制到 pl NuGet ugins 文件夹。

   ```
   dotnet codeartifact-creds install
   ```

1. （可选）：设置要与凭据提供者一起使用的 AWS 配置文件。如果未设置，则凭证提供程序将使用默认配置文件。有关 AWS CLI 配置文件的更多信息，请参阅[命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)。

   ```
   dotnet codeartifact-creds configure set profile profile_name
   ```

------
#### [ nuget ]

执行以下步骤，使用 NuGet CLI 从 Amazon S3 存储桶安装 CodeArtifact NuGet 凭证提供程序并对其进行配置。凭证提供者将使用默认 AWS CLI 配置文件，有关配置文件的更多信息，请参阅[命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)。

1. 从 Amazon S3 存储桶下载最新版本的[CodeArtifact NuGet 凭证提供商 (codeartifact-nuget-credentialprovider.zip)](https://a.co/dbGqKq7)。

   要查看和下载早期版本，请参阅[CodeArtifact NuGet 凭证提供程序版本](#nuget-cred-provider-history)。

1. 解压缩该文件。

1. 复制 A **WS。 CodeArtifact。 NuGetCredentialProvider**从 **netfx** 文件夹到 `%user_profile%/.nuget/plugins/netfx/` Windows、Linux 或 macOS `~/.nuget/plugins/netfx` 上的文件夹。

1. 复制 A **WS。 CodeArtifact。 NuGetCredentialProvider**从 **netcore** 文件夹到 `%user_profile%/.nuget/plugins/netcore/` Windows、Linux 或 macOS `~/.nuget/plugins/netcore` 上的文件夹。

------

创建存储库并配置凭证提供程序后，您可以使用 `nuget` 或 `dotnet` CLI 工具来安装和发布程序包。有关更多信息，请参阅[使用来自的 NuGet 包裹 CodeArtifact](#nuget-consume-cli)和[将 NuGet 包发布到 CodeArtifact](#nuget-publish-cli)。

### 方法 2：使用 login 命令配置 nuget 或 dotnet
<a name="nuget-configure-login"></a>

中的`codeartifact login`命令将存储库端点和授权令牌 AWS CLI 添加到您的 NuGet 配置文件中，使 nuget 或 dotnet 能够连接到您的存储库。 CodeArtifact 这将修改位于 Windows 和/ `~/.config/NuGet/NuGet.Config` 或 `~/.nuget/NuGet/NuGet.Config` Mac/Linux `%appdata%\NuGet\NuGet.Config` 的用户级 NuGet 配置。有关 NuGet 配置的更多信息，请参阅[常用 NuGet 配置](https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior)。

**使用 `login` 命令配置 nuget 或 dotnet**

1. 配置您的 AWS 凭证以便与一起使用 AWS CLI，如中所述[开始使用 CodeArtifact](getting-started.md)。

1. 确保已正确安装和配置 NuGet CLI 工具（`nuget`或`dotnet`）。有关说明，请参阅 [nuget](https://docs.microsoft.com/en-us/nuget/reference/nuget-exe-cli-reference) 或 [dotnet](https://docs.microsoft.com/en-us/dotnet/core/install/) 文档。

1. 使用 CodeArtifact `login`命令获取用于的凭据 NuGet。
**注意**  
如果您要访问您拥有的域中的存储库，则无需包括 `--domain-owner`。有关更多信息，请参阅 [跨账户域](domain-overview.md#domain-overview-cross-account)。

------
#### [ dotnet ]

**重要**  
**Linux 和 MacOS 用户：**由于在非 Windows 平台上不支持加密，因此提取的凭证将以纯文本形式存储在配置文件中。

   ```
   aws codeartifact login --tool dotnet --domain my_domain --domain-owner 111122223333 --repository my_repo
   ```

------
#### [ nuget ]

   ```
   aws codeartifact login --tool nuget --domain my_domain --domain-owner 111122223333 --repository my_repo
   ```

------

login 命令将会：
+  CodeArtifact 使用您的 AWS 凭证获取授权令牌。
+ 使用 NuGet 包源的新条目更新您的用户级 NuGet 配置。指向您的 CodeArtifact 存储库端点的源将被调用`domain_name/repo_name`。

调用 `login` 后的默认授权期为 12 小时，且必须调用 `login` 来定期刷新令牌。有关使用 `login` 命令创建的授权令牌的更多信息，请参阅 [使用 `login` 命令创建的令牌](tokens-authentication.md#auth-token-login)。

创建存储库并配置身份验证后，可以使用 `nuget`、`dotnet` 或 `msbuild` CLI 客户端来安装和发布程序包。有关更多信息，请参阅[使用来自的 NuGet 包裹 CodeArtifact](#nuget-consume-cli)和[将 NuGet 包发布到 CodeArtifact](#nuget-publish-cli)。

### 方法 3：不使用 login 命令来配置 nuget 或 dotnet
<a name="nuget-configure-without-login"></a>

要进行手动配置，您必须在 NuGet 配置文件中添加存储库端点和授权令牌，才能让 nuget 或 dotnet 连接到您的存储库。 CodeArtifact 

**手动配置 nuget 或 dotnet 以连接到您的存储库。 CodeArtifact **

1. 使用`get-repository-endpoint` AWS CLI 命令确定您的 CodeArtifact 存储库终端节点。

   ```
   aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format nuget
   ```

   输出示例：

   ```
   {
      "repositoryEndpoint": "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/"
   }
   ```

1. 使用命令从软件包管理器获取用于连接到存储库的授权`get-authorization-token` AWS CLI 令牌。

   ```
   aws codeartifact get-authorization-token --domain my_domain
   ```

   输出示例：

   ```
   {
      "authorizationToken": "eyJ2I...viOw",
      "expiration": 1601616533.0
   }
   ```

1. 通过将 `/v3/index.json` 附加到 `get-repository-endpoint` 在步骤 3 中返回的 URL 来创建完整的存储库端点 URL。

1. 将 nuget 或 dotnet 配置为使用步骤 1 中的存储库端点和步骤 2 中的授权令牌。
**注意**  
源网址必须以 nuget 或 dotnet 结尾才能成功连接到存储库。`/v3/index.json` CodeArtifact 

------
#### [ dotnet ]

   **Linux 和 MacOS 用户：**由于在非 Windows 平台上不支持加密，因此您必须在以下命令中添加 `--store-password-in-clear-text` 标志。请注意，这会将您的密码以纯文本形式存储在配置文件中。

   ```
   dotnet nuget add source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json --name packageSourceName --password eyJ2I...viOw --username aws
   ```

**注意**  
要更新现有源，请使用 `dotnet nuget update source` 命令。

------
#### [ nuget ]

   ```
   nuget sources add -name domain_name/repo_name -Source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json -password eyJ2I...viOw -username aws
   ```

------

   输出示例：

   ```
   Package source with Name: domain_name/repo_name added successfully.
   ```
**注意**  
要使用双堆栈端点，请使用 `codeartifact.region.on.aws` 端点。

## 使用来自的 NuGet 包裹 CodeArtifact
<a name="nuget-consume-cli"></a>

[配置 NuGet ](https://docs.aws.amazon.com//codeartifact/latest/ug/nuget-cli.html)完毕后 CodeArtifact，即可使用存储在存储 CodeArtifact 库或其上游存储库中的 NuGet 软件包。

要使用或使用 CodeArtifact 存储库或其上游存储库中的软件包版本`dotnet`，请运行以下命令，在 NuGet 配置文件中*packageName*替换为要使用的软件包的名称和*packageSourceName*存储 CodeArtifact 库的源名称。`nuget`如果您使用`login`命令来配置 NuGet 配置，则源名称为*domain\$1name/repo\$1name*。

**注意**  
当请求软件包时， NuGet 客户端会缓存该软件包存在哪些版本。由于存在这种行为，对于在所需版本变得可用之前请求的程序包，安装可能会失败。为避免此失败并成功安装现有的软件包，可以在安装之前使用`nuget locals all --clear`或清除 NuGet 缓存`dotnet nuget locals all --clear`，也可以通过提供选项或`-NoCache`选项来避免在`install`和`restore`命令期间使用缓存`dotnet`。`nuget` `--no-cache`

------
#### [ dotnet ]

```
dotnet add package packageName --source packageSourceName
```

------
#### [ nuget ]

```
nuget install packageName -Source packageSourceName
```

------

**安装程序包的特定版本**

------
#### [ dotnet ]

```
dotnet add package packageName --version 1.0.0 --source packageSourceName
```

------
#### [ nuget ]

```
nuget install packageName -Version 1.0.0 -Source packageSourceName
```

------

有关更多信息，请参阅 *Microsoft 文档*中的[使用 nuget.exe CLI 管理程序包](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-nuget-cli)或[使用 dotnet CLI 安装和管理程序包](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli)。

### 使用 NuGet .org 的 NuGet 包裹
<a name="nuget-consume-nuget-gallery"></a>

您可以通过 CodeArtifact 存储库使用 [NuGet.org](https://www.nuget.org/) 中的 NuGet 软件包，方法是将存储库配置为与 **NuGet.** org 的外部连接。从 **NuGet.org** 使用的软件包会被提取并存储在您的 CodeArtifact 存储库中。有关添加外部连接的更多信息，请参阅[将 CodeArtifact 仓库连接到公共仓库](external-connection.md)。

## 将 NuGet 包发布到 CodeArtifact
<a name="nuget-publish-cli"></a>

[配置完毕后 NuGet CodeArtifact，](https://docs.aws.amazon.com//codeartifact/latest/ug/nuget-cli.html)就可以使用`nuget`或`dotnet`将包版本发布到 CodeArtifact 存储库。

要将软件包版本推送到 CodeArtifact 存储库，请运行以下命令，并在 NuGet 配置`.nupkg`文件中包含文件的完整路径和 CodeArtifact 存储库的源名称。如果您使用`login`命令来配置 NuGet 配置，则源名称为`domain_name/repo_name`。

**注意**  
如果您没有要发布的 NuGet 包，则可以创建包。有关更多信息，请参阅 *Microsoft 文档*中的 [程序包创建工作流程](https://docs.microsoft.com/en-us/nuget/create-packages/overview-and-workflow)。

------
#### [ dotnet ]

```
dotnet nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg --source packageSourceName
```

------
#### [ nuget ]

```
nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg -Source packageSourceName
```

------

## CodeArtifact NuGet 凭证提供商参考
<a name="nuget-cred-provider-reference"></a>

 CodeArtifact NuGet 凭据提供程序可以轻松配置您的 CodeArtifact 存储库并对其 NuGet 进行身份验证。

### CodeArtifact NuGet 凭证提供程序命令
<a name="nuget-cred-provider-reference-commands"></a>

本节包括 CodeArtifact NuGet 凭据提供程序的命令列表。这些命令必须加上前缀 `dotnet codeartifact-creds`，如以下示例所示。

```
dotnet codeartifact-creds command
```
+ `configure set profile profile`：将凭证提供者配置为使用提供的 AWS 配置文件。
+ `configure unset profile`：删除已配置的配置文件（如果已设置）。
+ `install`：将凭证提供程序复制到 `plugins` 文件夹。
+ `install --profile profile`：将凭证提供者复制到该`plugins`文件夹，并将其配置为使用提供的 AWS 配置文件。
+ `uninstall`：卸载凭证提供程序。这不会删除对配置文件的更改。
+ `uninstall --delete-configuration`：卸载凭证提供程序并删除对配置文件的所有更改。

### CodeArtifact NuGet 凭证提供者日志
<a name="nuget-cred-provider-reference-logs"></a>

要启用 CodeArtifact NuGet 凭据提供程序的日志记录，您必须在您的环境中设置日志文件。凭证提供程序日志包含有用的调试信息，例如：
+ 用于建立联系的 AWS 配置文件
+ 任何身份验证错误
+ 如果提供的端点不是 CodeArtifact URL

**设置 CodeArtifact NuGet 凭证提供者日志文件**

```
export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file
```

设置日志文件后，任何 `codeartifact-creds` 命令都会将其日志输出附加到该文件的内容中。

## CodeArtifact NuGet 凭证提供程序版本
<a name="nuget-cred-provider-history"></a>

下表包含 CodeArtifact NuGet 证书提供者的版本历史记录信息和下载链接。


| 版本 | 更改 | 发布日期 | 下载链接 (S3) | 
| --- | --- | --- | --- | 
|  1.0.2（最新）  |  升级了依赖项  |  06/26/2024  |  [下载 v1.0.2](https://d12ov9682v6hj.cloudfront.net/codeartifact-nuget-credentialprovider-v1.0.2.zip)  | 
|  1.0.1  |  增加了对 net5、net6 和 SSO 配置文件的支持  |  03/05/2022  |  [下载 v1.0.1](https://a.co/cAIkhV1)  | 
|  1.0.0  |   CodeArtifact NuGet 凭证提供商的初始版本  |  11/20/2020  |  [下载 v1.0.0](https://a.co/8b2cENb)  | 

# NuGet 程序包名称、版本和资产名称规范化
<a name="nuget-name-normalization"></a>

在存储程序包名称、资产名称和程序包版本之前，CodeArtifact 会对程序包名称、资产名称和程序包版本进行规范化，这意味着 CodeArtifact 中的名称或版本可能与发布程序包或资产时提供的名称或版本不同。

**程序包名称规范化：**CodeArtifact 通过将所有字母转换为小写来使 NuGet 程序包名称规范化。

**程序包版本规范化：**CodeArtifact 使用与 NuGet 相同的模式对 NuGet 程序包版本进行规范化。以下信息来自 NuGet 文档中的[规范化版本号](https://docs.microsoft.com/en-us/nuget/concepts/package-versioning#normalized-version-numbers)。
+ 从版本号中删除前导零：
  + `1.00` 视为 `1.0`
  + `1.01.1` 视为 `1.1.1`
  + `1.00.0.1` 视为 `1.0.0.1`
+ 版本号第四部分中的零会省略掉：
  + `1.0.0.0` 视为 `1.0.0`
  + `1.0.01.0` 视为 `1.0.1`
+ 删除 SemVer 2.0.0 构建元数据：
  + `1.0.7+r3456` 视为 `1.0.7`

**程序包资产名称规范化：**CodeArtifact 根据规范化的程序包名称和程序包版本来构造 NuGet 程序包资产名称。

API 和 CLI 请求中可使用非规范化程序包名称和版本名称，因为 CodeArtifact 会对这些请求的程序包名称和版本输入进行规范化。例如，`--package Newtonsoft.JSON` 和 `--version 12.0.03.0` 的输入会规范化，并返回一个使用规范化程序包名称 `newtonsoft.json` 和版本 `12.0.3` 的程序包。

必须在 API 和 CLI 请求中使用规范化程序包资产名称，因为 CodeArtifact 不会对 `--asset` 输入执行规范化。

必须在 ARN 中使用规范化名称和版本。

要查找程序包的规范化名称，请使用 `aws codeartifact list-packages` 命令。有关更多信息，请参阅 [列出程序包名称](list-packages.md)。

要查找程序包的非规范化名称，请使用 `aws codeartifact describe-package-version` 命令。`displayName` 字段中返回程序包的非规范化名称。有关更多信息，请参阅 [查看和更新程序包版本详细信息和依赖项](describe-package-version.md)。

# NuGet 兼容性
<a name="nuget-compatibility"></a>

 本指南说明 CodeArtifact 与不同 NuGet 工具和版本的兼容性。

**Topics**
+ [NuGet 通用兼容性](#nuget-version-support)
+ [NuGet 命令行支持](#nuget-command-line-support)

## NuGet 通用兼容性
<a name="nuget-version-support"></a>

AWS CodeArtifact 支持 NuGet 4.8 及更高版本。

AWS CodeArtifact 仅支持 NuGet HTTP 协议的 V3 版本。这意味着不支持某些依赖协议 V2 版本的 CLI 命令。有关更多信息，请参阅[nuget.exe 命令支持](#nuget-command-support)部分。

AWS CodeArtifact 不支持 PowerShellGet 2.x。

## NuGet 命令行支持
<a name="nuget-command-line-support"></a>

AWS CodeArtifact 支持 NuGet (`nuget.exe`) 和 .NET Core (`dotnet`) CLI 工具。

### nuget.exe 命令支持
<a name="nuget-command-support"></a>

由于 CodeArtifact 仅支持 NuGet 的 HTTP 协议的 V3 版本，因此以下命令在用于 CodeArtifact 资源时将不起作用：
+ `list`：`nuget list` 命令显示来自给定来源的程序包列表。要获取 CodeArtifact 存储库中的程序包列表，您可以使用 AWS CLI 中的 [列出程序包名称](list-packages.md) 命令。