Announcing C# Dev Kit for Visual Studio Code

Tim Heuer

We are thrilled to announce the preview release of C# Dev Kit, a new Visual Studio Code extension that brings an improved editor-first C# development experience to Linux, macOS, and Windows.

The C# Dev Kit is designed to enhance your C# productivity when you’re working in VS Code. It works together with the C# extension, which has been updated to be powered by a new fully open-source Language Server Protocol (LSP) host, creating a performant, extensible, and flexible tooling environment that easily integrates new experiences into C# for VS Code. The source repo for this extension is in the process of being migrated and will be available later this week.

Try out C# Dev Kit for your C# web and cloud-native projects and share your feedback today!

Three dimensional rendering of the listing of the C# Dev Kit in the Extension view of Visual Studio Code

What is C# Dev Kit?

C# Dev Kit borrows some familiar concepts from Visual Studio to bring a more productive and reliable C# experience to VS Code. This ensures a great experience whether you are quickly editing a C# file, learning C#, or debugging a backend API. The C# Dev Kit consists of a set of VS Code extensions that work together to provide a rich C# editing experience, AI-powered development, solution management, and integrated testing. As shown in the graphic below, C# Dev Kit consists of:

  • The C# extension, which provides base language services support and continues to be maintained independent of this effort.
  • C# Dev Kit extension, which builds from the foundations of Visual Studio to provide solution management, templates, and test discovery/debugging.
  • The IntelliCode for C# Dev Kit extension (optional), which brings AI-powered development to the editor.

Diagram showing the composition of the C# Dev Kit to include the C# extension and IntelliCode as separate extensions

Manage your projects with a new solution view

Customers often praise the power of project management with C#, so like Visual Studio, C# Dev Kit adds a new Solution Explorer view that works alongside the VS Code existing workspace view. This addition provides a curated and structured view of your application for effortless, central project management. This lets you quickly add new projects or files via templates to your solutions and easily build all or part of your solution.

Animation of the new project experience in the C# Dev Kit

Test your projects with expanded Test Explorer capabilities

With C# Dev Kit, your tests in XUnit, NUnit, MSTest, and bUnit will be discovered and organized for you more easily for fast execution and results navigation. The extension will discover and surface your tests in the Test Explorer pane just like for your other languages. It can also be run via the command palette.

Animation of the testing experience with the C# Dev Kit

Experience improved performance and reliability

C# Dev Kit is powered by the recently updated open-source C# extension, now powered by a Language Server Protocol (LSP) Host, also open source. The C# extension is built on the incredible foundation started with OmniSharp by the amazing OSS community. Both extensions integrate with components like Roslyn and Razor to deliver superb performance for tools such as IntelliSense, definition and symbol navigation, syntax highlighting, refactoring, and code formatting.

Previous Time to IntelliSense New Time to IntelliSense Percentage Improvement
38 seconds 3.5 seconds 91%

Benchmarked using a 2GB sized solution with 40 projects and 500,000 lines of source code.

In addition to the performance and reliability gains provided by the updated C# extension, C# Dev Kit lets you enjoy these same performance improvements with the solution, debugging, and testing features.

Write your project faster with AI-powered C# development

Auto-installing as part of C# Dev Kit, the IntelliCode for C# Dev Kit extension enhances the AI-assisted support beyond the basic IntelliSense code-completion found in the existing C# extension. It brings powerful IntelliCode features, such as whole-line completions and starred suggestions, putting what you’re most likely to use at the top of your IntelliSense completion list to your C# projects, all based on your own personal codebase.

Screenshot showing IntelliCode with IntelliSense listing the starred completions provided by AI

Develop C# apps from anywhere

It’s never been easier to create modern .NET applications while working on your favorite operating system. As a VS Code extension, C# Dev Kit lets you work on C# projects with Linux, macOS, Windows, and even a dev container. You can also enjoy these same capabilities in a cloud-based developer environment like GitHub Codespaces!

Getting started with C# Dev Kit

C# Dev Kit makes it easy for developers of all experience levels to set up a C# environment in VS Code. Install the C# Dev Kit extension and follow the step-by-step VS Code walkthrough to configure your workspace. Today, C# Dev Kit lets you create and work with web apps, console apps, class library projects, and testing projects.

Screenshot of the Getting Started welcome walkthrough of the C# Dev Kit extension

If you currently use the VS Code C# extension (powered by OmniSharp), installing C# Dev Kit extension will upgrade C# extension to the latest pre-release version compatible with C# Dev Kit. Check out the Getting Started documentation to learn more.

Given C# Dev Kit builds on the same foundations as Visual Studio for some of its functionality, it uses the same license model as Visual Studio. This means it’s free for individuals, as well as academia and open-source development, the same terms that apply to Visual Studio Community. For organizations, the C# Dev Kit is included with Visual Studio Professional and Enterprise subscriptions, as well as GitHub Codespaces. For additional details see the license terms.

Share your feedback on C# Dev Kit!

C# Dev Kit was developed based on feedback we’ve received from VS Code users regarding their C# development process. As we regularly update C# Dev Kit and its features, we encourage you to provide feedback so we can continuously improve and deliver the best possible experience for everyone.

Please share your feedback on any of these upcoming updates, report issues, or propose and feature suggestions through VS Code’s Help > Report Issue. Select whether it is a bug, feature request, or performance issue on “An Extension” and select C# Dev Kit from the list of extensions,

Screenshot of the Issue Reporter experience in Visual Studio Code

To learn more about how to get the most out of C# Dev Kit, explore our updated C# VS Code documentation and Get Started docs. Try out the new C# environment with C# Dev Kit today!

More about the Visual Studio product family

Visual Studio continues to be our premier C# development tool, supporting the full range of .NET workloads and project types. C# Dev Kit is an exciting step for us to bring .NET development productivity to other parts of the Visual Studio product family. For more information on the latest features added to Visual Studio, check out the Visual Studio 17.6 release announcement.


Discussion is closed. Login to edit/delete existing comments.

  • Rand Random 0

    Does this enable creating solutions from scratch as well, or does it still require an initial dotnet new console and open folder?

    Been a while since I last checked VS Code out, but that has been bugging me everytime to create a new solution.

    • Tim HeuerMicrosoft employee 4

      If you have no folder open (blank workspace) you’ll see the ability to create a project from there. I can’t paste a picture here in the comments but there is a button on a workspace with no folder open that says “Create .NET Project” that will launch the template picker with additional questions of where to create it.

      • Rand Random 0

        Thanks, though it doesn’t seem to show the steps to create a solution.

      • Rand Random 0

        Installed the c# dev kit and gave it a test run.
        One thing I noticed is that VS Code didn’t prompt me that my newly created solution is missing settings for it to run.
        eg. .vscode\launch.json

        If I remember correctly, there was a notification bubble prompting me do add those things.
        After I manually clicked Run –> Add Configuration, I was able to debug the solution.

        and maybe it is just me, it took me more time than I want to admit to actually find the “solution explorer” as I simply thought those features are part of the “explorer” and not a new item in the left pane, and with the collapsing/expaning of the left pane I didn’t notice it sticking at the very bottom of list, so first thing I did after finally finding it was moving it to the very top.

        • Tim HeuerMicrosoft employee 1

          Thanks for the feedback. The launch.json/task.json is still supported but as you note you may not get the prompt. With C# Dev Kit we wanted to create an experience of “clone and go” with no *required* additional assets. The experience is a starting point now (some rapid updates coming). If you navigate to the Run and Debug area you’ll see the ability there to create the launch/task if desired as well.

  • Florian Wachs 4

    A huge THANK YOU to the team for this.

  • Олег Нечитайло 3

    Licensing isn’t really clear in this article or on the C# Dev Kit extension page.

    From VS Code extension page it looks like extension is completely free, when it’s not.

  • neon-sunset 1

    It appears it breaks semantic highlighting (and its settings). It also does not seem to solve pre-existing OmniSharp stability issues or generally known rough edges (like having to force restart it every time project dependencies change, it does not auto-build project either).

    • Tim HeuerMicrosoft employee 2

      Please make sure you are using the pre-release version of the C# extension (should have got a prompt that is needed). If you are still seeing those issues identified, please log issues!

  • Patrick Lioi 0

    Does the test runner make use of the same VSTest “Test Adapters” that test frameworks provide for present day Visual Studio Test Explorer integration and present day `dotnet test` integration, or is the support for the named test frameworks specific to those frameworks?

    • Tim HeuerMicrosoft employee 2

      Yes it should — I think there might be some nuances in how an adapter was written but please try it out (we listed the most popular) and log issues so we can discuss.

  • Karen Payne 0

    When opening a workspace without projects that has snippets of C# code and JavaScript, HTML etc. (yeah this is not normal) there are tons of errors reported. There are no .csproj or .sln files in the workspace. No big deal, when opening a folder with a valid project file all works fine.

    • Tim HeuerMicrosoft employee 1

      Thanks Karen — I think you logged an issue but please use the issue reporter tool in VS Code to give us the bugs!

  • Daryl Graves 1

    This is great but what measures can an IT Department put in place to prevent people without a valid Visual Studio License from installing these extensions?

  • Gordon Rappange 3

    Maybe it’s good to know thats only for new sdk style projects, not for .net framework projects.

  • henry-js 1

    Will the C# extension itself remain free to use?

    • Tim HeuerMicrosoft employee 2

      Yes the base language extension will remain open source and a less restrictive license. The terms for that (the Base language C# extension) do not change.

  • Amadeusz Sadowski 5

    I’m really excited and happy, as I love VS Code.

    But then I read that a very basic feature – code-native Test Explorer – is a licensed/paid feature? It’s such a basic thing. My enthusiasm is gone just by that tidbit. And Solution Explorer too, behind a license? I understand paying for IntelliCode, any Performance tools when they come, stuff like that, but for Test and Solution Explorers, it really feels like a cashgrab. First you take Omnisharp/vscode-csharp-ext, and then instead of adding features to it as a token of gratitude to the community, you hide the most basic stuff behind license-wall. I can’t grasp that. Is there a chance for you to reconsider?

    • John King 1
      same company, different licence on diferent lanague, they try to close source not just once on dotnet

      I now know what is being called “managed” language.
      After all there are much larger community on Spring than AspNetCore, zipkin,kafka,nacos and many more is base on that. I’m switching to java and learnning GoLang and Rust.

      • László Szőke 1

        I switched to Rider two years ago, and it turned out to be a damn good decision.
        And I’m not licensing just Rider, but the whole arsenal, the All Products Pack, because it’s worth it. It’s not expensive, and working with JetBrains tools is much more efficient and enjoyable.
        If I were a Java developer, I would obviously use IntelliJ IDEA because it’s the best IDE. And as a .NET developer, I want to use IntelliJ IDEA too… which is exactly what Rider is, combining IntelliJ IDEA and ReSharper seamlessly.

    • Jorge Morales Vidal 0

      If you use Visual Studio 2022 Community, you’re free to use it.

  • John B 2

    Once Unity switches to the new project format I hope that’s an easy integration. A lighter weight debugging option would be very popular (not to mention cross platform).

  • Roman Mikhailov 1

    Hey guys! You’ve just broke one of the most important vscode C# features – MS Build Load Projects On Demand. With the old C# extension it was possible to have like 50+ different slns in the same workspace, navigate between them with fully working intellisense an so on, now to get the intellisense working I have to load each sln manually and it can handle only one sln at the moment, If I want to work with multiple slns in the workspace I have to switch them manually. What if I have big set of BE services living in different repos with different slns ? e.g. I have like 50 or 70 of them ? Before this update VS Code was the only IDE who was able to handle this this case, and with the current update this functionality is broken. Now it doesn’t make sense to use the vscode at all becuase anyway full weight VS or Rider is far better when handling single sln

    • Tim HeuerMicrosoft employee 0

      Roman — can you please log the issue here on the repo — would be good to discuss and identify the issues here.

  • Siddhartha Das 1

    Can u enlighten me on how this new system will help, facilitate or assist me to migrate a C# engineering program developed on VStudio from PC to cloud?

    • Tim HeuerMicrosoft employee 0

      There are many tools both within Visual Studio and VS Code that help you get your code to cloud. Unlike Visual Studio, which has integrated experiences in Connected Services and the Publish workflows to get you directly to cloud locations like Azure, VS Code relies on a series of extensions. The Azure extension bundles a set of these together to help you get from code to cloud using things like `azd` or direct push to Azure App Services, etc. If Azure is not your cloud, I’d look for extensions provided by others to help you.

      If your question is more about your C# project itself — meaning helping you write cloud-ready applications, if you are using the latest .NET version (7) and APIs, you are already setup to very easily have your app/services be hosted in containers and on Azure or any place where containers are supported. Great documentation exists on on how to enable container support in your project.

  • Richard Willis 1

    I’ve been using it for a couple days now and it’s a great improvement, much faster. Thank you for improving the experience!

  • Andrew Witte 0

    Doesn’t work.
    I open an existing folder containing an existing .sln file created with VS, VS for mac or Rider and VS-Code doesn’t understand it.
    Also why can’t I just open a .sln file directly in VS-Code?

    On top of this. Someone already made a correctly working method that can just open a .sln file directly.

    The reason you need this is if you have two .sln files in the same folder for example and just want to support the same way of doing things literally every other C# IDE can.

    I’m baffled at the endless bad choices being made around C# IDEs from MS. Its almost beyond comprehension at this point. Like who is leading these project choices? Fire them!

    • Tim HeuerMicrosoft employee 0

      Andrew — would you be willing to share the SLN file that is not working…we’d be happy to get a look at it. If needed you can privately send me some additional info (timheuer @ microsoft)

  • HJ R 1

    For devs working on Linux this is kind of good news. But I don’t know how many Linux devs use .NET / C#. For Windows users: use VS Community / VS Professional – no need to reimplement its features in VS Code. For Mac: VS for Mac needs some polishing. But for VS Code to catch up it is a long way. Overall, I don’t think that spending all that effort on this extension is a good choice. There are a ton of issues to fix / improvements to make on VS : hot reload, performance, debugging Blazor, …
    I dont think that enough devs working on Linux will start using .NET / C# due to availability of this extension.

    • Tim HeuerMicrosoft employee 0

      Hi there — we will continue to make improvements to VS in the areas you mention. And yes, Visual Studio on Windows continues to be the best/complete solution for .NET/C# developers.

  • Samet Şentürk 0

    Is there a plan for “C++ Dev Kit”?

  • Bernhard Richter 0

    You just could not leave it alone, could you Microsoft. For almost a decade, the C# development experience in code has been open source and free to use. So instead of supporting Omnisharp, you’ll go ahead and try to monetize on this too. For what? A small group of developers that chose not to use Visual studio? You claim to embrace open source, but sadly I guess this goes to show that Microsoft is only about the money. Speaking of the extension, you’ve completely missed the point here. People that has moved from Visual studio to code don’t want fancy context menu’s. They want the simplicity that code offers. The middle ground. But I’ll give you this, Microsoft. You had me going there for a while, but I will never trust you again

    • Jim Moody 1

      oh brother. I don’t think you could have been more dramatic if you tried.

  • Jeff Jones 0

    Why not just use the real Visual Studio instead of VS Code? VS Code is only slightly more advanced in terms of development productivity than the1980s QuickBasic IDE.

    The real Visual Studio has options to run your app in debug mode in Linux, if you fancy such things.

    I have yet to see a use case for VS Code for C# that provides more value than using the real Visual Studio on Windows.

    • Jim Moody 1

      “on Windows”.
      That’s the key right there.

    • Tim HeuerMicrosoft employee 1

      Jeff — I love that you point out how valuable Visual Studio is as a full-featured IDE. We agree! And yes, the remote capabilities for debugging using WSL/containers is super convenient for that Linux validation in your workflow as well. As long as you feel productive in Visual Studio on Windows, please keep using it!!! We’re continuing to improve all around the shell and .NET and C++ experiences each release. This improvement is for those who are choosing to be in VS Code for polyglot reasons, or aren’t on Windows.

  • Vladimir Chirikov 1

    The most important feature of Rider is still missing, please consider to add `navigate` in decompiled sources (inside ILSpy decompiled code), find usages in decompiled and so on. This is a real game changer for coding.

    • Tim HeuerMicrosoft employee 0

      Can you please add a suggestion to the repo?

  • Oleksiy Moroz 1

    Installed C# Dev Kit but have “Project system initialization finished. 0 project(s) are loaded, and 1 failed to load.” on my last project on .net 7 and on a newly created empty webapi app, the same issue

  • Udayan R 1

    Thank you to the team for this.

  • morrigan ship 0

    its not free to use
    it say i should have visual studio subscription

    • Tim HeuerMicrosoft employee 0

      Hi there! Depending on your usage, it is ‘free’ — individuals and similarly can use it just like you would Visual Studio Community edition. If you classify as an enterprise, then you will need a valid subscription or other entitlement. These are called out in the license So if you are an individual on personal projects, OSS, or education, you are covered under the community/individual licensing.

Feedback usabilla icon