从命令行发布 NuGet 包(dotnet)

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

本指南指导你配置项目以使用 dotnet 命令行接口发布 NuGet 包。

先决条件

产品 要求
Azure DevOps - An Azure DevOps 组织
- Azure DevOps 项目
- Azure Artifacts
- 下载并安装 Azure Artifacts 凭据提供程序
- 下载并安装 .NET Core SDK (2.1.400+)

连接到源

  1. 登录到 Azure DevOps 组织,然后导航到项目。

  2. 选择“ 项目”,然后从下拉菜单中选择源。

  3. 选择“连接到源”,然后从左侧的“NuGet”部分中选择“dotnet”

  4. 在与 csprojsln 文件相同的文件夹中创建 nuget.config 文件。 复制以下 XML 代码片段并将其粘贴到新文件中,将占位符替换为相关信息:

  • 组织作用域的源:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <clear />
        <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
      </packageSources>
    </configuration>
    
  • 项目作用域的源:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <clear />
        <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
      </packageSources>
    </configuration>
    
  1. 登录到 Azure DevOps 服务器,然后导航到项目。

  2. 选择“项目”,然后选择源。

  3. 选择连接到源,然后从左侧导航窗格中选择 dotnet

  4. 按照项目设置部分中的说明连接到源。

    显示如何在 Azure DevOps Server 2020 和 2022 中使用 dotnet 连接到源的屏幕截图。

注意

Azure DevOps Server 2019 不支持 dotnet。

将包发布到同一组织中的源

运行以下命令,将包发布到源。 将占位符替换为相应的值:

dotnet nuget push --source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json --api-key <ANY_STRING> <PACKAGE_PATH> 

示例

dotnet nuget push --source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json --api-key AZ bin/MyPackage.5.0.2.nupkg

注意

api-key 为必填,但在发布到 Azure Artifacts 源时,可以提供任何字符串作为其值。

将包发布到其他组织中的源

要将你的 NuGet 包发布到其他 Azure DevOps 组织的包源,你首先必须在目标组织中创建个人访问令牌(PAT)。

  1. 导航到托管目标源的组织,并使用打包>读取和写入范围来创建p个人访问令牌 (PAT)。

  2. <PERSONAL_ACCESS_TOKEN> 占位符替换为个人访问令牌,然后运行以下命令将包源添加到 nuget.config 文件。 确保此文件的安全存储,并且不要在源控制中选中它。

    dotnet nuget add source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json --name <SOURCE_NAME> --username <USER_NAME> --password <PERSONAL_ACCESS_TOKEN> --configfile <PATH_TO_NUGET_CONFIG_FILE>
    
  3. 运行以下命令以发布包:

    dotnet nuget push --source <SOURCE_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>
    

示例

dotnet nuget add source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json --name MySource --username MyUserName --password MyPersonalAccessToken --configfile ./nuget.config

dotnet nuget push --source MySource --api-key AZ nupkgs/mypackage.1.1.0.nupkg

注意

如果你的组织使用防火墙或代理服务器,请确保允许 Azure Artifacts 域 URL 和 IP 地址