切换回 packages.config - 澄清答案

Switch back to packages.config - clarification on answer

根据规则,我必须提出一个新问题,以澄清另一个question/answer。

这个答案是这个:

然后呢?刚刚接受了答案,但是 packages.config 文件中没有填充包(我知道它没有这么说)。

如果软件包自动出现在 packages.config 中,或者我需要重新安装它们,我不知道下一步该怎么做...

我倾向于后者,但感觉回答的不够完整:)

但是怎么办?

首先,您是否介意编辑您的问题或作为评论发布,为什么要恢复为 packages.config?作为 NuGet 团队的成员,了解 PackageReference 不适合您的原因很有用。如果这不是 limitations of PackagesConfig, including the package compatibility 部分中列出的原因之一,也许我们可以帮助解决该问题,以便您可以继续使用 PackageReference。

如果您真的想恢复到 packages.config,我建议以下内容,而不是您链接的答案。

  1. 转到选项、NuGet PackageManager->常规并启用 Allow format selection on first package install
  2. 使用 "Manage NuGet Packages"(包管理器 UI)卸载项目中的所有包。您可以使用程序包管理器控制台进行卸载,但下一步必须使用程序包管理器 UI。跟踪您卸载了哪些软件包,以便您知道在下一步中再次安装哪些软件包。
  3. 一旦您的项目没有包引用,然后重新安装您需要的包。您安装的第一个包将弹出一个对话框,您可以在其中选择使用 packages.config 或 PackageReference。如果您没有跟踪在上一步中卸载了哪些包,请使用您的源代码控制系统来比较您的项目文件,或者查看未修改的副本,并查找 PackageReference.[=23 的所有实例=]

需要卸载项目中的所有包安装新包,因为如果项目文件中存在任何PackageReference,NuGet 将添加新包作为PackageReference。所以不能卸载第一个包,重新安装,然后把第二个包移到项目中。

I am missing what to do next if the packages appear automatically in the packages.config or I need to install them again...

是的,您必须重新安装这些软件包。那是因为不支持从 PackageReference -> packages.config 自动迁移项目。

检查线程:

https://github.com/NuGet/Home/issues/4973

要完成此操作,您可以按照以下步骤操作:

首先,将包管理更改为Packages.config,Tools->Options->NuGet Package Manager->Package Management:

其次,卸载项目并编辑它,从项目文件中删除所有 PackageReference 元素(确保未在项目文件中设置。)。

第三,重新加载项目,然后重新安装那些包。

希望这对您有所帮助。