Skip to content

Offline Installation

If your network environment blocks access to GitHub (e.g., corporate firewall restrictions), you can manually download and install the Language Server component required by C# Dev Tools.

C# Dev Tools automatically downloads its Language Server component from GitHub on first activation. If this download fails due to network restrictions, you’ll need to install it manually.

Download the appropriate zip file for your platform from the GitHub Releases page:

PlatformArchitectureDownload File
Windowsx64csharp-dev-tools-lsp-win-x64.zip
WindowsARM64csharp-dev-tools-lsp-win-arm64.zip
Linuxx64csharp-dev-tools-lsp-linux-x64.zip
LinuxARM64csharp-dev-tools-lsp-linux-arm64.zip
macOSIntel (x64)csharp-dev-tools-lsp-osx-x64.zip
macOSApple Silicon (ARM64)csharp-dev-tools-lsp-osx-arm64.zip

The easiest way to find the correct folder — regardless of whether you’re using VS Code, VS Code Insiders, Cursor, or any other fork:

  1. Open the Extensions view (Ctrl+Shift+X / Cmd+Shift+X)
  2. Search for C# Dev Tools and click on it to open the extension details
  3. In the right-hand Installation panel, click the Cache size link (e.g. 460.87MB) — this opens the extension’s cache folder in your file explorer

Click the Cache link in the Installation panel

  1. Inside that folder, create a new subfolder named lsp — this is where you will extract the downloaded files
  1. Create the lsp folder if it doesn’t exist
  2. Extract the contents of the downloaded zip file into the lsp folder
  3. After extraction, your folder structure should look like this:
lsp/
├── LanguageServer/
│ ├── CsharpDevTools.exe (or CsharpDevTools on Linux/macOS)
│ └── ... (other files)
├── DebuggerMono/
│ └── ... (debugger files)
├── NotebookHost/
│ └── ... (notebook host files)
└── version.txt

Create a version.txt file in the lsp folder containing the version number you downloaded (e.g., 1.4.1):

Terminal window
echo "1.4.1" > "$env:APPDATA\Code\User\globalStorage\jakubkozera.csharp-dev-tools\lsp\version.txt"
Terminal window
echo "1.4.1" > ~/Library/Application\ Support/Code/User/globalStorage/jakubkozera.csharp-dev-tools/lsp/version.txt

Step 5: Set Executable Permissions (Linux/macOS only)

Section titled “Step 5: Set Executable Permissions (Linux/macOS only)”

On Linux and macOS, you need to make the server binaries executable:

Terminal window
chmod +x ~/Library/Application\ Support/Code/User/globalStorage/jakubkozera.csharp-dev-tools/lsp/LanguageServer/CsharpDevTools
chmod +x ~/Library/Application\ Support/Code/User/globalStorage/jakubkozera.csharp-dev-tools/lsp/DebuggerMono/monodbg

Adjust the path for Linux:

Terminal window
chmod +x ~/.config/Code/User/globalStorage/jakubkozera.csharp-dev-tools/lsp/LanguageServer/CsharpDevTools
chmod +x ~/.config/Code/User/globalStorage/jakubkozera.csharp-dev-tools/lsp/DebuggerMono/monodbg

Restart VS Code completely (close all windows) to ensure the extension picks up the manually installed Language Server.

After restarting VS Code:

  1. Open a folder containing a C# solution
  2. Open the Output panel (Ctrl+Shift+U / Cmd+Shift+U)
  3. Select “C# Dev Tools” from the dropdown
  4. You should see messages indicating the Language Server is starting

When updating the extension, you may need to repeat this process if the required Language Server version changes. The extension will attempt to download the new version automatically, but if that fails, download the matching version from GitHub and repeat the extraction steps.

If the extension still attempts to download after manual installation:

  1. Verify the version.txt file exists and contains the correct version
  2. Check that the folder structure matches the expected layout
  3. Ensure file permissions allow VS Code to read the files

On Linux/macOS, ensure the binary files are executable (see Step 5).

If you see errors about invalid executables, verify you downloaded the correct platform/architecture combination for your system.


For additional help, open an issue on GitHub.