NuGet配置文件nuget.config的应用示例
参考:
https://learn.microsoft.com/zh-cn/nuget/consume-packages/configuring-nuget-behavior
创建新配置文件
使用 .NET CLI 运行 dotnet new nugetconfig ,创建默认 nuget.config。 有关详细信息,请参阅 dotnet CLI 命令。
也可以将下方的模板手动复制到新文件中,然后使用 nuget config -configFile <filename> 设置值:
<?xml version="1.0" encoding="utf-8"?> <configuration> </configuration>
设置演练
假设两个独立的驱动器上具有以下文件夹结构:
D:\Packages NuGet NuGet_Backup
首先,列出计算机级的 NuGet.Config
文件的路径和内容:
Windows:%ProgramFiles(x86)%\NuGet\Config Mac/Linux:默认为 /etc/opt/NuGet/Config (Linux) 或 /Library/Application Support (Mac)。 如果 $NUGET_COMMON_APPLICATION_DATA 既不是 null 也不是空,则为 $NUGET_COMMON_APPLICATION_DATA/NuGet/Config。 实际内容 C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config 文件内容 <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\"/> </packageSources> </configuration>
在列出用户级:
Windows:%appdata%\NuGet\NuGet.Config Mac/Linux: ~/.config/NuGet/NuGet.Config 或 ~/.nuget/NuGet/NuGet.Config(因工具而异) 所有平台都支持其他配置。 这些配置无法通过工具进行编辑。 Windows:%appdata%\NuGet\config\*.Config Mac/Linux:~/.config/NuGet/config/*.config 或 ~/.nuget/config/*.config 实际内容 C:\Users\Administrator\AppData\Roaming\NuGet\NuGet.Config 文件内容 <?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="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" /> <add key="192.168.226.253:8080" value="http://10.32.226.253:8080/v3/index.json" /> </packageSources> <packageRestore> <add key="enabled" value="True" /> <add key="automatic" value="True" /> </packageRestore> <bindingRedirects> <add key="skip" value="False" /> </bindingRedirects> <packageManagement> <add key="format" value="0" /> <add key="disabled" value="False" /> </packageManagement> <config> <add key="globalPackagesFolder" value="D:\Packages\NuGet\packages" /> </config> </configuration>
最后,列出当前值:
当前文件夹(又称解决方案文件夹)或上至驱动器根目录的任何文件夹。 实际内容 D:\Packages D:\Packages\NuGet D:\Packages\NuGet\nuget.config D:\Packages\NuGet\config D:\Packages\NuGet\packages D:\Packages\NuGet_Backup D:\Packages\NuGet_Backup\nuget.config
下面,检查实际nuget.config文件的配置影响。上面2个目录下面,有2个nuget.config文件,我们可以通过下面的命令来列出注册的源:
1 2 3 4 5 6 7 8 9 10 | PS D:\Packages\NuGet_Backup> dotnet nuget list source 注册的源: 1. nuget.org [已启用] https: //api .nuget.org /v3/index .json 2. Microsoft Visual Studio Offline Packages [已启用] C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\ 3. 192.168.226.253:8080 [已启用] http: //192 .168.226.253:8080 /v3/index .json warn : 正在通过 “HTTP” 源“192.168.226.253:8080 [http: //192 .168.226.253:8080 /v3/index .json]”运行“list source ”操作。将来的版本中将删除非 HTTPS 访问权限。请考虑迁移到 “HTTPS” 源。 PS D:\Packages\NuGet_Backup> |
此时,具有3个注册的源,实际的 D:\Packages\NuGet_Backup\nuget.config 文件的内容为:
<?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="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" /> <add key="10.32.226.253:8080" value="http://10.32.226.253:8080/v3/index.json" /> </packageSources> <packageRestore> <add key="enabled" value="True" /> <add key="automatic" value="True" /> </packageRestore> <bindingRedirects> <add key="skip" value="False" /> </bindingRedirects> <packageManagement> <add key="format" value="0" /> <add key="disabled" value="False" /> </packageManagement> </configuration>
我们重新检查一下另一个,列出的注册源如下:
PS D:\Packages\NuGet> dotnet nuget list source 注册的源: 1. nuget [已启用] https://api.nuget.org/v3/index.json PS D:\Packages\NuGet>
此时,具有1个注册的源,实际的 D:\Packages\NuGet\nuget.config 文件的内容为:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <!--To inherit the global NuGet package sources remove the <clear/> line below --> <clear /> <add key="nuget" value="https://api.nuget.org/v3/index.json" /> </packageSources> </configuration>
此时,该配置清除了 <packageSources>
,因此 nuget.org 将不再可用作源,并仅留下 nuget 的源名。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类