VS2017 - 尝试将 nuget 包保存到 Xamarin 文件夹中 - 为什么?

VS2017 - attempts to save nuget packages into a Xamarin folder - why?

我对这个感到困惑。

我安装了 VS2017(v15.9.16,2019 年 10 月中旬更新到最新版本),但由于某些原因,当我尝试将 NuGet 包添加到我的 Web 项目时,它想将它们保存到一个Xamarin 文件夹:

Warning MSB3106 
Assembly strong name "C:\Microsoft\Xamarin\NuGet\swashbuckle.aspnetcore.0.1\lib\netstandard2.0\Swashbuckle.AspNetCore.dll" 
is either a path which could not be found or it is a full assembly name which is badly formed. 
If it is a full assembly name it may contain characters that need to be escaped with backslash(\). 
Those characters are Equals(=), Comma(,), Quote("), Apostrophe('), Backslash(\).    

我在 "Error List" window 中收到此警告消息 10 次。

我的VS2017项目是一个.Net Core 2.2 Web API解决方案,我对Xamarin没有兴趣,也从来没有在这台笔记本电脑上做过任何Xamarin开发。不知道为什么VS2017决定开始使用这个奇怪的路径

这个输出路径到底设置在哪里?

Where the heck is this output path set ?

你的机器里还有VS2019吗?我发现如果有人在 VS 中开发 Xamarin,则可能会出现此问题。在我刚才安装 Xamarin 工作负载之前,我从来没有路径 C:\Microsoft\Xamarin\NuGet\

我猜来自此工作负载的某些东西可能会破坏您的 nuget 行为,这会导致您的错误消息中出现错误的路径。

建议:

1.Uninstall 因为您对 Xamarin.

不感兴趣,所以工作量很大

2.The 错误路径的直接原因是 Xamarin 工作负载在 C:\Program Files (x86)\NuGet\Config\ 中放置了一个 Xamarin.Offline.config 文件,它设置了 C:\Microsoft\Xamarin\NuGet\作为一个 fallbackPackageFolders

然后有时你会得到路径错误的错误消息,通常这种错误消息中的路径应该是C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\C:\Program Files\dotnet\sdk\NuGetFallbackFolder\

所以解决错误路径的另一种简单方法是删除路径C:\Program Files (x86)\NuGet\Config中的Xamarin.Offline.config,该文件可能是错误路径的直接原因。 (为了回答你原来的问题,这个文件为你设置了那个奇怪的路径...)

删除该文件后,clean your nuget cache 并删除您的 obj(存在 project.assets.json 的文件夹),我认为错误的路径永远不会困扰您。

而对于 MSB3106,您可能会从中得到一些帮助 。希望对您有所帮助:)

此外:检查你在VS中的package source设置,如果存在C:\Microsoft\Xamarin\NuGet\,删除它。