.NET中Package Mapping Context下‘Source not found’错误的解决方法
解决NuGet包源映射导致的dotnet工具安装失败问题
我执行以下命令安装dotnet-ef工具时:
dotnet tool install --global dotnet-ef
遇到了如下错误:
Unhandled exception: Microsoft.DotNet.Cli.NuGetPackageDownloader.NuGetPackageInstallerException: Package Source Mapping is enabled, but no source found under the specified package ID: dotnet-ef. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details. at Microsoft.DotNet.Cli.NuGetPackageDownloader.NuGetPackageDownloader.LoadNuGetSources(PackageId packageId, PackageSourceLocation packageSourceLocation, PackageSourceMapping packageSourceMapping) at Microsoft.DotNet.Cli.NuGetPackageDownloader.NuGetPackageDownloader.GetBestPackageVersionAsync(PackageId packageId, VersionRange versionRange, PackageSourceLocation packageSourceLocation) at Microsoft.DotNet.Cli.ToolPackage.ToolPackageDownloader.<>c__DisplayClass8_0.<InstallPackage>b__0() at Microsoft.DotNet.Cli.TransactionalAction.Run[T](Func`1 action, Action commit, Action rollback) at Microsoft.DotNet.Tools.Tool.Install.ToolInstallGlobalOrToolPathCommand.Execute() at System.CommandLine.Invocation.InvocationPipeline.Invoke(ParseResult parseResult) at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, TimeSpan startupTime, ITelemetry telemetryClient)
我已经尝试过以下操作,但都没有效果:
dotnet nuget locals all --cleardotnet nuget add source https://api.nuget.org/v3/index.json --name nuget.org
可行解决方法
方法1:调整NuGet包源映射配置
找到你的NuGet配置文件:
- Windows系统:
%appdata%\NuGet\NuGet.Config - Linux/macOS系统:
~/.nuget/NuGet/NuGet.Config
打开文件后:
- 如果存在
<packageSourceMapping>节点,要么给nuget.org源添加匹配所有包的规则,要么明确添加dotnet-ef的映射:<packageSourceMapping> <packageSource key="nuget.org"> <!-- 匹配所有包,或者单独指定dotnet-ef --> <package pattern="*" /> <!-- <package pattern="dotnet-ef" /> --> </packageSource> </packageSourceMapping> - 要是暂时不需要包源映射功能,直接把整个
<packageSourceMapping>区块注释掉或者删除,保存文件后重试安装命令。
方法2:安装时直接指定包源
绕开包源映射的限制,安装命令里直接指定nuget.org源:
dotnet tool install --global dotnet-ef --source https://api.nuget.org/v3/index.json
方法3:重置NuGet配置
如果配置文件已经混乱,直接重置为默认配置,再重新添加源:
dotnet nuget config --clear-all dotnet nuget add source https://api.nuget.org/v3/index.json --name nuget.org
之后再执行安装命令即可。
内容的提问来源于stack exchange,提问作者Trusha Jadeja
相关产品推荐
相关产品推荐

