使用WiX引导程序安装Winforms应用程序的先决条件

时间:2018-11-06 00:25:01

标签: winforms wix ghostscript

我创建了一个C. WinForms应用程序,该应用程序依赖于.NET Framework 4.6.1版和GhostScript 9.2.1(32位Windows)。我为WinForms应用程序制作了一个简单的Windows Installer(.msi文件),但是GhostScript库拒绝安装。因此,我决定使用WiX引导程序制作捆绑安装程序。

在bootstrapper项目中,我打包了以前的GhostScript exe安装程序和简单的msi安装程序。我想我在引导程序的前几行中也照顾了.NET框架。

现在,在使用Bootstrap安装程序时,我仍然遇到问题。问题是安装跳过了msi安装程序。如何使Bootstrap安装成功完成?

这是引导程序项目的XML:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Bundle Name="Bootstrapper1" Version="1.0.0.0" Manufacturer="POD" UpgradeCode="390cbc0b-980b-4f35-a9de-a11228f75b69">
        <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <PayloadGroup Id="NetFx461RedistPayload">
        <Payload Name="redist\NDP461-KB3102436-x86-x64-AllOS-ENU.exe"
                 SourceFile="C:\Users\Admin\Downloads\NDP461-KB3102436-x86-x64-AllOS-ENU.exe"/>
    </PayloadGroup>

        <Chain>
            <!-- TODO: Define the list of chained packages. -->
            <!-- <MsiPackage SourceFile="path\to\your.msi" /> -->
      <PackageGroupRef Id="NetFx461Web"/>
      <ExePackage Id="Ghostscript_32_bit_Version_9.2.1"
                  Cache="yes"
                  Compressed="yes"
                  PerMachine="yes"
                  Permanent="yes"
                  Vital="yes"
                  SourceFile="C:\Users\Admin\Downloads\gs921w32new.exe"
                  InstallCommand="/passive /norestart" />
      <MsiPackage Id="POD_Measuring_Tool"
                  Cache="yes"
                  Compressed="yes"
                  Permanent="yes"

                  Vital="yes"
                  SourceFile="C:\Users\Admin\Documents\POD\Workspace Folder\c# projects\6lumber\toolPOD\Debug\toolPOD.msi" />
        </Chain>
    </Bundle>
</Wix>

我引用了WixBalExtension和WixNetFxExtension,而msi文件和ghostscript exe是从我的计算机中获取的。

1 个答案:

答案 0 :(得分:0)

  

问题是安装跳过了msi安装程序。

这可能表明该产品已经安装。 MsiPackage将通过检查注册表中的产品代码来自动检测是否已安装msi。

MsiPackage/@Permanent属性还意味着在卸载Bootstrapper时不会删除您的产品-因此,请检查您是否手动删除了msi,并使用-l logfile.txt开关进行日志记录帮助。