From 3fecc0ee1b47f8c0be863616fed2abd42a7f3b9f Mon Sep 17 00:00:00 2001 From: Samuel Nussbaum Date: Fri, 24 Jul 2026 15:13:47 +0200 Subject: [PATCH 1/5] fix: Visual studio load issue --- src/ElectronNET/build/ElectronNET.Core.props | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ElectronNET/build/ElectronNET.Core.props b/src/ElectronNET/build/ElectronNET.Core.props index 5242960c..bf31b8fc 100644 --- a/src/ElectronNET/build/ElectronNET.Core.props +++ b/src/ElectronNET/build/ElectronNET.Core.props @@ -5,8 +5,13 @@ 30.4.0 26.0 - $([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) + so `dotnet build/publish` without -r targets the current OS. + RuntimeInformation.RuntimeIdentifier only exists on .NET 5+, so it's only safe to call + when MSBuild itself is hosted on .NET (Core). Visual Studio's bundled MSBuild.exe runs on + .NET Framework (MSBuildRuntimeType == 'Full'), where that member doesn't exist and the + property function would throw during evaluation, failing solution load. --> + $([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) + win-x64 true From 0b3053477d367defc5907af83b855b2ef678beee Mon Sep 17 00:00:00 2001 From: Samuel Nussbaum Date: Mon, 27 Jul 2026 08:42:33 +0200 Subject: [PATCH 2/5] chore(dx): visual studio load regression, let electron choose the required runtime. --- src/ElectronNET/build/ElectronNET.Core.props | 14 ++++---- .../build/ElectronNET.LateImport.targets | 35 ++++++++++--------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/ElectronNET/build/ElectronNET.Core.props b/src/ElectronNET/build/ElectronNET.Core.props index bf31b8fc..8a83754e 100644 --- a/src/ElectronNET/build/ElectronNET.Core.props +++ b/src/ElectronNET/build/ElectronNET.Core.props @@ -4,14 +4,12 @@ 30.4.0 26.0 - - $([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) - win-x64 + + + + $([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) + + win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLower()) true diff --git a/src/ElectronNET/build/ElectronNET.LateImport.targets b/src/ElectronNET/build/ElectronNET.LateImport.targets index 46ccd062..2fa843b6 100644 --- a/src/ElectronNET/build/ElectronNET.LateImport.targets +++ b/src/ElectronNET/build/ElectronNET.LateImport.targets @@ -121,7 +121,7 @@ linux $(Title) - $(Title.Replace(' ', '-')) + $(Title.Replace(' ', '-')) @@ -365,18 +365,18 @@ - x64 - ia32 - arm64 - x64 - armv7l - arm64 - x64 - arm64 - - win - linux - mac + x64 + ia32 + arm64 + x64 + armv7l + arm64 + x64 + arm64 + + win + linux + mac win32 @@ -385,7 +385,7 @@ $(ElectronArch) - arm + arm <_CurrentOSPlatform Condition="$([MSBuild]::IsOSPlatform('Windows'))">win <_CurrentOSPlatform Condition="$([MSBuild]::IsOSPlatform('Linux'))">linux @@ -522,7 +522,7 @@ - <_NpxCmd>npx electron-builder --config=./$(ElectronBuilderJson) --$(ElectronPlatform) --$(ElectronArch) -c.electronVersion=$(ElectronVersion) -c.directories.output "$(ElectronPublishUrlFullPath)" $(ElectronPaParams) + <_NpxCmd>npx electron-builder --config=./$(ElectronBuilderJson) + <_NpxCmd Condition="'$(IsLinuxWsl)' == 'true'">$(_NpxCmd) --$(ElectronPlatform) + <_NpxCmd Condition="'$(IsLinuxWsl)' == 'true'">$(_NpxCmd) --$(ElectronArch) + <_NpxCmd>$(_NpxCmd) -c.electronVersion=$(ElectronVersion) -c.directories.output "$(ElectronPublishUrlFullPath)" $(ElectronPaParams) <_NpxCmd Condition="'$(IsLinuxWsl)' == 'true'">wsl bash -ic '$(_NpxCmd)' From 44e5c4e230607b306213f9579d6f97cc0fe17854 Mon Sep 17 00:00:00 2001 From: Samuel Nussbaum Date: Mon, 27 Jul 2026 10:30:37 +0200 Subject: [PATCH 3/5] chore(build): runtime identifier is not required anymore --- src/ElectronNET.WebApp/ElectronNET.WebApp.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ElectronNET.WebApp/ElectronNET.WebApp.csproj b/src/ElectronNET.WebApp/ElectronNET.WebApp.csproj index b4cd9e1b..2cf1f268 100644 --- a/src/ElectronNET.WebApp/ElectronNET.WebApp.csproj +++ b/src/ElectronNET.WebApp/ElectronNET.WebApp.csproj @@ -34,7 +34,6 @@ wwwroot\assets\img\about@2x.png MIT false - win-x64 26.0 From 1fff688098cdffddcbf8ffc3b45f5978b66eba7e Mon Sep 17 00:00:00 2001 From: Roger Vuistiner Date: Sun, 26 Jul 2026 13:09:39 +0200 Subject: [PATCH 4/5] chore: consolidate MSBuild configuration barriers - Moved Directory.Build.* barriers from nuke to root folder to cover all projects. - Added a Directory.Packages.props barrier to stop central package management. - Removed obsolete 'ManagePackageVersionsCentrally' properties. --- nuke/Directory.Build.props => Directory.Build.props | 0 nuke/Directory.Build.targets => Directory.Build.targets | 0 Directory.Packages.props | 8 ++++++++ 3 files changed, 8 insertions(+) rename nuke/Directory.Build.props => Directory.Build.props (100%) rename nuke/Directory.Build.targets => Directory.Build.targets (100%) create mode 100644 Directory.Packages.props diff --git a/nuke/Directory.Build.props b/Directory.Build.props similarity index 100% rename from nuke/Directory.Build.props rename to Directory.Build.props diff --git a/nuke/Directory.Build.targets b/Directory.Build.targets similarity index 100% rename from nuke/Directory.Build.targets rename to Directory.Build.targets diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..7fb0f766 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,8 @@ + + + + + + + + From 5eeab1bd24e7a3fde7ddd90c07bf3dce58d4ea59 Mon Sep 17 00:00:00 2001 From: Samuel Nussbaum Date: Tue, 14 Jul 2026 09:27:26 +0200 Subject: [PATCH 5/5] fix(warning): remove warining CS4014 --- .../Runtime/Controllers/RuntimeControllerAspNetBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ElectronNET.AspNet/Runtime/Controllers/RuntimeControllerAspNetBase.cs b/src/ElectronNET.AspNet/Runtime/Controllers/RuntimeControllerAspNetBase.cs index f214e8a3..42693b9c 100644 --- a/src/ElectronNET.AspNet/Runtime/Controllers/RuntimeControllerAspNetBase.cs +++ b/src/ElectronNET.AspNet/Runtime/Controllers/RuntimeControllerAspNetBase.cs @@ -145,7 +145,7 @@ private async Task RunReadyCallback() catch (Exception ex) { Console.WriteLine("Exception while executing OnAppReadyCallback. Stopping...\n" + ex); - this.Stop(); + _ = this.Stop(); } } }