WiX将x86和x64 msi引导到单个无UI引导程序中

Mic*_*ker 10 installer wix bootstrapper burn 32bit-64bit

我有我的安装程序.msi的x64和x86版本,并希望发送一个只检查机器架构并运行x86/x64 MSI的可执行文件.MSI基本相同,它们安装相同的AnyCPU文件,我将其捆绑在一个共享的.cab文件中,以免使安装程序的大小加倍.

到目前为止,我已经尝试过WiX Burn,它会弹出一个我不想要的GUI(我只想使用MSI GUI),我尝试通过/ silent标志禁用刻录GUI - 这会将此标志传播到MSI所以它禁用了MSI的所有GUI(不是我想要的).

当我说没有默认的No-GUI版本的Burn bootstrapper时,我认为我是正确的,要创建一个你必须自己编辑源代码?这听起来像一个巨大的缺失功能?

我也试过DotNetInstaller,它有一套令人困惑的用户界面问题.我也尝试过setupbld,它不支持带有外部驾驶室的MSI.

Hue*_*mac 9

对于体系结构检测,您可以使用MsiPackage元素中的InstallCondition属性.

简单地试试吧:

<MsiPackage SourceFile="..\Example\bin\Release\x86\example.msi" Compressed="no" InstallCondition="NOT VersionNT64" />
<MsiPackage SourceFile="..\Example\bin\Release\x64\example.msi" Compressed="no" InstallCondition="VersionNT64" />
Run Code Online (Sandbox Code Playgroud)

资料来源:http: //wix.sourceforge.net/manual-wix3/wix_xsd_msipackage.htm


jac*_*ous -4

您可以使用自定义操作和刻录内置变量来检查您是在 X86 还是 x64 上运行。在此基础上,您可以执行/安排操作列表。

<InstallExecuteSequence>
   <Custom Action="Windows32bitInstall" After="InstallFiles">NOT VersionNT64</Custom>
   <Custom Action ="Windows64bitInstall" After="InstallFiles" >VersionNT64</Custom>
   <Custom Action="InstallHelp" After="Windows64bitInstall">NOT Installed</Custom>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

这将以相同的高度执行。

<CustomAction Id="InstallHelp" Directory="ProgramFilesFolder"
          Execute="deferred" Impersonate="no" Return="ignore"
          ExeCommand="[HELPDIR]\help.exe /log" />
Run Code Online (Sandbox Code Playgroud)