ElectronNET.Core transforms the debugging experience by providing native Visual Studio integration with multiple debugging modes. No more complex setup or manual process attachment—debugging now works as expected for .NET developers.
🎯 Debugging Modes
ElectronNET.Core supports three main debugging approaches, all configured through Visual Studio's launch profiles:
1. ASP.NET-First Debugging (Recommended)
Debug your .NET code directly with full Hot Reload support:
{
"profiles": {
"ASP.Net (unpackaged)": {
"commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:8001/"
}
}
}
Benefits:
- ✅ Full C# debugging with breakpoints
- ✅ Hot Reload for ASP.NET code
- ✅ Edit-and-continue functionality
- ✅ Native Visual Studio debugging experience
2. Electron-First Debugging
Debug the Electron process when you need to inspect native Electron APIs:
{
"profiles": {
"Electron (unpackaged)": {
"commandName": "Executable",
"executablePath": "node",
"commandLineArgs": "node_modules/electron/cli.js main.js -unpackedelectron",
"workingDirectory": "$(TargetDir).electron",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Benefits:
- ✅ Debug Electron main process
- ✅ Inspect native Electron APIs
- ✅ Node.js debugging capabilities
3. Cross-Platform WSL Debugging
Debug Linux builds directly from Windows Visual Studio:
{
"profiles": {
"WSL": {
"commandName": "WSL2",
"launchUrl": "http://localhost:8001/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_URLS": "http://localhost:8001/"
},
"distributionName": ""
}
}
}
Benefits:
- ✅ Debug Linux applications from Windows
- ✅ Test Linux-specific behavior
- ✅ Validate cross-platform compatibility
🔧 Setup Instructions
1. Configure Launch Settings
Add the debugging profiles to Properties/launchSettings.json:
{
"profiles": {
"ASP.Net (unpackaged)": {
"commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:8001/"
},
"Electron (unpackaged)": {
"commandName": "Executable",
"executablePath": "node",
"commandLineArgs": "node_modules/electron/cli.js main.js -unpackedelectron",
"workingDirectory": "$(TargetDir).electron",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"WSL": {
"commandName": "WSL2",
"launchUrl": "http://localhost:8001/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_URLS": "http://localhost:8001/"
},
"distributionName": ""
}
}
}
2. Switch Runtime Identifiers
When switching between Windows and WSL debugging:
- Right-click your project in Solution Explorer
- Select Properties
- Adjust the Runtime Identifier
Without Visual Studio:
- Edit the .csproj file
- Update the RuntimeIdentifier:
<!-- For Windows debugging -->
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<!-- For WSL/Linux debugging -->
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
3. Enable WSL Debugging
For WSL debugging, ensure:
- WSL2 is installed and configured
- Linux distribution is set in the launch profile
- Project targets Linux RID for WSL debugging
🚀 Debugging Workflow
ASP.NET-First Debugging (Default)
- Select "ASP.Net (unpackaged)" profile in Visual Studio
- Press F5 to start debugging
- Set breakpoints in your C# code
- Use Hot Reload to edit ASP.NET code during runtime
- Stop debugging when finished
Electron Process Debugging
- Select "Electron (unpackaged)" profile
- Press F5 to start debugging
- Attach to Electron process if needed
- Debug Node.js and Electron APIs
Cross-Platform Debugging
- Set RuntimeIdentifier to
linux-x64 - Select "WSL" profile
- Press F5 to debug in WSL
- Test Linux-specific behavior
🔍 Debugging Tips
Hot Reload
- Works with ASP.NET-first debugging
- Edit Razor views, controllers, and pages
- See changes instantly without restart
- Preserves application state
Breakpoint Debugging
// Set breakpoints here
public async Task<IActionResult> Index()
{
var data = await GetData(); // ← Breakpoint
return View(data);
}
Process Management
- ASP.NET-first mode automatically manages Electron process lifecycle
- Proper cleanup on debugging session end
- No manual process killing required
🛠 Troubleshooting
Common Issues
"Electron process not found"
- Ensure Node.js 22.x is installed
- Check that packages are restored (
dotnet restore) - Verify RuntimeIdentifier matches your target platform
"WSL debugging fails"
- Install and configure WSL2
- Ensure Linux distribution is properly set up
- Check that project targets correct RID
"Hot Reload not working"
- Use ASP.NET-first debugging profile
- Ensure ASPNETCORE_ENVIRONMENT=Development
- Check for compilation errors
🎨 Visual Debugging
Placeholder for image showing Visual Studio debugging interface with Electron.NET
The debugging interface provides familiar Visual Studio tools:
- Locals and Watch windows for variable inspection
- Call Stack for method call tracing
- Immediate Window for runtime evaluation
- Hot Reload indicator for edit-and-continue
🚀 Next Steps
- Startup Methods - Understanding different launch scenarios
- Package Building - Debug packaged applications
- Migration Guide - Moving from old debugging workflows
💡 Benefits
✅ Native Visual Studio Experience - No complex setup or manual attachment
✅ Hot Reload Support - Edit ASP.NET code during debugging
✅ Cross-Platform Debugging - Debug Linux apps from Windows
✅ Multiple Debugging Modes - Choose the right approach for your needs
✅ Process Lifecycle Management - Automatic cleanup and proper termination
- API Overview

- Electron.App

- Electron.Dialog

- Electron.Menu

- Electron.WindowManager

- Electron.Shell

- Electron.Screen

- Electron.Notification

- Electron.Tray

- Electron.Clipboard

- Electron.Dock

- Electron.HostHook

- Electron.IpcMain

- Electron.GlobalShortcut

- Electron.AutoUpdater

- Electron.NativeTheme

- Electron.PowerMonitor

Want to contribute to this documentation? Please fork and create a PR! The Wiki is autogenerated from the /docs content in the repository.