nuget 包的本地源不存在

Local source of nuget packages doesn't exist

在另一台计算机上打开项目并在 VS Code 上 运行 后,出现以下问题:

C:\Program Files\dotnet\sdk.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/text 编辑器中编辑此文件(也许 VSCode?)。您应该在 package sources 元素下看到一个添加该文件路径的 add 元素。注释掉或删除该行。

如果它不在该文件中,请尝试 运行宁 dotnet restore --verbosity normaldotnet restore -v n。如果仍然只收到错误消息,请尝试 运行ning dotnet new nugetconfig,或临时创建 C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\ 目录。 NuGet 以正常的冗长程度输出所有已读取 nuget.config 文件的列表。打开每一个,直到你发现哪一个定义了不存在的本地源,这样你就可以编辑它并删除它。或者只保留空目录。

包源也可能是在 MSBuild 文件而不是 nuget.config 文件中定义的。如果是这种情况,您可能需要 运行 dotnet msbuild -pp 生成一个 pre-processed 文件(评估所有导入的 msbuild 以创建一个 "stand-alone" msbuild 文件)。然后,您在该文件中搜索不存在的路径,然后向上滚动,直到找到一条说明它在哪个文件中定义的注释。然后您选择是否编辑该文件。

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

我有一个类似的错误阻止 nuget restore 命令工作但路径不同:

C:\Program Files\dotnet\sdk.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

我在 DevOps(图片 1,2).net 核心恢复任务中也遇到了同样的问题。我通过从 NuGet.config 文件中删除离线包参考(图像 3)解决了这个问题。

图片1

图片2

图3

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

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

顺便说一句,GitHub 上有关于类似问题的讨论,Rob Relya from Microsoft wrote:

This is by design behavior. We fail restore if any of your sources are not reachable. We don't want to create a folder for you, in case it was a typo.

在我看来,还可以。

打开 PowerShell window 并输入以下代码: dotnet new nugetconfig

我使用了更直观的方法来解决这个问题

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

  1. 完成了!

我无法理解答案,也许他们中的一些人有解决方案。最终对我有什么帮助:

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

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

虽然错误看起来与nuget无关,但实际上是相关的

打开 PowerShell 并运行执行以下命令:

dotnet new nugetconfig