From 898e5833d86f1f2cd574dcbc3e55444a3882383c Mon Sep 17 00:00:00 2001 From: Marko Lahma Date: Fri, 25 Jul 2025 14:53:36 +0300 Subject: [PATCH 1/5] Convert to using WiX 6 --- Directory.Packages.props | 3 + .../NSwagStudio.Installer.wixproj | 34 ++-- src/NSwagStudio.Installer/Product.wxs | 192 ++++++++++-------- 3 files changed, 117 insertions(+), 112 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 4907a17fca..7af441ed89 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -34,6 +34,9 @@ + + + diff --git a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj index f138da0206..2601a90c68 100644 --- a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj +++ b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj @@ -1,21 +1,16 @@ - - + + - 3.10 - 50dcc09c-7349-4bac-8833-261a641e0669 - 2.0 NSwagStudio - Package + - ICE69 + ICE38;ICE43;ICE57;ICE61;ICE69 + $(NoWarn);HEAT5149;HEAT5151 ..\..\artifacts\bin\NSwagStudio.Installer\$(Configuration)\ ..\..\artifacts\obj\NSwagStudio.Installer\$(Configuration)\ - - - - + NSwagStudio @@ -26,18 +21,13 @@ INSTALLFOLDER + - - $(WixExtDir)\WixUtilExtension.dll - WixUtilExtension - - - $(WixExtDir)\WixUIExtension.dll - WixUIExtension - + + + - - + SourcePath=..\..\artifacts\bin\NSwagStudio\$(Configuration) @@ -49,10 +39,10 @@ GenerateGuidsNow="true" SuppressRootDirectory="true" OutputFile="Generated.wxs" - RunAsSeparateProcess="true" PreprocessorVariable="var.SourcePath" Directory="..\..\artifacts\bin\NSwagStudio\$(Configuration)" ComponentGroupName="SourceComponentGroup" ToolPath="$(WixToolPath)" /> + \ No newline at end of file diff --git a/src/NSwagStudio.Installer/Product.wxs b/src/NSwagStudio.Installer/Product.wxs index c80f2ff0b4..6203d1788d 100644 --- a/src/NSwagStudio.Installer/Product.wxs +++ b/src/NSwagStudio.Installer/Product.wxs @@ -1,91 +1,103 @@ - - - - - - - - - - - - - - - - - - - 1 - 1 - WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From f58814c386f7155f7342ab2b07f826556278771e Mon Sep 17 00:00:00 2001 From: Marko Lahma Date: Fri, 25 Jul 2025 14:56:37 +0300 Subject: [PATCH 2/5] get rid of heat --- Directory.Packages.props | 1 - .../NSwagStudio.Installer.wixproj | 31 ++++++------------- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 7af441ed89..92ae77015f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -36,7 +36,6 @@ - diff --git a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj index 2601a90c68..c1ba9ca172 100644 --- a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj +++ b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj @@ -2,13 +2,11 @@ NSwagStudio - - - ICE38;ICE43;ICE57;ICE61;ICE69 $(NoWarn);HEAT5149;HEAT5151 ..\..\artifacts\bin\NSwagStudio.Installer\$(Configuration)\ ..\..\artifacts\obj\NSwagStudio.Installer\$(Configuration)\ + SourcePath=..\..\artifacts\bin\NSwagStudio\$(Configuration) @@ -25,24 +23,15 @@ - - - - SourcePath=..\..\artifacts\bin\NSwagStudio\$(Configuration) - - - + + + RootDirectory + true + SourceComponentGroup + var.SourcePath + + - \ No newline at end of file + From ef754511e8502507f73777fe2de34f5bcfae297a Mon Sep 17 00:00:00 2001 From: Marko Lahma Date: Fri, 25 Jul 2025 15:35:57 +0300 Subject: [PATCH 3/5] use Files element --- .../NSwagStudio.Installer.wixproj | 11 +------- src/NSwagStudio.Installer/Product.wxs | 25 +++++++++++++++---- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj index c1ba9ca172..2ad5cd6cfb 100644 --- a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj +++ b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj @@ -6,7 +6,7 @@ $(NoWarn);HEAT5149;HEAT5151 ..\..\artifacts\bin\NSwagStudio.Installer\$(Configuration)\ ..\..\artifacts\obj\NSwagStudio.Installer\$(Configuration)\ - SourcePath=..\..\artifacts\bin\NSwagStudio\$(Configuration) + SourcePath=..\..\NSwagStudio\$(Configuration) @@ -25,13 +25,4 @@ - - - RootDirectory - true - SourceComponentGroup - var.SourcePath - - - diff --git a/src/NSwagStudio.Installer/Product.wxs b/src/NSwagStudio.Installer/Product.wxs index 6203d1788d..21e9227803 100644 --- a/src/NSwagStudio.Installer/Product.wxs +++ b/src/NSwagStudio.Installer/Product.wxs @@ -3,7 +3,7 @@ @@ -15,7 +15,8 @@ - + + @@ -31,11 +32,25 @@ - + + + + + + + + + + + + + + + @@ -76,14 +91,14 @@ Icon="ApplicationIcon" Name="NSwagStudio" Description="NSwagStudio" - Target="[#filnYMAEBxLTF3CcDAg0eYQImHyMxs]" + Target="[#NSwagExe]" WorkingDirectory="RootDirectory" /> - + From 5f1ef2415075b8c953ac95f8003170d45bfae45e Mon Sep 17 00:00:00 2001 From: Marko Lahma Date: Fri, 25 Jul 2025 15:40:29 +0300 Subject: [PATCH 4/5] cleanup --- .../NSwagStudio.Installer.wixproj | 5 ---- src/NSwagStudio.Installer/Product.wxs | 29 ++++++++++--------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj index 2ad5cd6cfb..bd2e76994c 100644 --- a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj +++ b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj @@ -2,8 +2,6 @@ NSwagStudio - ICE38;ICE43;ICE57;ICE61;ICE69 - $(NoWarn);HEAT5149;HEAT5151 ..\..\artifacts\bin\NSwagStudio.Installer\$(Configuration)\ ..\..\artifacts\obj\NSwagStudio.Installer\$(Configuration)\ SourcePath=..\..\NSwagStudio\$(Configuration) @@ -12,9 +10,6 @@ NSwagStudio - {dada2d11-14e2-40b1-b31d-b68d6f18378c} - True - True Binaries;Content;Satellites INSTALLFOLDER diff --git a/src/NSwagStudio.Installer/Product.wxs b/src/NSwagStudio.Installer/Product.wxs index 21e9227803..55a09cb809 100644 --- a/src/NSwagStudio.Installer/Product.wxs +++ b/src/NSwagStudio.Installer/Product.wxs @@ -47,6 +47,21 @@ + + + + + + + + + @@ -86,22 +101,8 @@ Action="set" System="no" /> - - - - - - - - From 734815bb20f7014c1fa1d3620b7dc3fe60d49471 Mon Sep 17 00:00:00 2001 From: Marko Lahma Date: Fri, 25 Jul 2025 20:30:33 +0300 Subject: [PATCH 5/5] tweak build --- .nuke/build.schema.json | 1 - build/Build.Pack.cs | 20 ++--- build/Build.cs | 86 ++++--------------- .../NSwagStudio.Installer.wixproj | 1 + src/NSwagStudio.Installer/Product.wxs | 42 +++++---- src/NSwagStudio/NSwagStudio.csproj | 16 ---- 6 files changed, 41 insertions(+), 125 deletions(-) diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index 4aecb4ebff..df8f45c236 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -26,7 +26,6 @@ "enum": [ "Clean", "Compile", - "InstallDependencies", "Pack", "Publish", "Restore", diff --git a/build/Build.Pack.cs b/build/Build.Pack.cs index 7a5cc8c43c..1e4966f9ec 100644 --- a/build/Build.Pack.cs +++ b/build/Build.Pack.cs @@ -7,11 +7,9 @@ using Nuke.Common.IO; using Nuke.Common.Tooling; using Nuke.Common.Tools.DotNet; -using Nuke.Common.Tools.MSBuild; using Nuke.Common.Tools.NuGet; using static Nuke.Common.Tools.DotNet.DotNetTasks; -using static Nuke.Common.Tools.MSBuild.MSBuildTasks; using static Nuke.Common.Tools.NuGet.NuGetTasks; using Project = Microsoft.Build.Evaluation.Project; @@ -60,9 +58,8 @@ public partial class Build .SetVersion(nugetVersion) .SetConfiguration(Configuration) .SetOutputDirectory(ArtifactsDirectory) - .SetDeterministic(IsServerBuild) - .SetContinuousIntegrationBuild(IsServerBuild) .EnableNoRestore() + .EnableNoBuild() ); } @@ -70,18 +67,11 @@ public partial class Build (SourceDirectory / "NSwagStudio.Installer" / "bin").CreateOrCleanDirectory(); - MSBuild(x => x - .SetTargetPath(GetProject("NSwagStudio.Installer")) - .SetTargets("Rebuild") - .SetAssemblyVersion(VersionPrefix) - .SetFileVersion(VersionPrefix) - .SetInformationalVersion(VersionPrefix) + DotNetBuild(x => x + .SetProjectFile(GetProject("NSwagStudio.Installer")) .SetConfiguration(Configuration) - .SetMaxCpuCount(Environment.ProcessorCount) - .SetNodeReuse(IsLocalBuild) - .SetVerbosity(MSBuildVerbosity.Minimal) - .SetProperty("Deterministic", IsServerBuild) - .SetProperty("ContinuousIntegrationBuild", IsServerBuild) + .EnableNoRestore() + .SetVerbosity(DotNetVerbosity.minimal) ); // gather relevant artifacts diff --git a/build/Build.cs b/build/Build.cs index 6f977c4c9d..2707f74bb3 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -11,14 +11,9 @@ using Nuke.Common.ProjectModel; using Nuke.Common.Tooling; using Nuke.Common.Tools.DotNet; -using Nuke.Common.Tools.MSBuild; -using Nuke.Common.Tools.Npm; using Nuke.Common.Utilities; using Nuke.Common.Utilities.Collections; - -using static Nuke.Common.Tools.Chocolatey.ChocolateyTasks; using static Nuke.Common.Tools.DotNet.DotNetTasks; -using static Nuke.Common.Tools.MSBuild.MSBuildTasks; using static Nuke.Common.Tools.Npm.NpmTasks; using Project = Nuke.Common.ProjectModel.Project; @@ -127,18 +122,6 @@ protected override void OnBuildInitialized() ArtifactsDirectory.CreateOrCleanDirectory(); }); - Target InstallDependencies => _ => _ - .Before(Restore, Compile) - .OnlyWhenDynamic(() => !IsServerBuild) - .Executes(() => - { - Chocolatey("install wixtoolset -y"); - NpmInstall(x => x - .EnableGlobal() - .AddPackages("dotnettools") - ); - }); - Target Restore => _ => _ .Executes(() => { @@ -163,60 +146,21 @@ protected override void OnBuildInitialized() Serilog.Log.Information("Build and copy full .NET command line with configuration {Configuration}", Configuration); - if (IsRunningOnWindows) - { - DotNetMSBuild(x => x - .SetTargetPath(GetProject("NSwagStudio")) - .SetAssemblyVersion(VersionPrefix) - .SetFileVersion(VersionPrefix) - .SetInformationalVersion(VersionPrefix) - .SetConfiguration(Configuration) - .SetMaxCpuCount(Environment.ProcessorCount) - .SetNodeReuse(IsLocalBuild) - .SetVerbosity(DotNetVerbosity.minimal) - .SetDeterministic(IsServerBuild) - .SetContinuousIntegrationBuild(IsServerBuild) - // ensure we don't generate too much output in CI run - // 0 Turns off emission of all warning messages - // 1 Displays severe warning messages - .SetWarningLevel(IsServerBuild ? 0 : 1) - ); - - MSBuild(x => x - .SetTargetPath(SolutionFile) - .SetAssemblyVersion(VersionPrefix) - .SetFileVersion(VersionPrefix) - .SetInformationalVersion(VersionPrefix) - .SetConfiguration(Configuration) - .SetMaxCpuCount(Environment.ProcessorCount) - .SetNodeReuse(IsLocalBuild) - .SetVerbosity(MSBuildVerbosity.Minimal) - .SetProperty("Deterministic", IsServerBuild) - .SetProperty("ContinuousIntegrationBuild", IsServerBuild) - // ensure we don't generate too much output in CI run - // 0 Turns off emission of all warning messages - // 1 Displays severe warning messages - .SetWarningLevel(IsServerBuild ? 0 : 1) - ); - } - else - { - DotNetBuild(x => x - .SetProjectFile(SolutionFile) - .SetAssemblyVersion(VersionPrefix) - .SetFileVersion(VersionPrefix) - .SetInformationalVersion(VersionPrefix) - .SetConfiguration(Configuration) - .SetVerbosity(DotNetVerbosity.minimal) - .SetDeterministic(IsServerBuild) - .SetContinuousIntegrationBuild(IsServerBuild) - // ensure we don't generate too much output in CI run - // 0 Turns off emission of all warning messages - // 1 Displays severe warning messages - .SetWarningLevel(IsServerBuild ? 0 : 1) - .EnableNoRestore() - ); - } + DotNetBuild(x => x + .SetProjectFile(SolutionFile) + .SetAssemblyVersion(VersionPrefix) + .SetFileVersion(VersionPrefix) + .SetInformationalVersion(VersionPrefix) + .SetConfiguration(Configuration) + .SetVerbosity(DotNetVerbosity.minimal) + .SetDeterministic(IsServerBuild) + .SetContinuousIntegrationBuild(IsServerBuild) + // ensure we don't generate too much output in CI run + // 0 Turns off emission of all warning messages + // 1 Displays severe warning messages + .SetWarningLevel(IsServerBuild ? 0 : 1) + .EnableNoRestore() + ); // later steps need to have binaries in correct places PublishAndCopyConsoleProjects(); diff --git a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj index bd2e76994c..a594cd19f2 100644 --- a/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj +++ b/src/NSwagStudio.Installer/NSwagStudio.Installer.wixproj @@ -2,6 +2,7 @@ NSwagStudio + ICE61;ICE69 ..\..\artifacts\bin\NSwagStudio.Installer\$(Configuration)\ ..\..\artifacts\obj\NSwagStudio.Installer\$(Configuration)\ SourcePath=..\..\NSwagStudio\$(Configuration) diff --git a/src/NSwagStudio.Installer/Product.wxs b/src/NSwagStudio.Installer/Product.wxs index 55a09cb809..cf67e5331e 100644 --- a/src/NSwagStudio.Installer/Product.wxs +++ b/src/NSwagStudio.Installer/Product.wxs @@ -16,7 +16,7 @@ - + @@ -44,29 +44,17 @@ - - - + - - - - - - - + - - - + + + + + - + @@ -84,6 +72,14 @@ + + - + + + diff --git a/src/NSwagStudio/NSwagStudio.csproj b/src/NSwagStudio/NSwagStudio.csproj index 5627b7be37..befa3c0857 100644 --- a/src/NSwagStudio/NSwagStudio.csproj +++ b/src/NSwagStudio/NSwagStudio.csproj @@ -25,17 +25,7 @@ - - - - - - - - - - @@ -45,14 +35,8 @@ - - - - - -