-
Notifications
You must be signed in to change notification settings - Fork 0
Migration Guide
Migrating from previous versions of Electron.NET to ElectronNET.Core is straightforward but requires several important changes. This guide walks you through the process step by step.
Before starting the migration:
- Backup your project - Ensure you have a working backup
- Update development tools - Install Node.js 22.x and .NET 8.0+
- Review current setup - Note your current Electron and ASP.NET versions
Uninstall old packages:
PM> Uninstall-Package ElectronNET.APIInstall new packages:
PM> Install-Package ElectronNET.Core
PM> Install-Package ElectronNET.Core.AspNet # For ASP.NET projectsNote: The API package is automatically included as a dependency of
ElectronNET.Core. See Package Description for details about the package structure.
Auto-generated Configuration:
ElectronNET.Core automatically creates electron-builder.json during the first build or NuGet restore. No manual configuration is needed for basic setups.
Migrate Existing Configuration:
If you have an existing electron.manifest.json file:
-
Open the generated
electron-builder.jsonfile in your project -
Locate the 'build' section in your old
electron.manifest.json -
Copy the contents of the build section (not the "build" key itself) into the new
electron-builder.json - Use Visual Studio Project Designer to configure Electron settings through the UI
-
Delete the old
electron.manifest.jsonfile
Alternative: Manual Configuration
You can also manually edit electron-builder.json:
{
"productName": "My Electron App",
"appId": "com.mycompany.myapp",
"directories": {
"output": "release"
},
"win": {
"target": "nsis",
"icon": "assets/app.ico"
}
}After completing the migration steps:
- Build your project to ensure no compilation errors
- Test debugging using the new ASP.NET-first approach
- Verify packaging works with the new configuration
- Check cross-platform builds if targeting multiple platforms
-
Missing RuntimeIdentifier: Ensure
<RuntimeIdentifier>win-x64</RuntimeIdentifier>is set - Node.js version: Verify Node.js 22.x is installed and in PATH
- Package conflicts: Clean NuGet cache if needed
- Port conflicts: Update URLs in startup code to match your configuration
- Missing electron-builder.json: Trigger rebuild or manual NuGet restore
- Process termination: Use .NET-first startup mode for better cleanup
- What's New? - Complete overview of ElectronNET.Core features
- Advanced Migration Topics - Handle complex scenarios
- Getting Started - Learn about new development workflows
✅ Simplified Configuration - No more CLI tools or JSON files ✅ Better Debugging - Native Visual Studio experience with Hot Reload ✅ Modern Architecture - .NET-first process lifecycle ✅ Cross-Platform Ready - Build Linux apps from Windows ✅ Future-Proof - Flexible Electron version selection
Update UseElectron() calls to include the new callback parameter. This callback executes at the right moment to initialize your Electron UI.
using ElectronNET.API;
using ElectronNET.API.Entities;
var builder = WebApplication.CreateBuilder(args);
// Enable Electron.NET with callback
builder.WebHost.UseElectron(args, async () =>
{
var browserWindow = await Electron.WindowManager.CreateWindowAsync(
new BrowserWindowOptions { Show = false });
await browserWindow.WebContents.LoadURLAsync("https://localhost:7001");
browserWindow.OnReadyToShow += () => browserWindow.Show();
});
var app = builder.Build();
app.Run();using ElectronNET.API;
using ElectronNET.API.Entities;
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseElectron(args, ElectronAppReady)
.UseStartup<Startup>();
// Electron callback
async Task ElectronAppReady()
{
var browserWindow = await Electron.WindowManager.CreateWindowAsync(
new BrowserWindowOptions { Show = false });
await browserWindow.WebContents.LoadURLAsync("https://localhost:5001");
browserWindow.OnReadyToShow += () => browserWindow.Show();
}Node.js Upgrade: ElectronNET.Core requires Node.js 22.x. Update your installation:
Windows:
- Download from nodejs.org
- Run the installer
- Verify:
node --versionshould show v22.x.x
Linux:
# Using Node Version Manager (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22
# Or using package manager
sudo apt update
sudo apt install nodejs=22.*Watch Feature Removal: The old 'watch' feature is no longer supported. Instead, use the new ASP.NET-first debugging with Hot Reload:
- Old approach: Manual process attachment and slow refresh
- New approach: Native Visual Studio debugging with Hot Reload
- Benefits: Faster development cycle, better debugging experience
Update Launch Settings: Replace old watch configurations with new debugging profiles. See Debugging for detailed setup instructions.
Want to contribute to this documentation? Please fork and create a PR! The Wiki is autogenerated from the /docs content in the repository.