VS Code交互式Notebook引用NuGet报源目录不存在如何恢复默认配置
VS Code C#交互式笔记本NuGet引用3217错误修复方案
问题场景
在VS Code C#交互式笔记本单元格中使用如下指令引入NuGet包时:
#r "nuget: PackageIWantToInclude"
抛出如下报错:
Error: PackageManagement Error 3217 The source directory 'D:\MyLocalDirectory' not found
未手动配置过指向D:\MyLocalDirectory的包源时,通过重置NuGet包源默认配置即可解决,操作步骤如下:
- 定位全局NuGet配置文件
根据操作系统打开对应路径的配置文件:- Windows:资源管理器地址栏输入
%appdata%\NuGet\,找到目录下的NuGet.Config文件 - Mac/Linux:访问
~/.nuget/NuGet/路径,找到目录下的NuGet.Config文件
- Windows:资源管理器地址栏输入
- 修正包源配置
用文本编辑器打开NuGet.Config,找到<packageSources>节点,删除所有value为本地无效路径(包含报错提到的D:\MyLocalDirectory)的<add>条目,仅保留官方nuget.org源即可,标准默认配置如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> </packageSources> </configuration>
- 排查项目级配置
检查当前VS Code打开的工作区根目录,若根目录下存在NuGet.Config文件,同样检查其中的包源条目,删除无效本地路径源;无自定义包源需求时可直接删除该文件。 - 缓存清理与重启
打开终端执行dotnet nuget locals all --clear命令清空本地NuGet缓存,之后完全关闭VS Code重新启动,再次执行包引用指令即可正常拉取包。
不想手动编辑配置文件的话,可直接通过终端命令重置:
- 执行
dotnet nuget list source查看当前所有已配置的包源- 对所有非nuget.org的自定义源,执行
dotnet nuget remove source <源名称>逐个删除- 若nuget.org源不存在,执行
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org添加官方默认源
内容的提问来源于stack exchange,提问作者Marlon Dumal-is
相关产品推荐
相关产品推荐

