Visual Studio NuGet的默认包源默认为新添加的源,而不是All或nuget.org

mqxuamgl  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(84)

我在Visual Studio中添加了一个NuGet“包源”,因为我们有一个内部服务器在工作。
Visual Studio现在总是默认为我的内部服务器,并且无法找到我们的大多数NuGet包,直到我将包源切换到Allnuget.org
这是一个小小的不便,但在过去的几周里,每当我需要使用NuGet包管理器时,我都会进行更多的点击。谁能告诉我如何默认为All而不是总是默认为Internal nuget

gev0vcfq

gev0vcfq1#

谁能告诉我如何默认为All而不是总是默认为Internal nuget?
据我所知,NuGet Package Manager的默认包源取决于包源的顺序和nuget.configactivePackageSource的属性。

包源顺序:

当你打开NuGet Package Manager设置,工具->选项->NuGet Packager Manager->包源,你会注意到包源有上下箭头:

NuGet软件包管理器将给予默认NuGet软件包源在软件包源列表顶部的优先级。例如,如果我在列表顶部设置NuGet包源LocalServer,当我创建一个新项目时,默认的NuGet源将更改为LocalServer

但是默认NuGet源的优先级很容易被nuget.config中的activePackageSource属性破坏

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

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

重新启动Visual Studio,然后新建一个项目,你会发现默认的NuGet源代码更改为LocalServer2

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

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

更新评论:

没有办法默认为All吗?也许你可以建议默认为All(看起来你为MS工作)
如果你想将默认的NuGet源设置为All,你可以在nuget.config中使用下面的设置:

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

不幸的是,根据文档,这只适用于NuGet 2.X,而不适用于3.X+。

相关问题