Visual studio 无法在Visual Studio for Mac&;中还原nuget软件包;具有慢速(玻利维亚)互联网的dotnet核心

Visual studio 无法在Visual Studio for Mac&;中还原nuget软件包;具有慢速(玻利维亚)互联网的dotnet核心,visual-studio,nuget,.net-core,nuget-package-restore,visual-studio-mac,Visual Studio,Nuget,.net Core,Nuget Package Restore,Visual Studio Mac,我在玻利维亚恢复DotnetCore2.0项目的包时遇到问题。回到荷兰的家里,我在恢复软件包方面没有问题,但在这里它坏了 我遇到了很多错误,比如: Failed to download package 'System.Linq.4.1.0' from 'https://api.nuget.org/v3-flatcontainer/system.linq/4.1.0/system.linq.4.1.0.nupkg'. An error occurred while sending the requ

我在玻利维亚恢复DotnetCore2.0项目的包时遇到问题。回到荷兰的家里,我在恢复软件包方面没有问题,但在这里它坏了

我遇到了很多错误,比如:

Failed to download package 'System.Linq.4.1.0' from
'https://api.nuget.org/v3-flatcontainer/system.linq/4.1.0/system.linq.4.1.0.nupkg'.
An error occurred while sending the request
  Error: SecureChannelFailure (Unable to write data to the transport connection: Cannot access a disposed object.
  Object name: 'System.Net.Sockets.Socket'..)
  Unable to write data to the transport connection: Cannot access a disposed object.
  Object name: 'System.Net.Sockets.Socket'..
  Cannot access a disposed object.
  Object name: 'System.Net.Sockets.Socket'.
Unable to load package 'System.Linq'.
当我尝试设置此文件时,我得到的速度介于400 KB/s和3 MB/s之间

我认为是nuget同时恢复了这些包,这导致了旅馆互联网的充分利用?我在这里的不同旅馆/咖啡馆尝试过,我也遇到同样的问题。当我在荷兰将桌面远程连接到我的家庭服务器,并为同一个项目恢复软件包时,一切都进展顺利

我的选择是什么?我用谷歌搜索了一会儿这个问题,但还没有找到解决办法

谢谢


Jorik

我无法帮助解决网络问题,但您可以减少Visual Studio for Mac下载的NuGet软件包的数量,作为一种可能的解决方法。可以使用NuGet回退文件夹为.NET Core 2.0项目执行此操作:

/usr/local/share/dotnet/sdk/NuGetFallbackFolder/
回退文件夹包含许多默认情况下由.NET Core 2.0使用的NuGet包。如果安装.NET Core SDK,则应创建此文件夹

使用上述文件夹将阻止下载大量NuGet软件包

您可以直接将其作为NuGet包源添加,也可以编辑~/.config/NuGet/NuGet.config文件,然后按如下方式添加回退文件夹:

或者,您可以将显式回退文件夹添加到~/.config/NuGet/NuGet.config文件中:

<fallbackPackageFolders>
  <add key="DotNetCore2FallbackFolder" value="/usr/local/share/dotnet/sdk/NuGetFallbackFolder" />
</fallbackPackageFolders>

需要重新启动Visual Studio for Mac。还要检查文件夹是否存在

请注意,由于另一个bug,Visual Studio for Mac在还原.NET核心项目时仍将下载一些NuGet软件包

我的选择是什么?我用谷歌搜索了一会儿这个问题,但还没有找到解决办法

很明显,这个错误的原因是网络问题,然而,正如马特所说,我们无法为网络问题提供太多帮助。我想提供另一种解决方法:

由于默认情况下nuget从本地包缓存恢复包,并且您可以在荷兰的家庭服务器中成功恢复包:

您可以从家庭服务器复制这些软件包,并将它们添加到本地软件包缓存
C:\Users\username\.nuget\packages
到您在玻利维亚的计算机上


希望这有帮助。

您也可以尝试使用Nuget参数-DisableParallelProcessing禁用并行恢复多个包


请参见此处:

这很可能是一个Mono运行时错误,报告如下:


解决方法确实是通过将
/p:RestoreDisableParallel=true
属性传递给MSBuild来禁用并行还原。

您不能将本地包缓存用作.NetCore项目的源吗?i、 e.
~/.nuget/packages
(适用于非NetCore项目)本地包缓存用于.NET Core项目。但是,如果缓存中有NuGet软件包,则NuGet不需要联机—这似乎是问题的原因。谢谢。。。我必须再次检查最新的VS4M,因为我一直必须禁用默认的repo(
nuget.org
),并启用我添加的本地文件源(~/.nuget/packages),以防止在线检查和最终的超时错误(我有一个非常高的延迟网络连接,在恢复过程中会给VS4M带来很大的麻烦)(崩溃、无限挂起、无法“中止”恢复等)嗨,马特,你能投票表决同义词部分吗?