How to deploy 64-bit and a 32-bit Windows Installe

2019-02-04 13:27发布

I need to deploy a software setup targeting both, Windows 64bit and 32bit. I have two separate Windows Installer databases (created with WiX) for each platform, and I am using dotNetInstaller to combine both into a single installation bootstrapper executable.

I'm currently using version 1.10 of dotNetInstaller and set auto_close_if_installed=True, because I want to comletely hide the bootstrapper from the user. Still, dotNetInstaller insists on displaying a sill progress bar window while my installer is running, and doesn't really auto-close. The user needs to confirm a dialog box telling him that the application was successfully installed. But the real deal-breaker is that it doesn't support Windows 8 (yet).

Upgrading to a later version of dotNetInstaller seems to break auto_close_if_installed, so it's even worse.

So my question is: what is the current state of the art to deploy both setups in a single executable. Would Wix Burn be an option?

I know that in an ideal world, I simply provide my customers with separate installers for either platform. But they happen to be completely unaware of such subtleties, most of them don't even know what platform they are using.

2条回答
【Aperson】
2楼-- · 2019-02-04 14:02

You can do it in a single Wix via Conditions and Features.

<Feature Id='X86' Level='1'>
  <ComponentRef Id='X86Feature1' />
  <Condition Level="1">NOT VersionNT64</Condition>
</Feature>
查看更多
【Aperson】
3楼-- · 2019-02-04 14:10

I would definitely use Burn in this scenario. Something akin to the following:

<Wix>
  <Bundle...>
    <BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.HyperlinkLicense' />

    <Chain>
      <MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' />
      <MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' />
    </Chain>
  </Bundle>
 </Wix>

This is exactly one of the scenarios Burn was designed to handle.

查看更多
登录 后发表回答