我们热衷于使用NuGet,不仅用于内部构建的软件包,还用于第三方软件包。我们最近开始在一些构建项目中启用NuGet Package Restore选项,以减少提交到源代码控制的二进制文件数量,但是我们遇到了一个问题。我们看到Visual Studio的启动时间非常长,并且一旦启动(可能需要超过半个小时),随后的构建也同样耗时。在此期间,您可以在进程资源管理器中看到许多子NuGet进程的出现和消失。我们发现,如果packages.config文件中引用的软件包版本在任何配置的软件包源中都不可用(可能是内部软件包的旧版本,有人正在清理我们的本地存储库),那么似乎NuGet和Visual Studio会陷入某种无限(或者至少是长时间运行的)重试循环。如果我们从命令行运行NuGet安装命令,会返回错误信息。
>.nuget\NuGet.exe install project\packages.config -o packages
Unable to find version '1.0.0.1' of package 'my.internal.package'.
但看起来 Visual Studio/NuGet 没有正确地消费它。
- NuGet 是否在任何地方记录其操作?
- 我们能否限制 NuGet 恢复重试或超时(也许在
nuget.targets
文件中)? - 看起来 NuGet 的语义化版本号未被使用,因为在上述场景中 1.0.0.2 可在仓库中获取,这可以启用吗?