将包发布到 Azure Artifacts 源

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

本文将指导完成将第一个包发布到 Azure Artifacts 源的过程。 还可以选择使用 GitHub Copilot 简化此过程,并探索 Visual Studio Code 中 GitHub Copilot Chat 的功能。

先决条件

创建源

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

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

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

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

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

  1. 登录到 Azure DevOps 服务器,然后导航到项目。

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

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

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

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

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

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

准备代码

按照以下步骤从命令行创建基本类库项目、设置包的元数据并生成 NuGet 包:

  1. 在本地计算机上,创建新文件夹并为其命名。

  2. 打开命令提示符窗口并导航到创建的文件夹。

  3. 运行以下命令以创建新的类库项目:

    dotnet new classlib
    
  4. 打开 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>
    
  5. 运行以下命令来打包项目并生成 .nupkg 项目。 NuGet 包在目录中生成 bin\release

    dotnet pack
    

连接到源

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

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

  3. 按照 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 中使用 dotnet 连接到源的屏幕截图。

提示

可以询问 GitHub Copilot,“如何将新包源添加到现有 nuget.config 文件”。 Copilot 将指导你完成使用 nuget sources Add 命令将新的源源 URL 添加到 nuget.config 文件。

发布包

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

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

后续步骤