0

我最近成功地将我们所有的项目切换到自动NuGet恢复。为此,我跟着this guide。一切运作良好,我能够删除我的/packages文件夹,并恢复到我心中的内容。NuGet自动恢复和安装NuGets

该指南中的一个步骤说要编辑您的.csproj文件并删除EnsureNuGetPackageBuildImports相关元素。

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

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

回答

1

是否有其他一些设置我应该改变,以防止NuGet做到这一点?

我害怕答案不是如果你去和降级你的项目库之一。

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

自从Nuget 2.7+以来,微软已经放弃了对VS2015中'启用NuGet软件包还原'的支持,您需要做一些手动更改以迁移旧解决方案或将功能添加到新解决方案。在Nuget 2.7+中,Nuget Automatic Package Restore已经改变。不幸的是,它看起来像一个非向后兼容的变化。我们有一些2.7以上的开发者,现在需要升级到2.7+以上。在这种情况下,会的NuGet自动添加EnsureNuGetPackageBuildImports相关元素回到你的.csproj文件,当您进入和降级的项目库之一。

要解决这个问题,我们的建议是不要混用自动修复包“老”和新方法(删除文件,当您使用自动包装还原)。

此外,如果要在和降级的项目之一库是不可避免的,有一个PS脚本可以帮你删除它更方便: DisableNuGetPackageRestore.ps1