将第一个包发布到 Azure Artifacts 源

Azure Artifacts 使开发人员能够从单个源有效地管理其所有依赖项。 Azure Artifacts 中的源充当组织存储库,用于在团队中、跨组织或 Internet 公开存储、管理和共享包。 Azure Artifacts 支持各种包类型,包括 NuGet、npm、Python、Maven、Cargo 和通用包。

本文介绍如何将第一个 NuGet 包发布到 Azure Artifacts 源。 (可选)可以按照说明使用 GitHub Copilot 来帮助设置项目并准备包以供发布。

先决条件

产品 要求
Azure DevOps - 一个 Azure DevOps 组织
- Azure DevOps 项目
- 下载并安装 Azure Artifacts 凭据提供程序
- Donwload 并安装 最新的 NuGet 版本
GitHub Copilot (可选) - 设置 GitHub Copilot 和 Visual Studio Code。 如果尚未注册,可以使用 30 天 GitHub Copilot 免费试用版。

创建源

如果已有源,可以跳过本部分。 否则,请按照以下步骤在 Azure Artifacts 中创建新源:

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

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

  3. 为源提供描述性 名称 ,并设置其 可见性 ,以定义谁可以查看源中的包。 定义 源的范围, 如果想要包含来自公共源的包,请选中 上游源 复选框。

  4. 完成操作后,选择“创建”

    显示如何在 Azure DevOps Services 中创建新源的屏幕截图。

  1. 登录到 Azure DevOps 集合,然后导航到项目。

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

  3. 为源提供描述性 名称 ,并设置其 可见性 ,以定义谁可以查看源中的包。 定义 源的范围, 如果想要包含来自公共源的包,请选中 上游源 复选框。

  1. 完成操作后,选择“创建”

    显示如何在 Azure DevOps Server 2022 中创建新源的屏幕截图。

  1. 完成操作后,选择“创建”

    显示如何在 Azure DevOps Server 2020 中创建新源的屏幕截图。

准备包

在此示例中,你将使用示例 .NET Core 类库,并在生成项目并创建可用于发布到源的 NuGet 包之前设置包元数据。 如果还没有项目,请按照本指南中的说明 使用 Visual Studio Code 创建 .NET 类库

  1. 在 Visual Studio Code 中打开项目,然后选择 csproj 文件。 在 <PropertyGroup> 标记中添加包元数据。 文件应如下所示:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <RootNamespace>demo_class_library</RootNamespace>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    
        <PackageId>YOUR_PACKAGE_NAME</PackageId>
        <Version>YOUR_PACKAGE_VERSION</Version>
        <Authors>YOUR_NAME</Authors>
        <Company>YOUR_COMPANY</Company>
    
      </PropertyGroup>
    
    </Project>
    
  2. 在项目目录中运行以下命令,生成项目并创建 .nupkg 包。 你的包将位于 bin\release 文件夹中。

    dotnet pack
    

连接到源

按照以下步骤设置项目并连接到 Azure Artifacts 源。 确保已安装 Azure Artifacts 凭据提供程序和最新版本的 NuGet,如先决条件中所述。

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

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

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

  4. 按照 Project 设置中的说明设置 nuget.config 文件。 文件的结构应类似于以下内容之一:

    • 项目范围的源

      <?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>
      
    • 组织范围的源

      <?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>
      
  1. 登录到 Azure DevOps 集合,然后导航到项目。

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

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

  4. 按照 “项目设置 ”部分中的说明设置 nuget.config 文件。

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

发布包

从项目目录中运行以下命令,将包发布到 Azure Artifacts 源。 参数 --api-key 是必需的,但在发布到 Azure Artifacts 时可以使用任何字符串值。

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

后续步骤