nuget包的本地来源不存在

时间:2019-06-12 09:26:55

标签: visual-studio-code nuget nuget-package-restore

在另一台计算机上打开该项目并在 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代码。

6 个答案:

答案 0 :(得分:5)

我遇到了类似的错误,无法使用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

答案 1 :(得分:0)

包源可能在%appdata%\nuget\nuget.config中定义。在您喜欢的xml /文本编辑器中编辑此文件(也许是VSCode?)。您应该在package sources元素下看到一个add元素,用于添加该文件路径。注释掉或删除该行。

如果该文件不在该文件中,请尝试运行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文件)。然后,您在该文件中搜索不存在的路径,然后向上滚动直到找到说明该文件定义于其中的注释。然后选择是否编辑该文件。

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

答案 2 :(得分:0)

我在DevOps(图像1,2).net核心还原任务上也遇到了同样的问题。我只是从NuGet.config文件中删除了脱机软件包引用(图3)来解决了这个问题。

图片1 enter image description here

图片2 enter image description here

图片3 enter image description here

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

<块引用>

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

在我看来,没关系。

答案 5 :(得分:0)

在较新的版本中,找到类似 "C:\Program Files\dotnet\sdk\6.0.100-preview.3.21202.5\NuGet.targets"

然后删除不工作的目录。