Nuget的默认包源默认为新添加的源而不是All或nuget.org

时间:2017-12-05 22:39:05

标签: visual-studio nuget visual-studio-2017

我在Visual Studio中添加了一个nuget'Package source',因为我们有一个内部服务器正在运行。

Visual Studio现在始终默认为我的内部服务器,在将包源切换为Allnuget.org

之前无法找到我们的大多数nuget包

这是一个小小的不便,但在过去的几周里,每次我需要使用nuget包管理器时,我都会进行更多点击。任何人都可以告诉我如何默认All而不是默认为Internal nuget吗?

nuget defaults to internal package server

1 个答案:

答案 0 :(得分:6)

  

任何人都可以告诉我如何默认全部而不是默认为内部nuget?

据我所知,NuGet Package Manager的默认包源取决于包源的顺序以及activePackageSourcenuget.config的属性。

包来源的顺序:

当您打开NuGet包管理器设置,工具 - >选项 - > NuGet包装管理器 - >包源时,您会注意到包源有向上和向下箭头:

enter image description here

NuGet Package Manager将优先考虑包源列表顶部的默认nuget包源。例如,如果我在该列表的顶部设置nuget包源LocalServer,则在创建新项目时,默认的nuget源将更改为LocalServer

enter image description here

然而默认nuget源的优先级可以通过nuget.config中的activePackageSource属性轻松打破

从%appdata%\ NuGet \ NuGet.config打开nuget.config文件,添加以下代码:

  <activePackageSource>
    <add key="LocalServer2" value="D:\LocalServerTest" />
  </activePackageSource>

重新启动Visual Studio ,然后创建一个新项目,您会发现默认的nuget源更改为LocalServer2

enter image description here

所以,如果你想默认nuget.org而不是默认为Internal nuget,你可以在nuget顶部设置nuget源nuget.org源列表或将nuget.org设置为nuget.config中的activePackageSource

  <activePackageSource>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </activePackageSource>

评论更新:

  

有没有办法默认为全部?也许你可以建议默认为All(看起来你为MS工作)

如果您要将默认nuget来源设置为All,则可以使用以下nuget.config中的设置:

  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>