Describe the Bug
I have a DevContainer that I just rebuilt today. Since then, the anysphere.csharp extension does not work anymore because the language server cannot be started:
In the C# extension output I get
2025-07-17 09:13:36.214 [info] Locating .NET runtime version 9.0.1
2025-07-17 09:13:36.339 [info] Did not find .NET 9.0.1 on path, falling back to acquire runtime via ms-dotnettools.vscode-dotnet-runtime
2025-07-17 09:13:48.407 [info] Dotnet path: /home/vscode/.cursor-server/data/User/globalStorage/ms-dotnettools.vscode-dotnet-runtime/.dotnet/9.0.7~arm64/dotnet
2025-07-17 09:13:48.407 [info] Activating C# standalone...
2025-07-17 09:13:48.692 [info] Language server process exited with null
and later
2025-07-17 09:19:41.847 [info] [Error - 9:19:41 AM] Microsoft.CodeAnalysis.LanguageServer client: couldn't create connection to server.
2025-07-17 09:19:41.847 [info] Error: Timeout. Client cound not connect to server via named pipe
at r.startServer (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:1227:20943)
at async l (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:1227:13266)
at async l4.createConnection (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:86:11885)
at async l4.start (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:86:1864)
at async r.initializeAsync (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:1227:13779)
at async YHe (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:1227:27057)
In the .NET Install Tool extension output, I see:
ms-dotnettools.csharp: Trying to install .NET 9.0.7~arm64 but it already exists. No downloads or changes were made.
ms-dotnettools.csharp: Trying to install .NET 9.0.7~arm64 but it already exists. No downloads or changes were made.
There also is a runtime in /home/vscode/.cursor-server/data/User/globalStorage/ms-dotnettools.vscode-dotnet-runtime/.dotnet/9.0.7~arm64/
which has been downloaded.
The DevContainer itself is based on the .NET 8 DevContainer image from Microsoft.
It is really annoying that all of a sudde stuff that worked just stop from working. Cursor is cool tool and I thought I finally had a good setup for my day-to-day work, but now this.
Steps to Reproduce
Here is a minimum example code base to reproduce the problem. Open this in a DevContainer in Cursor you’ll get the problem that the language server does not start up:
./.config/dotnet-tools.json:
{
"version": 1,
"isRoot": true,
"tools": {
"csharpier": {
"version": "1.0.3",
"commands": [
"csharpier"
],
"rollForward": false
}
}
}
./.devcontainer/devcontainer.json:
{
"name": "C# (.NET 8)",
"image": "mcr.microsoft.com/devcontainers/dotnet:1-8.0",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},
// Configure tool-specific properties.
"customizations": {
"vscode": {
"extensions": [
"ms-dotnettools.vscode-dotnet-runtime",
"anysphere.csharp",
"csharpier.csharpier-vscode",
"patcx.vscode-nuget-gallery",
"fernandoescolar.vscode-solution-explorer"
]
}
},
"containerEnv": {
"REMOTE_CONTAINERS": "true"
},
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "dotnet --version",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
}
./Foo/Class1.cs:
namespace Foo;
public class Class1 { }
public class Class2
{
public Class1 class1;
}
./Foo/Foo.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
./cs-problems.sln:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Foo", "Foo\Foo.csproj", "{0977E7F1-DB64-473F-BDDA-793F9E12AC5D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0977E7F1-DB64-473F-BDDA-793F9E12AC5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0977E7F1-DB64-473F-BDDA-793F9E12AC5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0977E7F1-DB64-473F-BDDA-793F9E12AC5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0977E7F1-DB64-473F-BDDA-793F9E12AC5D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
Expected Behavior
It should start the language server
Operating System
MacOS
Current Cursor Version (Menu → About Cursor → Copy)
Version: 1.2.4
VSCode Version: 1.99.3
Commit: a8e95743c5268be73767c46944a71f4465d05c90
Date: 2025-07-10T16:53:59.659Z
Electron: 34.5.1
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Darwin arm64 24.5.0
Does this stop you from using Cursor
Yes - Cursor is unusable