A VSCode extension that can run and debug .NET apps (based on Clancey VSCode.Comet)
MIT License
The .NET Meteor allows you to build, debug .NET
apps and deploy them to devices or emulators.
Cross-Platform
You can use this extension in the Windows
, MacOS
, and Linux
operation systems.
XAML IntelliSense
The extension provides you with a basic XAML
syntax highlighting and shows snippets for .NET MAUI / third-party controls (it's necessary to build your project first).
XAML Hot Reload Meteor support XAML Hot Reload for any platform. See the instruction below to enable Hot Reload in your project.
Performance and Memory Profiling You can profile your application to find performance bottlenecks and undisposed objects that persist in the memory.
MAUI Blazor Support
The extension allows you to build and debug MAUI Blazor
apps (including the .razor
files).
Multiple Folders in a Workspace You can use muliple folders in your workspace and change the current running project.
F# support
Your can build and debug projects, written in the F#
language.
Run and Debug
VSCode tab and click the create a launch.json file
..NET Meteor Debugger
.F5
to debug the application or ctrl + F5
to launch the application without debugging..csproj
file of your project and add the following package reference:<ItemGroup>
<PackageReference Include="DotNetMeteor.HotReload.Plugin" Version="3.*"/>
</ItemGroup>
MauiProgram.cs
:using DotNet.Meteor.HotReload.Plugin;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
#if DEBUG
.EnableHotReload()
#endif
...
return builder.Build();
}
}
Run and Debug
VSCode tab and click the create a launch.json file
..NET Meteor Debugger
.trace
or gcdump
) in the generated configuration. For example:{
"name": ".NET Meteor Profiler",
"type": "dotnet-meteor.debugger",
"request": "launch",
"profilerMode": "trace",
"preLaunchTask": "dotnet-meteor: Build"
}
ctrl + F5
to launch the application without debugging.gcdump
mode, type a /dump
command in the Debug Console
to capture the report. You will see the message:Writing gcdump to '/Users/You/.../Project/MauiProf.gcdump'...
command handled by DotNet.Meteor.Debug.GCDumpLaunchAgent
Finished writing 2759872 bytes.
trace
mode, click Stop Debugging
in the VSCode to stop the profiling. Don't close the application manually, because this may damage the report. After completion, you will see the message:Trace completed.
Writing: /Users/You/.../Project/MauiProf.speedscope.json
Conversion complete
speedscope.json
report in the root folder of your project. You can use the Speedscope in VSCode extension to view it. Alternatively, you can upload it directly to the speedscope site. For the gcdump
report, you can use the dotnet-heapview or Visual Studio for Windows.The profiler can capture and analyze functions executed within the Mono runtime. To profile native code, you can leverage platform-specific tools, such as Android Studio and Xcode.
.NET Meteor uses the .NET Diagnostics
tools to profile applications. The process of profiling consists of two stages:
dsrouter
creates a connection between the application and the profiler.dotnet-trace
or dotnet-gcdump
captures the data.If you encounter any issues, please check the following:
VSCode Debug Console tab should display a message about the successful connection. If you see the Router stopped
message or something similar, the connection is not established. You can try to change the profiler port in the .NET Meteor settings.
When profiling is started, the Debug Console tab should display the Output File:
message. If you don't see this message after running the app and displaying the first view (after the splash screen), try deleting the bin
and obj
folders and rerunning the project. Sometimes the issue occurs when you frequently switch between the profiling and debugging modes.
The following table lists supported .NET target platforms and their capabilities:
Application Type | Build and Run | Hot Reload | Debugging | Profiling |
---|---|---|---|---|
WinUI | ✅ | ✅ | ✅* | ✅ |
Android | ✅ | ✅ | ✅ | ✅ |
iOS | ✅ | ✅ | ✅ | ✅ |
MacCatalyst | ✅ | ✅ | ✅ | ✅ |
For debugging of the WinUI applications you should install one of the following extensions: C# or DotRush.Essentials.