From 3791c1b050e5b2b853569b535b72447a706a9b07 Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Wed, 18 Feb 2026 11:49:05 +0100 Subject: [PATCH] CSharpLanguageServer: Make clear that pwsh is required --- docs/01-about/020_programming-languages.md | 2 +- src/solidlsp/language_servers/csharp_language_server.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/01-about/020_programming-languages.md b/docs/01-about/020_programming-languages.md index 87040308..97c7fc40 100644 --- a/docs/01-about/020_programming-languages.md +++ b/docs/01-about/020_programming-languages.md @@ -30,7 +30,7 @@ Some languages require additional installations or setup steps, as noted. * **AL** * **Bash** * **C#** - (by default, uses the Roslyn language server (language `csharp`); + (by default, uses the Roslyn language server (language `csharp`), requires `pwsh` ([PowerShell 7+](https://learn.microsoft.com/en-us/powershell/scripting/install/install-powershell-on-windows?view=powershell-7.5)) on Windows; set language to `csharp_omnisharp` to use OmiSharp instead) * **C/C++** (by default, uses the clangd language server (language `cpp`) but we also support ccls (language `cpp_ccls`); diff --git a/src/solidlsp/language_servers/csharp_language_server.py b/src/solidlsp/language_servers/csharp_language_server.py index ee33aa23..261bb283 100644 --- a/src/solidlsp/language_servers/csharp_language_server.py +++ b/src/solidlsp/language_servers/csharp_language_server.py @@ -536,6 +536,7 @@ class CSharpLanguageServer(SolidLanguageServer): ] # Run the install script + log.info("Running .NET install script: %s", cmd) result = subprocess.run(cmd, capture_output=True, text=True, check=True) log.debug(f"Install script output: {result.stdout}") @@ -550,7 +551,12 @@ class CSharpLanguageServer(SolidLanguageServer): f"Failed to install .NET {version} runtime using install script: {e.stderr if e.stderr else e}" ) from e except Exception as e: - raise SolidLSPException(f"Failed to install .NET {version} runtime: {e}") from e + message = f"Failed to install .NET {version} runtime: {e}" + if is_windows and isinstance(e, FileNotFoundError): + message += ( + "; pwsh, i.e. PowerShell 7+, is required to install .NET runtime. Make sure pwsh is available on your system." + ) + raise SolidLSPException(message) from e def _get_initialize_params(self) -> InitializeParams: """