NuGet自动恢复和安装NuGets

时间:2017-08-25 20:55:37

标签: visual-studio nuget visual-studio-2017 csproj nuget-package-restore

我最近成功地将所有项目切换到自动NuGet还原。为此,我遵循了this guide。一切都运作良好,我能够删除我的/packages文件夹并恢复我心中的内容。

该指南中的其中一个步骤是修改.csproj文件并删除EnsureNuGetPackageBuildImports相关元素。

我现在遇到的问题是,在进入并降级我的一个项目库后,NuGet似乎已自动将EnsureNuGetPackageBuildImports相关元素添加回我的.csproj文件中。

我是否应该更改其他设置以防止NuGet这样做?每次我进行与NuGet相关的更改时,我宁愿不必编辑我的.csproj文件。

1 个答案:

答案 0 :(得分:1)

  

我是否应该更改其他设置以防止NuGet这样做?

如果您进入并降级其中一个项目库,我恐怕不会得到答案。

目标“EnsureNuGetPackageBuildImports”用于确保导入的.props或.targets文件确实以旧方式导入“启用程序包还原”。自NuGet 2.5以来,NuGet一直支持NuGet MSBuild支持。

自Nuget 2.7+以来,Microsoft已经放弃了对VS2015中“启用NuGet包恢复”的支持,您需要进行一些手动更改以迁移旧解决方案或将该功能添加到新解决方案中。 Nuget 2.7+中的Nuget自动包恢复已更改。不幸的是,它看起来像是一种非向后兼容的变化。我们在2.7和之前有一些开发人员,现在需要升级到2.7+。在这种情况下,当您进入并降级其中一个项目库时,NuGet会自动将EnsureNuGetPackageBuildImports相关元素添加回您的.csproj文件中。

要解决此问题,我们建议不要混用“旧”和新方法进行自动包恢复(使用自动包恢复时删除这些文件)。

此外,如果进入并降级其中一个项目库是不可避免的,那么有一个PS脚本可以帮助您更方便地删除它: DisableNuGetPackageRestore.ps1