Improve error when opening C# project on an Apple Silicon M1 machine without Rosetta
See original GitHub issueIssue Description
During the start of the OmniSharp server a call using the built-in mono command returns a Bad CPU type in executable error.
Steps to Reproduce
On a new Apple Silicon M1 machine:
- Download and install the Mac Universal version of Visual Studio Code
- Download and install the preview version of .NET 6 (6.0.100-preview.4.21255.9)
- Create a new C# console project
dotnet new console -n ConsoleApp
- Open ConsoleApp folder in Visual Studio Code
Expected Behavior
Project loads and C# language features (e.g. code completion) are available.
Actual Behavior
An error is returned in the OmniSharp log and C# features are unavailable.
Logs
OmniSharp log
OmniSharp server started. Path: /Users/miguellira/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/run PID: 10636
/Users/miguellira/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/run: line 27: /Users/miguellira/.vscode/extensions/ms-dotnettools.csharp-1.23.12/.omnisharp/1.37.10/bin/mono: Bad CPU type in executable [ERROR] Error: OmniSharp server load timed out. Use the ‘omnisharp.projectLoadTimeout’ setting to override the default delay (one minute).
C# log
Downloading package ‘OmniSharp for OSX’ (37658 KB)… Done! Validating download… Integrity Check succeeded. Installing package ‘OmniSharp for OSX’
Downloading package ‘.NET Core Debugger (macOS / x64)’ (45875 KB)… Done! Validating download… Integrity Check succeeded. Installing package ‘.NET Core Debugger (macOS / x64)’
Downloading package ‘.NET Core Debugger (macOS / arm64)’ (47834 KB)… Done! Validating download… Integrity Check succeeded. Installing package ‘.NET Core Debugger (macOS / arm64)’
Downloading package ‘Razor Language Server (macOS / x64)’ (60206 KB)… Done! Installing package ‘Razor Language Server (macOS / x64)’
Finished
[WARNING]: arm64 macOS is not officially supported by the .NET Core debugger. You may experience unexpected issues when running in this configuration.
Environment information
VSCode version: 1.57.0 C# Extension: 1.23.12
Mono Information
OmniSharp using built-in monoDotnet Information
.NET SDK (reflecting any global.json): Version: 6.0.100-preview.4.21255.9 Commit: 950e4949a7Runtime Environment: OS Name: Mac OS X OS Version: 11.4 OS Platform: Darwin RID: osx.11.0-arm64 Base Path: /usr/local/share/dotnet/sdk/6.0.100-preview.4.21255.9/
Host (useful for support): Version: 6.0.0-preview.4.21253.7 Commit: bfd6048a60
.NET SDKs installed: 6.0.100-preview.4.21255.9 [/usr/local/share/dotnet/sdk]
.NET runtimes installed: Microsoft.AspNetCore.App 6.0.0-preview.4.21253.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.0-preview.4.21253.7 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET runtimes or SDKs: https://aka.ms/dotnet-download
Visual Studio Code Extensions
Extension | Author | Version |
---|---|---|
csharp | ms-dotnettools | 1.23.12 |
Issue Analytics
- State:
- Created 2 years ago
- Comments:10 (4 by maintainers)
Top GitHub Comments
There is a native prerelease already here https://github.com/OmniSharp/omnisharp-vscode/releases/tag/v1.24.0-beta1 You need to install it and set
omnisharp.useModernNet
totrue
This is interesting, I have been using OmniSharp on an M1 mac since December without any issues. There is no ARM64 built of Omnisharp but it works fine with Rosetta. Looks like for some reason Rosetta does not kick in here.
Do you have Rosetta installed?