DotRush

JaneySpringsMIT活跃维护

给 VSCode 补上 C# 语言服务的轻量开发环境,靠语言服务器提供补全、跳转等编辑能力,不想装重型 IDE 时用它写 C# 挺省事。

Lightweight C# development environment for VSCode

2026.11发布于 2026-11-03 20:47 UTC791star +1 / 7 天36fork同步于 2026-11-10 17:55 UTC

怎么上手

由 README 提炼,执行前请确认
在 VSCode 扩展市场安装 DotRush 扩展;调试时按 F5 选择 .NET Core Debugger 配置,或在 launch.json 中写入 type 为 coreclr 的配置
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

VSCode 里的轻量 C# 开发环境,用 Roslyn 提供补全和调试,替代笨重的完整 IDE

给 VSCode 补上 C# 语言服务的轻量开发环境,靠语言服务器提供补全、跳转等编辑能力,不想装重型 IDE 时用它写 C# 挺省事。

核心能力

  • 基于 Roslyn 提供 C# 自动补全、建议与代码导航
  • 内置 .NET Core 调试器,支持 launch 与 attach 两种模式
  • 集成 dotnet-counters、dotnet-trace、dotnet-gcdump 做性能与内存分析
  • 内置 Test Explorer 运行调试 NUnit、xUnit、MSTest 测试
  • 用 ILSpy 即时反编译查看底层源码,并做多目标框架实时诊断

容易踩的坑

仅支持 C# 语言特性,不支持 Razor、XAML 等其他语言;不支持 CodeLens 功能;Trace Profiler 与 Heap Dump 依赖内置的 dotnet-trace、dotnet-gcdump 工具,需本机具备对应 .NET 工具链

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本2026.11
  1. 2026.11最新正式版2026-11-03 · 2026-11-03 20:47 UTC
    • [Security]: Fix CVE-2026-92707 (0aad052)
    • Up nodejs versions (7de004d)
    • [Fix]: Language server crashes on virtual document URIs from other extensions (#228) (d3ff62e)
    • [Revert]: Space completion does not work (#189) (#225) (28cf099)
    • update tests (de5a915)
    • [Fix]: After booting/reloading editor @ filter doesn't show symbols (#222) (ac41080)
    • Add foldingRange/refresh and inlayHint/refresh (a97e347)
  2. 2026.102026-10-04 · 2026-10-04 11:18 UTC
    查看更新说明
    • [Fix]: Doc issue - Godot config example incomplete (#220) (4b87e96)
    • [Fix]: documentSymbol drops type parameters from generic types and methods (#218) (3df85ca)
    • Update README.md (de54a69)
    • [Fix]: Snippet insertion on commit character breaks snippet, works only with Tab (#217) (4063cbe)
    • [Fix]: documentSymbol leaves out records, event fields and operators (#213) (75d72c6)
    • [Fix]: Hover markdown: missing spaces around inline code, leaked indentation, raw generic arity (#214) (eae3545)
    • [Fix]: Renaming a variable while having syntax errors provides no error message (#211) (3882db9)
    • Remove LSP submodule and rewrite communication protocol (56ecb0a)
    • Use one debugger implementation for all vscode versions (2a02d8c)
    • Add some extra refactoring providers + fix in vscode.uri resolve (fca4ad6)
    • [Fix]: Generic method completions insert empty <> (#208) (421b32e)
    • Update diagnostic tools (0981e9c)
  3. 2026.092026-09-13 · 2026-09-13 10:44 UTC
    查看更新说明
    • [Fix]: Roslyn analyzer DLLs locked by language server prevent dotnet build from copying updated outputs (#204) (b720de7)
    • Improve code analysis performance (8d9082c)
    • [Fix]: Excessive Logging in Debug Console / Logging config not respected (#203) (5c002ca)
    • Add memory view (efa9a03)
    • Add trace view (d424dd8)
    • Add Performance View (47e8020)
    • [Fix]: .slnf project paths are resolved relative to the filter instead of the referenced solution (#201) (3007f3d)
    • Debugger not working with Zed + DotRush + Unity (5979aa5)
    • [Fix]: Godot C# VSCodium Launch Command not working (#199) (ce577ae)
    • Remove MSBuildLocator (8e4c1ba)
    • Support isolated dotnet host + add localization (#195) (#171) (73dc756)
    • Add ExcludedCode semantic token (4f2d84b)
  4. 2026.082026-08-02 · 2026-08-02 19:19 UTC
    查看更新说明
    • Replace triggerCompletionOnSpace to alwaysShowCompletionList property (fbb67c4)
    • [Fix]: Allow configuring environment variables to be used when invoking msbuild/dotnet (#197) (b56f81f)
    • [Fix]: DotRush Test Explorer does not support running parameterized tests with ValueSourceAttribute (#198) (b21fbd2)
    • Improve WorkspaceFileWatcher for external file changes (d0313f6)
    • [Fix]: Don't show warning prompt to reload project when saving a project without making changes (#196) (acf1d22)
    • Improve SignatureHelpHandler (8f0e701)
    • [Fix]: Space completion does not work (#189) (6ec139a)
    • Support client options for document formatting (#150) (e7e4a18)
    • [Fix]: Indexing is always 0% (#93) (e890b9e)
    • Support documentChanges in the code actions (06bfe04)
    • [Fix]: DotRush locked source generator project's dll (#33) (a7b2cb5)
  5. 2026.072026-07-13 · 2026-07-13 18:05 UTC
    查看更新说明
    • Improve TestExplorer performance in different cases (945fbaa)
    • Update restore diagnostics after workspace reload (a7a3c8b)
    • Fix override completions with auto import (183a5a7)
    • Support snippet cursor features (cc4cc99)
    • [Fix]: TestPlatformFormatException: Incorrect format for TestCaseFilter for NUnit (d54e9c4)
    • [Fix]: Intellisense for class overrides takes a long time (#173) (4c27e88)
    • Update document diagnostics when editor active tab changed (369e25c)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    CodeQL Advanced

    Overview

    • C# IntelliSense Roslyn-based autocompletion, suggestions, and code navigation.

    • .NET Core Debugger Debug your C# applications with the built-in .NET Core Debugger.

    • .NET Core Profiler Profile your .NET Core applications with the built-in profiler tools.

    • Unity Debugger Debug your Unity projects with the integrated Mono Debugger.

    • Test Explorer Run and debug your unit tests with the integrated Test Explorer.

    • Code Decompilation Instantly decompile code with ICSharpCode Decompiler to view the underlying source.

    • Multitarget Diagnostics Real-time linting and error detection to catch issues early in all target frameworks of your project.

    Working with Projects and Solutions

     If your folder contains multiple projects or a solution file, DotRush will show the following picker for all projects and solutions in the folder. DotRush automatically saves selected projects and solutions in the workspace settings. You can open it manually by executing the DotRush: Pick Project or Solution files command:

    image

    Running and Debugging .NET Core Applications

     To run and debug your .NET Core applications, you can use the built-in .NET Core Debugger. You can start debugging by pressing F5 and select the .NET Core Debugger configuration. You can also create a launch.json file with the following content:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": ".NET Core Debugger (launch)",
                "type": "coreclr",
                "request": "launch",
                "program": "${command:dotrush.activeTargetPath}",
                "preLaunchTask": "dotrush: Build"
            },
            {
                "name": ".NET Core Debugger (attach)",
                "type": "coreclr",
                "request": "attach",
                "processId": "${command:dotrush.pickProcess}"
            }
        ]
    }
    

     You can change the startup project by clicking on it and executing the Set as Startup Project command from the context menu. You can also change the debugger options in the VSCode settings.

    image

    Profiling .NET Core Applications

     DotRush provides three profiling tools for your .NET Core applications: the realtime Performance View, the Trace Profiler and the Memory Dump. The Performance View starts automatically together with the .NET Core Debugger. The Trace Profiler and the Memory Dump can be attached to any running process by executing the DotRush: Attach Trace Profiler or DotRush: Create Heap Dump commands. Also you can use the extra buttons, located in the debugger toolbar, if you have the .NET Core Debugger running.

    Performance View

     When the .NET Core Debugger is connected to your application, the Performance view appears in the Run and Debug side bar. It uses the built-in dotnet-counters tool and shows two realtime charts of the debugged process: the CPU usage with the Time in GC, and the Working Set with the GC Heap size:

    image

    Trace Profiler

     To find out where your application spends its time and what it allocates, execute the DotRush: Attach Trace Profiler command. It runs the built-in dotnet-trace tool in the terminal. Press Enter in the terminal to stop the collection and open the generated *.nettrace.json file from the explorer. It is displayed in the built-in speedscope viewer. Use the profile selector at the top to switch between the profiles:

    • CPU (all threads) shows where the managed code of the whole application spends CPU time.
    • Allocations is weighted in bytes and shows the allocated types with the call stacks that allocate them (a sampled estimate, about one sample per 100 KB).
    • Thread profiles show the wall clock timeline of every thread including the time it is blocked.

    image

    Memory Dump

     To inspect the managed heap of your application, execute the DotRush: Create Heap Dump command. It runs the built-in dotnet-gcdump tool and takes a snapshot of all live objects. Open the generated *.gcdump.json file from the explorer. It is displayed in the built-in memory viewer. Use the tabs at the top to switch between the views:

    • Summary shows the heap types with their instance count, shallow size and retained size. Expand a type to see its instances.
    • Dominators shows the dominator tree: each object is placed under the single object that keeps it alive, biggest retained size first.
    • GC Roots shows the static fields, thread stacks and handles, followed along their references.
    • Graph shows the retention graph of the selected object: its retainers toward the GC roots above and its references below.
    • Leak Suspects shows the detected leak patterns, most severe first (objects kept alive only by delegates, event handlers with many subscribers, static fields holding the most memory and others).
    • Compare shows the difference of the types against a second snapshot of the same process.

    image

    Running and Debugging NUnit / xUnit / MSTest Tests

     To run and debug your VSTest tests, you can use the integrated Test Explorer in VSCode. Run test by clicking on the run button next to the test or debug it by right-clicking on the run button and selecting the Debug Test option in the context menu.

    image

    Debugging Unity Projects

     To debug your Unity project, you can use the integrated Mono Debugger. Open the Unity project in VSCode (for example, by opening it from the Unity Editor) and start debugging by pressing F5 and select the Unity Debugger configuration. You can also create a launch.json file with the following content:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Unity Debugger",
                "type": "unity",
                // Attach to Android device
                // "transportArgs": {
                //     "type": "android"
                // },
                "request": "attach"
            }
        ]
    }
    

     You can change the debugger options in the VSCode settings.

    image

    Debugging Godot Projects

     To debug your Godot project, open it in VSCode and create a launch.json file with the following content (adjust the program to the location of your Godot Engine executable):

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": ".NET Core Debugger (launch)",
                "type": "coreclr",
                "request": "launch",
                "program": "C:\\Programs\\Godot\\Godot_v4.4.1-stable_mono_win64.exe",
                "cwd": "${workspaceFolder}",
                "preLaunchTask": "dotrush: Build"
            }
        ]
    }
    

     Press F5 to start debugging. It will launch the Godot Engine and attach the debugger to it:

    image

    Limitations

     DotRush currently supports only C# language features and does not support Razor, XAML, or other languages. Also it does not support the following language features:

    • CodeLens DotRush does not support CodeLens features such as references, tests, and other CodeLens features.

    Alternative Editors

    You can also use DotRush with other editors. See the following repository files for more information.