-
Notifications
You must be signed in to change notification settings - Fork 676
C# Extension support for new Linux Distros with .NET Core
Linux distribution support is a little tricky for the C# extension as both OmniSharp (the language service) and the debugger need a version of .NET Core to run on top of, and both projects include their own copy of .NET Core for this.
There are four buckets that various Linux distros might fall into --
###1: .NET Core officially supports the distro In this case the C# extension team should be able to produce a new version of the C# extension fairly soon after the .NET Core team publishes nuget packages which the C# extension can download.
###2: .NET Core and clrdbg from another distro are binary compatible
In this case it is just a matter of tweaking this switch statement which parses the output from cat /etc/os-release
. While we cannot commit to testing on these unofficial distros we are happy to accept a PR to enable the distro, and if there are minor bugs in the debugger we are happy to try and fix them as well.
###3: The community has produced a .NET Core install script, and the public clrdbg can run For these distributions, the debugger installer class can be run as a gulp task. So it might be possible for the community to provide an install script which will find the current installed C# extension, use gulp to have the debugger and OmniSharp download the version of the extension from some other Linux distro, and then patch the CoreCLR/FX which they are running on. The C# extension team is happy to accept tweaks to the install code to make this easier.
###4: New clrdbg is needed Clrdbg is the cross-platform .NET Core debugger backend. It is based on the same debugger as Visual Studio, and so is a closed-sound product. Distributions where the current public version of clrdbg cannot run are difficult to deal with. In general, we would need official support from the .NET Core team in these cases. Though feel free to open an issue to discuss the problem.
Configuration
- Configuring Snap installs of dotnet-sdk
- Configuring Arch Linux for Unity development
- Configuring Arch Linux for Razor development
- Installing the .NET Core Debugger on Arch Linux
Debugger
- Overview
- launch.json Help
- Feature List
- Enable Logging
- Portable PDBs
- Troubleshoot Breakpoints
- Attaching to remote processes
- Remote Debugging On Linux-Arm
- Windows Subsystem for Linux
- Diagnosting 'Debug adapter process has terminated unexpectedly'
- Testing libicu compatibility on Linux
- Debugging into the .NET Runtime itself
- Debugging x64 processes on an arm64 computer
Documentation
- Change Log
- Branches and Releases
- Installing Beta Releases
- Installing without internet connectivity
- Linux Support
- Run/Debug Unit Tests
- Troubleshooting: 'The .NET Core SDK cannot be located.' errors
Developer Guide