在另一台电脑上打开项目并在VS Code上运行后,出现以下问题:
C:\Program Files\dotnet\sdk\2.2.300\NuGet.targets(121,5): error : The
local source C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'
doesn't exist.
我找到了 VS 的解决方案,但没有 VS Code。
包源可能在
%appdata%\nuget\nuget.config
中定义。在您最喜欢的 xml/文本编辑器(也许是 VSCode?)中编辑此文件。您应该在包源元素下看到一个添加该文件路径的添加元素。注释掉或删除该行。
如果该文件中没有该文件,请尝试运行
dotnet restore --verbosity normal
或仅运行 dotnet restore -v n
。如果您仍然只收到错误消息,请尝试运行 dotnet new nugetconfig
,或临时创建 C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
目录。 NuGet 以正常的详细程度输出已读取的所有 nuget.config
文件的列表。打开每一个,直到找到哪一个定义了不存在的本地源,这样您就可以编辑它并删除它。或者只保留空目录。
包源也可能在 MSBuild 文件中定义,而不是在
nuget.config
文件中定义。如果是这种情况,您可能需要运行 dotnet msbuild -pp
来生成预处理文件(评估所有导入的 msbuild 以创建单个“独立”msbuild 文件)。然后,您在该文件中搜索不存在的路径,然后向上滚动,直到找到一条注释,说明该文件是在哪个文件中定义的。然后您可以选择是否编辑该文件。
但是,在路径中创建一个空目录可能会更容易。
我遇到了类似的错误,导致
nuget restore
命令无法工作,但路径不同:
C:\Program Files\dotnet\sdk\3.1.100\NuGet.targets(132,5): error : The local source C:\work\nuget doesn't exist.
我通过从以下位置删除该路径来修复它:
Visual Studio ▶ Tools ▶ Options ▶ Nuget Package Manager ▶ Package Sources
在 macOS 和 Linux 上您可以删除
~/.nuget
打开 PowerShell 窗口并输入以下代码: dotnet 新 nugetconfig
虽然这个错误看起来和nuget无关,但其实是有关系的。
打开 PowerShell 并运行以下命令:
dotnet new nugetconfig
因为消息说该文件夹不存在,所以我创建了它,问题就消失了。是的,就是这么简单。
顺便说一句,GitHub 上有一个关于类似问题的讨论,来自 Microsoft 的 Rob Relya 写道:
这是设计行为。如果您的任何来源无法访问,我们将无法恢复。 我们不想为您创建文件夹,以防出现拼写错误。
从我的角度来看,还可以。
我很难理解答案,也许其中一些有解决方案。最终对我有帮助的是:
I edited C:\Windows\System32\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config
and removed <packageSources> with the value "..\NuGet.Config"
不确定它是如何到达那里的,每个人的实际价值可能会有所不同。
我正在将 dontet MVC 项目从 .Net core 2.2 升级到 3.1,并添加对 Microsoft.Extensions.Configuration.AzureAppConfiguration 的引用。 当我遇到这个问题时。我所做的就是从 nuget.config 中删除“add key=”Local” value=”.References”,问题就解决了。我能够引用该包,