diff --git a/src/lib-csharp/VelopackAsset.cs b/src/lib-csharp/VelopackAsset.cs index d561024b..509b07d3 100644 --- a/src/lib-csharp/VelopackAsset.cs +++ b/src/lib-csharp/VelopackAsset.cs @@ -20,10 +20,8 @@ namespace Velopack Portable = 3, /// An application installer archive. Installer = 4, - /// A Windows Installer package (.msi) for the deployment tool. - MsiDeploymentTool = 5, /// A Windows Installer package (.msi). - Msi = 6, + Msi = 5, } /// diff --git a/src/vpk/Velopack.Build/PackTask.cs b/src/vpk/Velopack.Build/PackTask.cs index 88b1c0a1..74bf520c 100644 --- a/src/vpk/Velopack.Build/PackTask.cs +++ b/src/vpk/Velopack.Build/PackTask.cs @@ -103,7 +103,6 @@ public class PackTask : MSBuildAsyncTask public string? Compression { get; set; } - public bool BuildMsiDeploymentTool { get; set; } public bool BuildMsi { get; set; } public string? MsiVersionOverride { get; set; } diff --git a/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs b/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs index 1133ac24..5ffcecb6 100644 --- a/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs +++ b/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs @@ -220,12 +220,6 @@ public class WindowsPackCommandRunner : PackageBuilder Log.Debug($"Setup bundle created '{Path.GetFileName(targetSetupExe)}'."); setupExeProgress(100); - if (Options.BuildMsiDeploymentTool && VelopackRuntimeInfo.IsWindows) { - var msiName = DefaultName.GetSuggestedMsiDeploymentToolName(Options.PackId, Options.Channel, TargetOs); - var msiPath = createAsset(msiName, VelopackAssetType.MsiDeploymentTool); - CompileWixTemplateToMsiDeploymentTool(msiProgress, targetSetupExe, msiPath); - } - if (Options.BuildMsi && VelopackRuntimeInfo.IsWindows) { var msiName = DefaultName.GetSuggestedMsiName(Options.PackId, Options.Channel, TargetOs); var msiPath = createAsset(msiName, VelopackAssetType.Msi); @@ -730,83 +724,6 @@ public class WindowsPackCommandRunner : PackageBuilder } } - [SupportedOSPlatform("windows")] - private void CompileWixTemplateToMsiDeploymentTool(Action progress, - string setupExePath, string msiFilePath) - { - bool packageAs64Bit = - Options.TargetRuntime.Architecture is RuntimeCpu.x64 or RuntimeCpu.arm64; - - Log.Info($"Compiling machine-wide msi deployment tool in {(packageAs64Bit ? "64-bit" : "32-bit")} mode"); - - var outputDirectory = Path.GetDirectoryName(setupExePath); - var setupName = Path.GetFileNameWithoutExtension(setupExePath); - var culture = CultureInfo.GetCultureInfo("en-US").TextInfo.ANSICodePage; - - // WiX Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or - // periods(.). Every identifier must begin with either a letter or an underscore. - var wixId = Regex.Replace(Options.PackId, @"[^\w\.]", "_"); - if (char.GetUnicodeCategory(wixId[0]) == UnicodeCategory.DecimalDigitNumber) - wixId = "_" + wixId; - - Regex stacheRegex = new(@"\{\{(?[^\}]+)\}\}", RegexOptions.Compiled); - - var wxsFile = Path.Combine(outputDirectory, wixId + ".wxs"); - var objFile = Path.Combine(outputDirectory, wixId + ".wixobj"); - - - var msiVersion = Options.MsiVersionOverride; - if (string.IsNullOrWhiteSpace(msiVersion)) { - var parsedVersion = SemanticVersion.Parse(Options.PackVersion); - msiVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.{parsedVersion.Patch}.0"; - } - - try { - // apply dictionary to wsx template - var templateText = File.ReadAllText(HelperFile.WixTemplatePath); - - var templateResult = stacheRegex.Replace(templateText, match => { - string key = match.Groups["key"].Value; - return key switch { - "Id" => wixId, - "Title" => GetEffectiveTitle(), - "Author" => GetEffectiveAuthors(), - "Version" => msiVersion, - "Summary" => GetEffectiveTitle(), - "Codepage" => $"{culture}", - "Platform" => packageAs64Bit ? "x64" : "x86", - "ProgramFilesFolder" => packageAs64Bit ? "ProgramFiles64Folder" : "ProgramFilesFolder", - "Win64YesNo" => packageAs64Bit ? "yes" : "no", - "SetupName" => setupName, - _ when key.StartsWith("IdAsGuid", StringComparison.OrdinalIgnoreCase) => GuidUtil.CreateGuidFromHash($"{Options.PackId}:{key.Substring("IdAsGuid".Length)}").ToString(), - _ => match.Value, - }; - }); - - File.WriteAllText(wxsFile, templateResult, Encoding.UTF8); - - // Candle preprocesses and compiles WiX source files into object files (.wixobj). - Log.Info("Compiling WiX Template (candle.exe)"); - var candleCommand = $"{HelperFile.WixCandlePath} -nologo -out \"{objFile}\" \"{wxsFile}\""; - _ = Exe.RunHostedCommand(candleCommand); - - progress(45); - - // Light links and binds one or more .wixobj files and creates a Windows Installer database (.msi or .msm). - Log.Info("Linking WiX Template (light.exe)"); - var lightCommand = $"{HelperFile.WixLightPath} -spdb -sval -out \"{msiFilePath}\" \"{objFile}\""; - _ = Exe.RunHostedCommand(lightCommand); - - progress(90); - - } finally { - IoUtil.DeleteFileOrDirectoryHard(wxsFile, throwOnFailure: false); - IoUtil.DeleteFileOrDirectoryHard(objFile, throwOnFailure: false); - } - progress(100); - - } - protected override string[] GetMainExeSearchPaths(string packDirectory, string mainExeName) { return [ diff --git a/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackOptions.cs b/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackOptions.cs index fc54eac3..e9e1bc75 100644 --- a/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackOptions.cs +++ b/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackOptions.cs @@ -39,7 +39,6 @@ public class WindowsPackOptions : WindowsReleasifyOptions, INugetPackCommand, IP public string MsiLogo { get; set; } public bool BuildMsi { get; set; } - public bool BuildMsiDeploymentTool { get; set; } public string MsiVersionOverride { get; set; } } diff --git a/src/vpk/Velopack.Packaging/HelperFile.cs b/src/vpk/Velopack.Packaging/HelperFile.cs index c4ad0c44..4ca57f5a 100644 --- a/src/vpk/Velopack.Packaging/HelperFile.cs +++ b/src/vpk/Velopack.Packaging/HelperFile.cs @@ -67,14 +67,6 @@ public static class HelperFile public static string StubExecutablePath => FindHelperFile("stub.exe"); - [SupportedOSPlatform("windows")] - public static string WixTemplatePath => FindHelperFile("wix\\template.wxs"); - [SupportedOSPlatform("windows")] - public static string WixCandlePath => FindHelperFile("wix\\candle.exe"); - - [SupportedOSPlatform("windows")] - public static string WixLightPath => FindHelperFile("wix\\light.exe"); - [SupportedOSPlatform("windows")] public static string WixPath => FindHelperFile($"wix\\{WixVersion}\\wix.exe"); diff --git a/src/vpk/Velopack.Vpk/Commands/Packaging/WindowsPackCommand.cs b/src/vpk/Velopack.Vpk/Commands/Packaging/WindowsPackCommand.cs index f279ee84..c9d40034 100644 --- a/src/vpk/Velopack.Vpk/Commands/Packaging/WindowsPackCommand.cs +++ b/src/vpk/Velopack.Vpk/Commands/Packaging/WindowsPackCommand.cs @@ -38,7 +38,6 @@ public class WindowsPackCommand : PackCommand public bool BuildMsi { get; private set; } - public bool BuildMsiDeploymentTool { get; private set; } public string MsiVersionOverride { get; private set; } @@ -92,10 +91,6 @@ public class WindowsPackCommand : PackCommand this.AreMutuallyExclusive(signTemplate, signParams, azTrustedSign); - AddOption((v) => BuildMsiDeploymentTool = v, "--msiDeploymentTool") - .SetDescription("Compile a .msi machine-wide deployment tool.") - .SetHidden(); - AddOption((v) => BuildMsi = v, "--msi") .SetDescription("Compile a .msi machine-wide bootstrap package."); diff --git a/test/Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj b/test/Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj index acf8d7bc..56d9682c 100644 --- a/test/Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj +++ b/test/Velopack.Packaging.Tests/Velopack.Packaging.Tests.csproj @@ -13,12 +13,7 @@ - - - - - ..\..\vendor\wix\Microsoft.Deployment.WindowsInstaller.dll - + diff --git a/test/Velopack.Packaging.Tests/WindowsPackTests.cs b/test/Velopack.Packaging.Tests/WindowsPackTests.cs index 759aa00e..c57fdcfb 100644 --- a/test/Velopack.Packaging.Tests/WindowsPackTests.cs +++ b/test/Velopack.Packaging.Tests/WindowsPackTests.cs @@ -2,7 +2,6 @@ using System.Globalization; using System.Runtime.Versioning; using System.Xml.Linq; -using Microsoft.Deployment.WindowsInstaller; using Microsoft.Win32; using NuGet.Packaging; using Velopack.Compression; @@ -13,6 +12,7 @@ using Velopack.Util; using Velopack.Vpk; using Velopack.Vpk.Logging; using Velopack.Windows; +using WixToolset.Dtf.WindowsInstaller; namespace Velopack.Packaging.Tests; @@ -645,7 +645,7 @@ public class WindowsPackTests var runner = GetPackRunner(logger); await runner.Run(options); - string msiPath = Path.Combine(tmpReleaseDir, $"{id}-win-DeploymentTool.msi"); + string msiPath = Path.Combine(tmpReleaseDir, $"{id}-win.msi"); Assert.True(File.Exists(msiPath)); using Database db = new Database(msiPath); diff --git a/vendor/wix/Microsoft.Deployment.Resources.dll b/vendor/wix/Microsoft.Deployment.Resources.dll deleted file mode 100644 index 1ce0ed6d..00000000 Binary files a/vendor/wix/Microsoft.Deployment.Resources.dll and /dev/null differ diff --git a/vendor/wix/Microsoft.Deployment.WindowsInstaller.dll b/vendor/wix/Microsoft.Deployment.WindowsInstaller.dll deleted file mode 100644 index 742169d2..00000000 Binary files a/vendor/wix/Microsoft.Deployment.WindowsInstaller.dll and /dev/null differ diff --git a/vendor/wix/WixNetFxExtension.dll b/vendor/wix/WixNetFxExtension.dll deleted file mode 100644 index 8d8b60e9..00000000 Binary files a/vendor/wix/WixNetFxExtension.dll and /dev/null differ diff --git a/vendor/wix/candle.exe b/vendor/wix/candle.exe deleted file mode 100644 index 61be7aae..00000000 Binary files a/vendor/wix/candle.exe and /dev/null differ diff --git a/vendor/wix/candle.exe.config b/vendor/wix/candle.exe.config deleted file mode 100644 index 91db2350..00000000 --- a/vendor/wix/candle.exe.config +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/wix/darice.cub b/vendor/wix/darice.cub deleted file mode 100644 index dab45677..00000000 Binary files a/vendor/wix/darice.cub and /dev/null differ diff --git a/vendor/wix/light.exe b/vendor/wix/light.exe deleted file mode 100644 index 5874d3a0..00000000 Binary files a/vendor/wix/light.exe and /dev/null differ diff --git a/vendor/wix/light.exe.config b/vendor/wix/light.exe.config deleted file mode 100644 index 91db2350..00000000 --- a/vendor/wix/light.exe.config +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/wix/template.wxs b/vendor/wix/template.wxs deleted file mode 100644 index d097a9f8..00000000 --- a/vendor/wix/template.wxs +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/wix/wconsole.dll b/vendor/wix/wconsole.dll deleted file mode 100644 index b5cc7a94..00000000 Binary files a/vendor/wix/wconsole.dll and /dev/null differ diff --git a/vendor/wix/winterop.dll b/vendor/wix/winterop.dll deleted file mode 100644 index f0897060..00000000 Binary files a/vendor/wix/winterop.dll and /dev/null differ diff --git a/vendor/wix/wix.dll b/vendor/wix/wix.dll deleted file mode 100644 index 606abfdb..00000000 Binary files a/vendor/wix/wix.dll and /dev/null differ