我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

配置 NuGet 用于 GitHub Package Registry

您可以配置 nuget 以将包发布到 GitHub 包注册表 并将存储在 GitHub 包注册表 上的包用作 .Net 项目中的依赖项。

GitHub 包注册表 目前提供有限的公开测试版。更多信息请参阅“关于 GitHub 包注册表”。

本文内容

向 GitHub 包注册表 验证

必须使用具有 read:packageswrite:packages 作用域的个人访问令牌才能通过 NuGet 在 GitHub 包注册表 中发布和删除公共包。 对于私有仓库,您的个人访问令牌还必须具有 repo 作用域。 更多信息请参阅“创建用于命令行的个人访问令牌”。

通过将 GitHub 包注册表 作为 Source 添加到 nuget 客户端,可配置 nuget 在推送新包时使用令牌。 将作用域参数中的 OWNER 替换为包含要发布包的仓库的 GitHub 用户或组织名称。

nuget source Add -Name "GitHub nuget registry" \
     -Source "https://nuget.pkg.github.com/OWNER/index.json" \
     -UserName USERNAME -Password TOKEN

发布包

使用 nuget CLI 指定 Source,可将 NuGet 包发布到 OWNER 下的 GitHub 包注册表。 使用前面的示例,指定 GitHub nuget registry 为包源:

$ nuget push  -Source "GitHub nuget registry"

您可以通过以下 URL 访问您的包(使用您的 GitHub 用户或组织名称替换 OWNER,使用您的仓库名称替换 REPOSITORY):

https://github.com/OWNER/REPOSITORY/packages

将多个包发布到同一个 GitHub 仓库

发布包时,默认情况下 GitHub 包注册表 会使用包名称来确定要发布到的 GitHub 仓库。 例如,名为 odata-client 的包将被发布到 OWNER/odata-client GitHub 仓库。 将自动为包的版本创建 GitHub 版本和关联 Git 标记(如果尚不存在)。

如果要更改发布包的仓库或将多个包发布到同一个仓库,您可以在包中 .nuspec 文件的 projectUrl 字段中包含 GitHub 仓库的 URL。 GitHub 将根据该字段匹配仓库,而不是根据包名称。

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
    <id>sample</id>
    <version>1.2.3</version>
    <authors>Kim Abercrombie, Franck Halmaert</authors>
    <description>Sample exists only to show a sample .nuspec file.</description>
    <language>en-US</language>
    <projectUrl>https://github.com/my-org/my-custom-repo</projectUrl>
    </metadata>
</package>

有关创建包的更多信息,请参阅 nuget 文档中的“创建和发布包”。

接收包注册表事件

在发布或更新包时,您可以接收 web 挂钩事件。更多信息请参阅“GitHub 开发者文档中的 RegistryPackageEvent”。

安装包

在项目中使用来自 GitHub 的包类似于使用来自 nuget.org 的包。 将包依赖项添加到 package.config 以指定包名称和版本。

  1. 使用 nuget source Add 向 GitHub 包注册表 验证。 更多信息请参阅“向 GitHub 包注册表 验证”。

  2. 配置 package.config 以使用包并将 ` GitHub 包注册表

作为包源。 例如,此 *package.config* 将octo-app` 包用作依赖项。

  <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="octo-app" version="3.1.1"/>
    </packages>
    <packageSources>
      <add key="GitHub nuget registry" value="https://nuget.pkg.github.com/OWNER/index.json" protocolVersion="3" />
    </packageSources>
  </xml>
  1. 安装包。

    $ nuget install

有关在项目中使用 package.config 的更多信息,请参阅 MSDN nuget 文档中的“使用 nuget 包”。

删除包

为避免破坏可能依赖于包的项目,GitHub 包注册表 不支持删除包或删除包的版本。在特殊情况下,例如出于法律原因或为了符合 GDPR 标准,您可以通过 GitHub 支持 申请删除包。请使用我们的联系表 和主题行 "GitHub 包注册表" 联系 GitHub 支持。

问问别人

找不到要找的内容?

联系我们