【问题标题】:How does restore operation choose NuGet source?还原操作如何选择 NuGet 源?
【发布时间】:2020-04-17 17:18:42
【问题描述】:

在 Visual Studio 中,我定义了 2 个包源:默认 nuget.org 和自定义源。还原包时,Visual Studio如何知道选择哪一个来还原各种依赖?

我找到了这篇文章 (What NuGet sources are used for restore?),但是它并没有真正给出最终答案。

【问题讨论】:

    标签: .net visual-studio nuget nuget-package-restore


    【解决方案1】:

    还原操作如何选择NuGet源?

    其实恢复机制会先从本地缓存(C:\Users\Administrator\.nuget\packages)恢复包,如果你之前在你的代理中安装过包,然后它会检查Tools->Options-->Nuget Package Manager-->Package Sources下的nuget包网络源并从中下载丢失的nuget包。

    在这种情况下,NuGet 会忽略包源的顺序,并使用最先响应请求的源中的包。见this link。如果你当前的两个包源中都有这个包,我认为你选择下载的 URL 取决于 url 请求的速度。

    要更直接地了解您当前的项目响应,请尝试以下操作:

    --------如果您的项目基于Net Framework

    1)this link 上下载nuget.exe cli,然后在系统环境变量PATH 上复制nuget.exe 的本地路径。在我这边,它是C:\tools\nuget.exe,我将路径C:\tools 复制到PATH

    注意:完成后需要重启VS实例。

    2) 使用nuget restore 命令行来恢复项目,而不是Restore Nuget Packages UI 按钮。

    Tools-->Nuget Package Manager-->Package Manager Console 然后

    输入:nuget restore -v detailed 然后你可以找到这个:

    而且可以直接找到还原包源。

    --------如果您的项目基于新的sdk:

    您可以输入:

    dotnet restore -v detailed

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 2013-06-13
      • 2015-11-27
      • 1970-01-01
      相关资源
      最近更新 更多