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

Ric*_*ick 90 nuget

我的团队一直在使用"启用包还原"选项,因为Nuget 1.5可以将包保留在源代码管理之外.当Nuget 1.6发布时,我们注意到一个问题,它没有将软件包拉下来,并将其跟踪到.nuget文件夹中的Nuget.exe,需要更新到1.6以匹配软件包管理器.

一旦Nuget被更新,更新解决方案的最佳方法是什么?我没有从工作室看到一个简单的方法来告诉解决方案文件夹中哪个版本的nuget.到目前为止,我们吹走.nuget文件夹并重新运行Enable Package Restore命令.

Ale*_*ion 145

我建议从命令行使用此命令更新.nuget \nuget.exe:

nuget.exe update -self
Run Code Online (Sandbox Code Playgroud)

[编辑]:首先关闭VS解决方案.如果有更新并且解决方案已打开,则将从解决方案中删除nuget.exe.

可以通过修改.nuget \nuget.targets来添加上述命令,从而在还原时自动更新nuget.exe.我在那里看一下restore命令作为例子.但我不确定它是否值得,nuget.exe更新并不常见,向后兼容性很少会破坏.


Chr*_*rby 31

我发现处理此问题的最佳方法是删除.nuget文件夹并重新启用解决方案范围的包恢复.如上所述,您可以向构建添加自更新命令,但如果版本之间存在更改(或从解决方案中删除引用),则不会更新目标或配置文件.也许它不是那么大的交易,但这是确保你拥有最新的exe和配置文件的确定方法.在一天结束时,如果您需要访问新命令或最终在新版本中发生重大更改,则更新只是一个问题.

  • +1 - 我发现这是更新`NuGet.exe`*以及'NuGet.targets`文件(这也很重要)的最佳方法.只需确保保存对`NuGet.targets`文件所做的任何自定义(例如自定义PackageSources),以便可以将它们重新应用到新文件中. (3认同)