有没有办法使用包恢复时自动更新.nuget文件夹中的nuget.exe?

自从Nuget 1.5以来,我的团队一直在使用“启用软件包还原”选项,以使软件包不受我们的源代码pipe理。 当Nuget 1.6发布的时候,我们注意到一个问题,那就是没有把包拉下来,然后把它追踪到需要更新到1.6的.nuget文件夹中的Nuget.exe以匹配Package Manager。

一旦Nuget被更新,更新解决scheme的最好方法是什么? 我从工作室看不到一个简单的方法来确定哪个版本的nuget在解决scheme文件夹中。 到目前为止,我们吹掉.nuget文件夹并重新运行“启用软件包恢复”命令。

我会build议使用这个命令从命令行更新.nuget \ nuget.exe:

nuget.exe update -self 

[编辑]:先closuresVS解决scheme。 如果有更新并且解决scheme已打开,nuget.exe将从解决scheme中删除。

可以通过修改.nuget \ nuget.targets来添加上述命令, 从而自动更新还原时的nuget.exe。 我会看看那里的恢复命令。 但是我不确定是否值得,nuget.exe更新并不常见,而且向后兼容性应该很less破坏。

我发现处理这个问题的最好方法是简单地删除.nuget文件夹并重新启用解决scheme的宽包恢复。 如上所述,您可以将自我更新命令添加到您的版本,但是如果版本之间有变化(或从解决scheme中删除引用),则不会更新目标或configuration文件。 也许它不是什么大不了的事情,但这是确保你拥有最新的exe和configuration文件的绝对的方法。 而在一天结束时,更新只是一个问题,如果你需要访问一个新的命令或最终在新版本中发生重大变化。

在他的博客上看David Ebbo的post

基本上,您只需要在.sln文件旁创build一个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>