如何弃用 nuget 包

How to deprecate a nuget package

我的一个开源项目有 2 个 nuget 包:

  1. 富有表现力(.NET 完整)
  2. Expressive.Standard(.NET 标准)

2 最初是作为一项调查创建的,以确保它是可行的。现在我想把它总结在 1 下,但我可以看到有人下载了 2。虽然下载数量不是很大,但我仍然知道想通过简单地删除那个包来引起任何问题。

将人们从 2 迁移到 1 下的打包版本的最佳方法是什么?会不会是发布2的新版本表示正在被1取代?

最终我想弃用 2 并指出它正在被 1 取代,但是我只能找到 this 实际上并没有显示它正在实施。

如果您没有 nuget 服务器,您唯一的选择是将 'deprecated' 添加到描述中:

https://www.nuget.org/packages?q=deprecated

如果你有私有的nuget服务器,你也可以启用下架:

Set enableDelisting to true to enable delist instead of delete as a result of a "nuget delete" command.

  • delete: package is deleted from the repository's local filesystem.
  • delist:
    • "nuget delete": the "hidden" file attribute of the corresponding nupkg on the repository local filesystem is turned on instead of deleting the file.
    • "nuget list" skips delisted packages, i.e. those that have the hidden attribute set on their nupkg.
    • "nuget install packageid -version version" command will succeed for both listed and delisted packages.

e.g. delisted packages can still be downloaded by clients that explicitly specify their version.

来源:https://github.com/NuGet/NuGet.Server/blob/master/src/NuGet.Server/Web.config

Nuget 最近 announced 支持弃用 Nuget 包。您现在可以弃用 Nuget 包。

弃用软件包的步骤

  1. 转到Manage Packages page
  2. Select 您的包裹并单击编辑图标。
  3. 您会发现类似下面的弃用部分。
  4. Select 您要弃用的版本。您可以 select 所有版本。
  5. Select一个原因。
  6. 如果此软件包已被弃用以支持另一个软件包,请提供备用软件包信息。
  7. 保存包。

Visual Studio 从 16.3(Visual Studio 2019)开始将显示已弃用软件包的警告以及警告消息和备用软件包信息。


注意:弃用软件包不会取消列出该软件包。如果需要,您必须单独取消列出包裹。也可以通过 Nuget 网站完成。

Kolappan N 提供了有关如何弃用 nuget 包版本的出色说明。然而,正如他自己提到的那样,它不会取消列出软件包版本。 要取消列出特定的 nuget 包,请按照以下步骤操作:

取消列出包
取消列出软件包版本的目的是隐藏软件包版本以防止搜索和 nuget.org 软件包详细信息页面。此外,它允许该软件包的现有用户继续下载它,但由于该软件包在搜索中不可见,因此减少了新用户的采用。

要取消列出特定的软件包版本,请按照以下步骤操作:

取消列出特定的软件包版本

  • 点击右上角的Account name
  • 点击Manage packages
  • 点击Published packages
  • 单击要取消列出的版本的软件包名称

您现在将看到该软件包的所有版本。

  • Status 列下,单击要取消列出的软件包版本上的 Listed link。
  • 您现在将转到该特定 nuget 包版本的 "Manage" 页面。 "Manage" 页面将显示以下部分:"Owners"、"Deprecation"、"Listing" 和 "Documentation"。
  • 单击 "Listing" 旁边的加号并取消选中“在搜索结果中列出”复选框。
  • 点击“保存”按钮。

验证
具体的包版本现在已经不公开了。为了验证这一点,请打开浏览器的隐身实例并移动到包的 url(没有版本部分),例如:https://www.nuget.org/packages/YOUR-PACKAGE-NAME/。您将看到该软件包的所有版本 * * 未 * * 未列出。但是,如果您在登录时看到相同的页面,您将看到所有包及其状态;上市或非上市。

也可以弃用软件包版本(以防您无法删除软件包版本)。有关弃用软件包版本的更多信息,请参见以下页面:https://docs.microsoft.com/en-us/nuget/nuget-org/deprecate-packages