如何在Nuget.Config中配置优先搜索C盘再搜索D盘的包源?
NuGet多本地源优先级配置方案
需求实现方式
NuGet本身支持配置多个本地包源,并且默认按照配置顺序进行搜索,完全可以满足你的两种需求:
1. 优先搜索C盘,未找到再搜索D盘
只需将C盘的本地源放在D盘源的前面,NuGet会从上到下依次遍历源,找到符合要求的包后就停止后续搜索。
修改后的配置文件如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="Local-C" value="C:\...\your-c-drive-path" /> <add key="Local-D" value="D:\...\somePath" /> </packageSources> </configuration>
2. 同时搜索C、D盘
只要同时添加这两个本地源即可。NuGet在执行包搜索(比如VS包管理器搜索、nuget list命令)时,会遍历所有启用的源并返回所有匹配结果;如果是安装包,若多个源存在同版本包,会优先使用配置顺序靠前的源的包,若版本不同则自动选择最高版本。
注意事项
- 确保C盘和D盘的路径是有效的NuGet源:路径下可以直接存放
.nupkg文件,或者通过nuget init命令将包整理为标准的NuGet源结构。 - 如果需要强制NuGet检查所有源(即使前面的源已有匹配包),可以在使用NuGet命令时加上
-AllSources参数,比如:nuget install YourPackageName -AllSources。
内容的提问来源于stack exchange,提问作者Artur
相关产品推荐
相关产品推荐

