diff --git a/.github/workflows/build-ilspy.yml b/.github/workflows/build-ilspy.yml
index d36ee142c..cf86850ae 100644
--- a/.github/workflows/build-ilspy.yml
+++ b/.github/workflows/build-ilspy.yml
@@ -46,6 +46,9 @@ jobs:
- name: Install dotnet-format
run: dotnet tool install -g dotnet-format --version "8.3.546805" --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json
+ - name: Install wix (locked version)
+ run: dotnet tool install --global wix --version 6.0.0
+
- name: Get Version
id: version
shell: pwsh
diff --git a/ILSpy.Installer/ILSpy.Installer.csproj b/ILSpy.Installer/ILSpy.Installer.csproj
index 266020a76..86580dc8c 100644
--- a/ILSpy.Installer/ILSpy.Installer.csproj
+++ b/ILSpy.Installer/ILSpy.Installer.csproj
@@ -15,10 +15,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ILSpy.Installer/README.md b/ILSpy.Installer/README.md
index f83b37d2c..ef9ca1b5b 100644
--- a/ILSpy.Installer/README.md
+++ b/ILSpy.Installer/README.md
@@ -1,5 +1,19 @@
# Building the Installer
+## Dependencies
+
+See https://github.com/oleg-shilo/wixsharp/wiki#dependencies
+
+```
+dotnet tool install --global wix
+```
+
+GitHub runners installed software https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md at time
+of writing WiX Toolset 3.14.1.8722
+
+
+## ILSpy Binaries
+
It is mandatory to first publish(.ps1) the respective target platforms, then setup can be built, eg
```
diff --git a/ILSpy.Installer/setup.cs b/ILSpy.Installer/setup.cs
index 0bcc418d6..a5c8b9f98 100644
--- a/ILSpy.Installer/setup.cs
+++ b/ILSpy.Installer/setup.cs
@@ -45,8 +45,7 @@ namespace ILSpy.Installer
project.GUID = new Guid("a12fdab1-731b-4a98-9749-d481ce8692ab");
project.Version = AppPackage.Version;
project.SourceBaseDir = Path.GetDirectoryName(Environment.CurrentDirectory);
- project.InstallScope = InstallScope.perUser;
- project.InstallPrivileges = InstallPrivileges.limited;
+ project.Scope = InstallScope.perUser;
project.ControlPanelInfo.ProductIcon = @"..\ILSpy\Images\ILSpy.ico";
project.ControlPanelInfo.Manufacturer = "ICSharpCode Team";
project.LocalizationFile = Path.Combine(Environment.CurrentDirectory, "winui.wxl");
@@ -71,41 +70,7 @@ namespace ILSpy.Installer
new FileShortcut("ILSpy", @"%ProgramMenu%")
};
- Compiler.WixLocation = GetWixBinLocationForPackage();
Compiler.BuildMsi(project, Path.Combine(Environment.CurrentDirectory, "wix", $"ILSpy-{AppPackage.Version}-{buildPlatform}.msi"));
}
-
- // Copied from https://github.com/oleg-shilo/wixsharp/blob/c4f8615ce8e47c7162edb30656669d0d326f79ff/Source/src/WixSharp/Utilities/WixBinLocator.cs#L117
- private static string GetWixBinLocationForPackage()
- {
- //The global packages may be redirected with environment variable
- //https://docs.microsoft.com/en-us/nuget/consume-packages/managing-the-global-packages-and-cache-folders
-
- string wixBinPackageDir;
- var nugetPackagesEnvironmentVariable = Environment.GetEnvironmentVariable("NUGET_PACKAGES");
- if (nugetPackagesEnvironmentVariable.IsNotEmpty() && Directory.Exists(nugetPackagesEnvironmentVariable))
- {
- wixBinPackageDir = Path.Combine(nugetPackagesEnvironmentVariable, "wixsharp.wix.bin");
- }
- else
- {
- wixBinPackageDir = @"%userprofile%\.nuget\packages\wixsharp.wix.bin".ExpandEnvVars();
- }
-
- if (Directory.Exists(wixBinPackageDir))
- {
- Version greatestWixBinVersion = System.IO.Directory.GetDirectories(wixBinPackageDir)
- .Select(dirPath => new Version(dirPath.PathGetFileName()))
- .OrderDescending()
- .FirstOrDefault();
-
- if (greatestWixBinVersion != null)
- {
- return wixBinPackageDir.PathJoin(greatestWixBinVersion.ToString(), @"tools\bin");
- }
- }
-
- return "";
- }
}
}
diff --git a/ILSpy.Installer/winui.wxl b/ILSpy.Installer/winui.wxl
index b600ba1ea..79daf4717 100644
--- a/ILSpy.Installer/winui.wxl
+++ b/ILSpy.Installer/winui.wxl
@@ -1,10 +1,4 @@
-
- Click Install to begin the installation. Click Cancel to exit the wizard.
-
-
- ILSpy will be installed for current user into following directory:
-
- [INSTALLDIR]
-
+
+
\ No newline at end of file
diff --git a/publishlocaldev.ps1 b/publishlocaldev.ps1
index a8ebda02f..165423c2a 100644
--- a/publishlocaldev.ps1
+++ b/publishlocaldev.ps1
@@ -1,13 +1,13 @@
# For local development of the VSIX package - build and publish (VS2022 also needs arm64)
-$output_x64 = "./ILSpy/bin/Debug/net8.0-windows/win-x64/publish/fwdependent"
+$output_x64 = "./ILSpy/bin/Release/net8.0-windows/win-x64/publish/fwdependent"
-dotnet publish ./ILSpy/ILSpy.csproj -c Debug --no-restore --no-self-contained -r win-x64 -o $output_x64
-dotnet publish ./ILSpy.ReadyToRun/ILSpy.ReadyToRun.csproj -c Debug --no-restore --no-self-contained -r win-x64 -o $output_x64
-dotnet publish ./ILSpy.BamlDecompiler/ILSpy.BamlDecompiler.csproj -c Debug --no-restore --no-self-contained -r win-x64 -o $output_x64
+dotnet publish ./ILSpy/ILSpy.csproj -c Release --no-restore --no-self-contained -r win-x64 -o $output_x64
+dotnet publish ./ILSpy.ReadyToRun/ILSpy.ReadyToRun.csproj -c Release --no-restore --no-self-contained -r win-x64 -o $output_x64
+dotnet publish ./ILSpy.BamlDecompiler/ILSpy.BamlDecompiler.csproj -c Release --no-restore --no-self-contained -r win-x64 -o $output_x64
-$output_arm64 = "./ILSpy/bin/Debug/net8.0-windows/win-arm64/publish/fwdependent"
+$output_arm64 = "./ILSpy/bin/Release/net8.0-windows/win-arm64/publish/fwdependent"
-dotnet publish ./ILSpy/ILSpy.csproj -c Debug --no-restore --no-self-contained -r win-arm64 -o $output_arm64
-dotnet publish ./ILSpy.ReadyToRun/ILSpy.ReadyToRun.csproj -c Debug --no-restore --no-self-contained -r win-arm64 -o $output_arm64
-dotnet publish ./ILSpy.BamlDecompiler/ILSpy.BamlDecompiler.csproj -c Debug --no-restore --no-self-contained -r win-arm64 -o $output_arm64
\ No newline at end of file
+dotnet publish ./ILSpy/ILSpy.csproj -c Release --no-restore --no-self-contained -r win-arm64 -o $output_arm64
+dotnet publish ./ILSpy.ReadyToRun/ILSpy.ReadyToRun.csproj -c Release --no-restore --no-self-contained -r win-arm64 -o $output_arm64
+dotnet publish ./ILSpy.BamlDecompiler/ILSpy.BamlDecompiler.csproj -c Release --no-restore --no-self-contained -r win-arm64 -o $output_arm64
\ No newline at end of file