【发布时间】:2018-03-23 09:35:17
【问题描述】:
我获得了 Visual Studio 2017 解决方案。当我打开它失败并出现错误:
Error occurred while restoring NuGet packages: The local source '\\network-location\' doesn't exist.
我可以手动获取这些包的副本,但我不知道这个原始路径配置在哪里以及如何将其更改为新位置。
关于我应该在哪里看,有什么建议吗?
【问题讨论】:
我获得了 Visual Studio 2017 解决方案。当我打开它失败并出现错误:
Error occurred while restoring NuGet packages: The local source '\\network-location\' doesn't exist.
我可以手动获取这些包的副本,但我不知道这个原始路径配置在哪里以及如何将其更改为新位置。
关于我应该在哪里看,有什么建议吗?
【问题讨论】:
可以在 NuGet Package Manager -> Package Sources 下的 Visual Studio 选项 (Tools -> Options) 中找到包源,或者直接单击 NuGet 对话框中的相应图标(解决方案/项目的上下文菜单 -> Manage NuGet Packages...):
您的本地包源应在以下对话框中列出:
但是,包源可能是特定于解决方案或项目的,因此可以在解决方案目录中的NuGet.config 文件中指定。根据NuGet.config reference,从 NuGet 3.4 开始,Visual Studio 会在项目目录或“或驱动器根目录之前的任何文件夹”中查找。直到 NuGet 3.3,还有名称为 .nuget 的子目录在其中搜索 NuGet.config 文件。
必须更改包含本地包源的文件才能恢复正确的包。
【讨论】:
上面提出的解决方案都没有为我做这件事。而且,老实说,我真的不喜欢微软一段时间以来所做的事情:每次安装更新时都会有另一个惊喜。 :-(
分析:
Error occurred while restoring NuGet packages: The local source 'C:\Microsoft\Xamarin\NuGet' doesn't exist.
显然,NuGet 正在尝试从 C:\\Microsoft\\Xamarin\\NuGet 恢复与 Xamarin 无关的解决方案。该解决方案之前编译过多次,甚至从 GIT 中取回也没有改变任何东西。所以,问题不是我的解决方案。这是更全球化的东西。
顺便说一句:我不想使用这个文件夹,因为我不使用 Xamarin!
我在解决方案的任何obj 文件夹中的*.csproj.nuget.dgspec.json 文件中找到了以下参考。所有这些 json 文件都指向这个 Xamarin 文件夹:
"fallbackFolders": {
"C:\\Microsoft\\Xamarin\\NuGet": {},
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
问题:VS 是如何知道fallbackFolders 的?
如上所述,我在我的任何 Visual Studio / NuGet 配置设置中都没有找到任何提示。我删除了所有objfolder,但每次尝试编译或恢复我的包时,引用都回来了。
对我来说解决方案是:
删除解决方案中的所有obj文件夹(如上所述)
删除c:\Program Files (x86)\NuGet\Config\Xamarin.Offline.config
你会发现以下内容:
<fallbackPackageFolders>
<add key="Xamarin Offline Packages" value="C:\Microsoft\Xamarin\NuGet\"/>
</fallbackPackageFolders>
这个文件是一周前在我的机器上引入的,我认为它是最新的 VS 更新(16.2)。从今天开始,我并没有离开最新的更新 (16.2.1)。
【讨论】:
Xamarin.Offline.config,附加了一个.txt 扩展名(以防我需要恢复它),然后重新加载了我的解决方案; .csproj.nuget.dgspec.json 在没有 C:\Microsoft 文件夹的情况下重新生成。耶!
你会在 Visual Studio 2019 中遇到同样的问题。我也有同样的问题,我以为是 Visual Studio 2017 上的冲突,但事实并非如此。
解决方法是您必须删除导致问题的来源。
您可以通过Tools 删除它 -> NuGet Package Manager -> Package Manager Settings
【讨论】:
在我的情况下,我收到了这个错误:
还原 NuGet 包时出错:本地源“C:\Microsoft\Xamarin\NuGet”不存在。
我不小心删除了“C:\Microsoft\Xamarin\”文件夹。
在此之后 VS2019 无法恢复软件包。
我刚刚手动创建了“C:\Microsoft\Xamarin\NuGet”文件夹。
重新启动VS,清理解决方案,之后一切顺利。
【讨论】:
C:\Microsoft\Xamarin\NuGet 就可以了,不需要重新启动。
所有答案都是相关的,但它们并不完整,浪费了 30 分钟。
以下工作正常:
1 .清除缓存并删除问题文件夹:
Tools > NuGet Package Manager > Package Manager Settings
> NuGet Package Manager > General > Clear All NuGet Cache(s)
Tools > NuGet Package Manager > Package Manager Settings
> NuGet Package Manager > Package Sources
> Available package sources
> {uncheck the folder that is giving error}
> OK
2 。在 VS 解决方案上还原 NuGet 包
Right-click on Visual studio solution (not project)
> Restore NuGet Packages
3 .构建和运行项目
希望对您有所帮助。
【讨论】:
我在不同的情况下遇到了这个错误。我在我的解决方案文件夹中检查了Nuget.config 的内容,在<packageSources> 节点下它有一个指向./nuget 的条目。解决方案目录中不存在此文件夹,因此我只是创建了一个具有此名称的空文件夹,并且解决方案编译没有任何问题。
【讨论】:
在我的情况下,解决它的唯一方法是清理所有 NuGet 缓存。 您可以在工具 -> NuGet 包管理器 -> 常规中找到它
【讨论】:
但我不知道这个原始路径的配置位置以及如何将其更改为新位置。
要解决此错误,请在给定的解决方案中搜索文件NuGet.config,然后用记事本编辑它,您将在该文件中找到以下设置:
<packageSources>
<add key="LocalServerName" value="\\network-location\" />
</packageSources>
您可以将值更改为新位置。
【讨论】:
同样的情况:
Error occurred while restoring NuGet packages: The local source 'C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages' doesn't exist.
我的解决方案是重新创建文件夹。
【讨论】: