通用安装程序在64位和32位系统中设置注册表值?

时间:2017-08-17 05:55:26

标签: installation wix windows-installer install wix3.6

我的wix应用程序中有一个注册表值设置器,如下所示

<Component Id="EngageAssistanceAutostart" Guid="f9e92a81-506d-4fe9-836b-564420a98ea1" Win64="yes">
    <RegistryValue Id="crimsonwatchdog" Root="HKLM" Action="write"
           Key="Software\Microsoft\Windows\CurrentVersion\Run"
           Name="Crimson watch dog"
           Value="[INSTALLFOLDER]Crimson.Watchdog.exe"
           Type="string" />

如您所见,要在Windows 64位系统中编辑注册表,我一直保持win64 =“是”

我还必须设置patform =“x64”

  <Package InstallerVersion="200" Platform="x64" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" AdminImage="yes" />

如果我不这样做,我将无法设置reg。 64位系统的价值。 如果我这样做,这个安装程序将无法在32位系统中工作。

是否有任何解决方案可以让我在64位和32位系统中设置注册表值?

1 个答案:

答案 0 :(得分:1)

需要将平台设置为x64以在64位配置单元中创建注册表。 组件将决定创建此注册表的位置。 在您的情况下,因为它只是RUN键,您应该创建未设置为x64的单个组件。

MSI将为此类组件做什么。

在x86计算机上,将在标准位置创建注册表项。 在x64机器上,将在Wow6432Node下创建注册表项,但对于Run,这应该不是问题。