forked from ElectronNET/Electron.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Advanced Migration Topics
github-actions[bot] edited this page Oct 14, 2025
·
4 revisions
This guide covers advanced scenarios and edge cases that may require additional configuration when migrating to ElectronNET.Core.
Previous Approach:
Specifying the WebPort in electron.manifest.json is no longer supported because the ASP.NET-first launch mode makes this timing-dependent.
New Approach: Configure custom ASP.NET ports through MSBuild metadata:
<ItemGroup>
<AssemblyMetadata Include="AspNetHttpPort" Value="4000" />
<AssemblyMetadata Include="AspNetHttpsPort" Value="4001" />
</ItemGroup>Usage in Code:
// Access configured ports at runtime
var port = int.Parse(Electron.App.GetEnvironmentVariable("AspNetHttpPort") ?? "5000");Update package.json:
{
"devDependencies": {
"eslint": "^9.37.0",
"@types/node": "^22.18",
"typescript": "^5.9.3"
},
"dependencies": {
"archiver-utils": "^2.1.0",
"socket.io": "^4.8.1",
"exceljs": "^1.10.0"
}
}Update Project File:
<PackageReference Include="Microsoft.TypeScript.MSBuild" Version="5.9.3" />
<PropertyGroup>
<TypeScriptModuleKind>commonjs</TypeScriptModuleKind>
<TypeScriptUseNodeJS>true</TypeScriptUseNodeJS>
<TypeScriptTSConfig>ElectronHostHook/tsconfig.json</TypeScriptTSConfig>
</PropertyGroup>
<ItemGroup>
<Compile Remove="publish\**" />
<Content Remove="publish\**" />
<EmbeddedResource Remove="publish\**" />
<None Remove="publish\**" />
<TypeScriptCompile Remove="**\node_modules\**" />
</ItemGroup>- Modern TypeScript - Latest language features and better type checking
- Updated Node.js Types - Compatibility with Node.js 22.x APIs
- ESLint Integration - Better code quality and consistency
- MSBuild Compilation - Integrated with Visual Studio build process
When using ElectronNET.Core in multi-project solutions:
- Install ElectronNET.Core.Api in class library projects
- Install ElectronNET.Core only in the startup project
- Share configuration through project references or shared files
For advanced build customization:
<PropertyGroup>
<ElectronNETCoreOutputPath>custom\output\path</ElectronNETCoreOutputPath>
<ElectronNETCoreNodeModulesPath>custom\node_modules</ElectronNETCoreNodeModulesPath>
</PropertyGroup>Handle different environments with conditional configuration:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<ElectronNETCoreEnvironment>Development</ElectronNETCoreEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<ElectronNETCoreEnvironment>Production</ElectronNETCoreEnvironment>
</PropertyGroup>- Migration Guide - Complete migration process
- What's New? - Overview of all ElectronNET.Core features
- Getting Started - Development workflows
Want to contribute to this documentation? Please fork and create a PR! The Wiki is autogenerated from the /docs content in the repository.