从命令行 (dotnet) 发布和还原 NuGet 包

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

使用 Azure Artifacts,可以根据源的可见性设置将 NuGet 包发布到/从源中发布和还原,并与其他人共享它们。 本文将指导你设置项目以使用 dotnet 命令行界面发布和还原包。

先决条件

连接到源

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

  2. 选择“Connect to feed”。

    显示如何连接到源的屏幕截图。

  3. NuGet 部分选择 dotnet

  4. 在 .csproj 或 .sln 文件所在的同一文件夹中创建 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. 选择 “生成”和“发布>”。

  2. 从下拉菜单中选择源,或者创建 一个 源(如果尚未这样做)。

  3. 选择“Connect to feed”。

    显示如何在 TFS 中连接到源的屏幕截图。

  4. 选择 NuGet 并按照说明连接到源。

发布包

若要将包发布到源,请在提升的命令提示符中运行以下命令。 将占位符替换为相应的信息:

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

注意

api-key 用作占位符。

  • 示例

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

从外部源发布包

  1. 使用打包读取和写入范围创建个人访问令牌 (PAT) 。

  2. 将包源添加到nuget.config文件。 这会将 PAT 添加到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 <PACKAGE_PATH> --source <SOURCE_NAME> --api-key <ANY_STRING>
    
  • 示例

    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 nupkgs/mypackage.1.1.0.nupkg --source MySource --api-key AZ
    

还原包

若要还原包,请在提升的命令提示符下运行以下命令。 该 --interactive 标志用于提示用户输入凭据。

dotnet restore --interactive