nuget包的本地源不存在

问题描述 投票:0回答:9

在另一台电脑上打开项目并在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。

visual-studio-code nuget nuget-package-restore
9个回答
91
投票

包源可能在

%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 文件)。然后,您在该文件中搜索不存在的路径,然后向上滚动,直到找到一条注释,说明该文件是在哪个文件中定义的。然后您可以选择是否编辑该文件。

但是,在路径中创建一个空目录可能会更容易。


30
投票

我遇到了类似的错误,导致

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


12
投票

打开 PowerShell 窗口并输入以下代码: dotnet 新 nugetconfig


9
投票

我使用了更多视觉方法来解决这个问题👇

✍edit1:可能的原因,您的项目可能有离线包引用到您的第一台计算机。而且,当您通过另一台计算机时,它无法识别离线包的本地源路径。

  1. 完成了!

5
投票

虽然这个错误看起来和nuget无关,但其实是有关系的。

打开 PowerShell 并运行以下命令:

dotnet new nugetconfig

2
投票

因为消息说该文件夹不存在,所以我创建了它,问题就消失了。是的,就是这么简单。

顺便说一句,GitHub 上有一个关于类似问题的讨论,来自 Microsoft 的 Rob Relya 写道

这是设计行为。如果您的任何来源无法访问,我们将无法恢复。 我们不想为您创建文件夹,以防出现拼写错误。

从我的角度来看,还可以。


1
投票

我在 DevOps(图 1,2).net core 恢复任务上也遇到了同样的问题。我通过从 NuGet.config 文件中删除脱机包引用(图 3)解决了这个问题。

图1

图2

图3


1
投票

我很难理解答案,也许其中一些有解决方案。最终对我有帮助的是:

I edited C:\Windows\System32\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config
and removed <packageSources> with the value "..\NuGet.Config"

不确定它是如何到达那里的,每个人的实际价值可能会有所不同。


0
投票

我正在将 dontet MVC 项目从 .Net core 2.2 升级到 3.1,并添加对 Microsoft.Extensions.Configuration.AzureAppConfiguration 的引用。 当我遇到这个问题时。我所做的就是从 nuget.config 中删除“add key=”Local” value=”.References”,问题就解决了。我能够引用该包,

© www.soinside.com 2019 - 2024. All rights reserved.