我向 Visual Studio 添加了 NuGet“包源”,因为我们有一个内部服务器在工作。
Visual Studio 现在始终默认为我的内部服务器,并且无法找到大多数 NuGet 包,直到我将包源切换到
All
或 nuget.org
。
这是一个小小的不便,但在过去的几周里,每次我需要使用 NuGet 包管理器时,我都会进行更多的点击。谁能告诉我如何默认为
All
而不是始终默认为 Internal nuget
?
谁能告诉我如何默认为“全部”而不是始终默认为“内部 nuget”?
据我所知,NuGet Package Manager 的默认包源取决于包源的顺序以及
activePackageSource
中 nuget.config
的属性。
包源码顺序:
当您打开 NuGet Package Manager 设置时,Tools->Options->NuGet Packager Manager->Package Source,您会注意到包源有向上和向下箭头:
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.org
设置在 NuGet 源列表顶部,或者将 nuget.org
设置为 activePackageSource
nuget.config:
<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>
不幸的是,根据文档这仅适用于 NuGet 2.X,并且在 3.X+ 中已弃用。