Answers:
我建议从命令行使用此命令更新.nuget \ nuget.exe:
nuget.exe update -self
[编辑]:首先关闭VS解决方案。如果有更新并且打开了解决方案,则将从解决方案中删除nuget.exe。
您可以通过修改.nuget \ nuget.targets以添加上述命令,在还原时自动更新nuget.exe。我将以其中的restore命令为例。但是我不确定是否值得,nuget.exe更新并不常见,并且向后兼容性应该很少中断。
我发现解决此问题的最佳方法是,只需删除.nuget文件夹并重新启用解决方案范围的程序包还原。如上所述,您可以在构建中添加一个self update命令,但是如果版本之间存在更改(或从解决方案中删除引用),该命令将不会更新目标或配置文件。也许这没什么大不了的,但这是确保拥有最新的exe和配置文件的肯定方法。归根结底,仅当您需要访问新命令或新版本中最终会有重大更改时,更新才是问题。
NuGet.exe
,以及该NuGet.targets
文件(这也很重要)。只需确保保存对NuGet.targets
文件所做的任何自定义设置(例如,自定义PackageSources),以便可以将其重新应用于新文件。
基本上,您需要做的就是在.sln文件旁边创建一个NuGet.Config文件,其中包含:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear/>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="aspnetwebstacknightlyrelease" value="https://www.myget.org/f/aspnetwebstacknightlyrelease/" />
</packageSources>
</configuration>