切换回packages.config-明确答案

时间:2018-11-16 10:01:27

标签: visual-studio-2017 nuget packagereference packages.config

根据规则,我必须提出一个新问题,以澄清其他问题/答案。

这个答案就是这个:https://stackoverflow.com/a/45964469/305916

那又是什么?只是接受了答案,但是packages.config文件中没有填充软件包(我知道不是这样)。

如果软件包自动出现在packages.config中,或者我需要再次安装它们,我将丢失下一步的工作...

我倾向于后者,但我认为答案并不完整:)

但是该怎么办?

2 个答案:

答案 0 :(得分:2)

首先,您是否介意编辑您的问题或发表评论,为什么要恢复为packages.config?作为NuGet团队的成员,了解PackageReference无法为您服务的原因非常有用。如果不是limitations of PackagesConfig(包括the package compatibility)中列出的原因之一,也许我们可以帮助解决该问题,以便您可以继续使用PackageReference。

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

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

必须卸载安装新软件包的项目中的所有软件包,因为如果项目文件中存在任何PackageReference,NuGet会将新软件包添加为PackageReference。因此,您不能卸载第一个软件包,然后重新安装它,然后在项目中移动第二个软件包。

答案 1 :(得分:0)

  

如果软件包自动出现在packages.config中,或者我需要再次安装它们,我将丢失下一步的工作...

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

检查线程:

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

要实现此目的,您可以按照以下步骤操作:

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

enter image description here

第二,卸载项目并对其进行编辑,将所有PackageReference元素从项目文件中删除(确保未在项目文件中设置。)。

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

希望这会有所帮助。