我们是 NuGet 的热心用户,无论是内部构建的还是第三方包的。
我们最近开始在我们的一些构建项目中启用 NuGet 包还原选项,以减少我们提交给源代码控制的二进制文件的数量,但我们遇到了一个问题。
我们看到 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 可以从 repo 中获得,可以启用吗?