在我的公司,NuGet 包来自不同的来源:
当我启动 Visual Studio 时,我会自动登录(在右上角,我可以看到我的登录设置)。
我可以访问一些 NuGet 包,但有些我无权访问:
我一直在以多种方式进行
NuGet restore
:普通命令行、开发人员提示符、使用标准 NuGet.exe、使用最新的 NuGet.exe、从公司网络内部、从公司网络外部,...,它没有任何区别。
为了查明问题,我正在考虑恢复单个 NuGet 包,该包应该来自一个特定的包源,但该源是什么?
检查 NuGet 包的属性(是否正常)时,未提及包源。
所以我想做:
NuGet.exe restore DevExpress.Chartsv18.2_Core DevExpress..._Core_Package_Source
没有链接。包恢复按照指定源的顺序在
nuget.config
(系统定义的或项目定义的)中的所有源中搜索包,并安装它找到的第一个匹配的包。
dotnet restore
来做到这一点。请注意,NuGet.exe 是旧版且已弃用;其包恢复功能已集成到 dotnet
工具中并在那里得到改进。
> dotnet restore MyPackage -s NugetSourceName
如果不浏览某个包,就无法知道哪个源可用,但如上所述,这并不重要;包恢复会解决这个问题的。
现在(使用 .NET 6 工具)您确实有办法将包(模式)固定到特定的包源。该功能称为“包源映射”: