Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
本指南指导你配置项目以使用 dotnet 命令行接口发布 NuGet 包。
先决条件
| 产品 | 要求 |
|---|---|
| Azure DevOps | - An Azure DevOps 组织。 - Azure DevOps 项目。 - Azure Artifacts 源。 - 下载并安装 Azure Artifacts 凭据提供程序。 - 下载并安装 .NET Core SDK (2.1.400+)。 |
创建信息流
如果已有源,请转到下一步。 否则,请按照下面的说明创建新的:
登录到 Azure DevOps 并导航到项目。
选择“项目”,然后选择“创建源”。
输入源的描述性 名称 并定义其 可见性 (谁可以使用源)。 指定你的源范围,如果希望包含来自常见公共源的包,请选中包含常见公共源中的包复选框。
完成操作后,选择“创建”。
连接到源
在发布包到馈送之前,您必须通过 Azure Artifacts 进行身份验证。 按照以下说明设置您的项目并使用您的 feed 源进行身份验证:
登录到 Azure DevOps 组织,然后导航到项目。
选择“ 项目”,然后从下拉菜单中选择源。
选择“连接到源”,然后从左侧的“NuGet”部分中选择“dotnet”。
在与 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>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
</packageSources>
</configuration>
将包发布到同一组织中的源
运行以下命令,将包发布到源。 将占位符替换为相应的值:
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
注意
要发布到 Azure Artifacts 源时,必需提供api-key 参数,但其值可以使用任意字符串。
将包发布到其他组织的馈送
若要将 NuGet 包发布到其他 Azure DevOps 组织中的源,必须先在目标组织中创建个人访问令牌(PAT),将新的包源添加到配置文件,然后运行发布命令:
导航到托管目标源的组织,并使用打包>范围来创建p个人访问令牌 (PAT)。
将 <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>运行以下命令以发布包:
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 地址 已被允许通过。