.net Omnisharp vscode -未处理的异常,系统错误图像格式异常:未能加载文件或程序集

ix0qys7i  于 2022-12-20  发布在  .NET
关注(0)|答案(6)|浏览(222)

我一直很难在我的m1 mac上运行一个现有的dotnet 6应用程序的dotnet命令,我下载了arm 64版本的dotnet SDK 6.0.401,这似乎使情况变得更糟,当我在vs代码中打开项目时,它就导致了这个错误:
于2022年9月25日下午4:57:13启动OmniSharp服务器目标:/Users/benjamin/dev/vepo_back_end/Vepo.sln
OmniSharp服务器已使用.NET 6.0.401启动。路径:/用户/本杰明/. vscode/扩展名/ms-网络工具包. csharp-1.25.0-达尔文-手臂64/. omnisharp/1.39.0-网络6.0/59074
未处理的异常。系统错误图像格式异常:未能加载文件或程序集“/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/xbox_vs/vs
文件名:“/用户/本杰明/. vscode/扩展名/ms-网络工具。
我已经重新下载了x86版本,并在vscode扩展中重新安装了C#,但仍然出现同样的错误。我该怎么办?
更新:我现在已经成功地运行了dotnet命令,甚至运行了应用程序。不过,当我打开vs代码时,我仍然有同样的错误信息,所以我仍然有这个问题,但它并没有阻止我做任何事情。

mf98qq94

mf98qq941#

您是否会意外地将设置omnisharp.useModernNet设置为false,或者在任何omnisharp.设置中包含monopathsdk
如果是这样的话,试着把它们全部删除,也可以把omnisharp.useModernNet显式地设置为true(应该是默认值)。
如果失败,请尝试:

  • 拆卸和重新安装延伸导线
  • 设置"omnisharp.path": "latest"
vbopmzt1

vbopmzt12#

我遇到了同样的问题,我从微软软件包安装了.NET 6. 0. 401,但问题仍然发生。
原来VSCode使用的是之前安装的x64版本,而不是arm64 one。安装程序似乎没有重新定位我的dotnet命令。我重新创建了dotnet链接来纠正arm64 one,错误消失了。

s2j5cfk0

s2j5cfk03#

在我的例子中,只需将C# vscode扩展恢复到版本1.24.4就可以修复它。
实际上,这个版本的问题只存在于在m1 mac上安装了x64.net sdk的人身上。恢复C# vscode扩展,或者下载arm64.net sdk应该可以工作(我恢复了C# vscode扩展)。

mxg2im7a

mxg2im7a4#

我也遇到过类似的问题。我希望这个解决方案能起作用。
我的解决办法是
扩展-〉设置(滚轮符号)-〉安装另一个版本... -〉1.24.4
基本上,我降级了C#扩展的版本。

siotufzp

siotufzp5#

我在我的M1 Mac上使用dotnet 6.0.x SDK和VSCode时遇到了同样的错误。VSCode无法运行C#调试器,并出现了同样的错误。我检查了文件〉关于VSCode菜单项,并运行了x64版本的VSCode。我卸载了VSCode,然后使用通用安装程序重新安装,现在它显示通用安装。这为我解决了错误。

zpqajqem

zpqajqem6#

在Windows上,我也遇到了dotnet x86和x64不兼容的问题。我安装了32位vscode,它安装ms-dotnettools.csharp-1.25.2-win32-ia32,它下载x86版本的Omnisharp。但是我的路径上C:\Program Files\dotnetC:\Program Files (x86)\dotnet之前,所以当vscode扩展运行dotnet时,找到了x64版本,但失败了。
修复方法是将C:\Program Files (x86)\dotnet移动到我的PATH中的x64 dotnet之前,无论是临时在命令行中,还是在系统环境变量中。

相关问题