![](/img/trans.png)
[英]Visual Studio Crystal Reports on 64 and 32 bit installer (advance installer)
[英]Make Installer for Both 64 and 32 bit
我使用WIX
为DLL创建MSI安装程序。
我想制作一个安装程序,该程序可以在64位平台上和32位平台上安装该程序。
我必须定义的注册表项对于32位和64位是不同的。
如果是64位平台,这是我必须创建密钥的条目:
H_KEY_LOCALMACHINE\Software\Wow6432Node\Sparx Systems\EAAddins\AdminAddins
如果是32位平台,这是我必须在其中创建密钥的条目:
H_KEY_LOCALMACHINE\Software\Sparx Systems\EAAddins\AdminAddins
这是在代码中定义注册表项的方式:
<Component Id="AdminAddinsRegEntries" Guid="8777A7AB-B147-4850-9F25-65011306E9C6" >
<RegistryKey Root="HKLM" Key="Software\Wow6432Node\Sparx Systems\EAAddins\AdminAddins" Action="createAndRemoveOnUninstall">
<RegistryValue Type="string" Value="AdminAddins.MyClass" />
</RegistryKey>
</Component>
如何添加条件以避免两个不同的安装程序?
您只需要制作一个32位安装程序包。 就这样。 系统通过注册表重定向器将为您处理单独的32/64位注册表视图的所有详细信息。
当将32位软件包安装在64位系统上时,将由32位进程处理,并且需要进行注册表重定向。 重定向器将安排将密钥写入注册表的32位视图中。
您不应该对Wow6432Node
字符串进行硬编码。 万一您错过了这一点,让我再说一遍。 您不应该对Wow6432Node
字符串进行硬编码。
因此,总结一下:
Software\\Sparx Systems\\EAAddins\\AdminAddins
作为注册表项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.