Winapi 修改existinig WIX 2脚本以添加64位组件

Winapi 修改existinig WIX 2脚本以添加64位组件,winapi,installation,wix,windows-installer,Winapi,Installation,Wix,Windows Installer,几年前,我有一个用WIX2编写的安装程序脚本。现在我需要添加两个64位组件。一个64位DLL复制到system32文件夹,另一个b4位EXE复制到程序文件 安装程序需要创建注册表项。目前,它使用一个元素来写入密钥,并使用一个自定义操作(在32位MSI dll中)来写入序列号 该密钥必须可由64位EXE访问 是否可以在一个MSI中执行此操作?另外,如何在系统为64位时创建仅复制64位文件的条件?msi不允许在同一msi中安装32位和64位组件。您必须为这两种体系结构创建单独的msi。为了安装64位

几年前,我有一个用WIX2编写的安装程序脚本。现在我需要添加两个64位组件。一个64位DLL复制到system32文件夹,另一个b4位EXE复制到程序文件

安装程序需要创建注册表项。目前,它使用一个元素来写入密钥,并使用一个自定义操作(在32位MSI dll中)来写入序列号

该密钥必须可由64位EXE访问


是否可以在一个MSI中执行此操作?另外,如何在系统为64位时创建仅复制64位文件的条件?

msi不允许在同一msi中安装32位和64位组件。您必须为这两种体系结构创建单独的msi。

为了安装64位组件,msi需要标记为64位-否则,文件系统和注册表路径将被重定向。除了添加64位属性外,32位和64位软件包应显示为不同的产品;i、 e.您应该创建新产品和升级代码

我认为使用WiX 2创建64位MSI可能会有问题,因此您可能需要升级到WiX 3.x

由于32位和64位Windows需要两个MSI文件,因此可以通过不将32位文件包含在64位安装程序中,轻松防止在64位PC上安装32位文件。如果x86和x64都需要一个安装程序可执行文件,则需要使用引导程序来选择要运行的MSI。我不知道WiX发行版的burn.exe是否能做到这一点


接近源布局的一种方法是使用一个带条件的主WiX文件,根据目标体系结构选择要构建的功能,然后使用特定于体系结构的模块进行链接。您可以在中找到此类解决方案的示例。请注意,它只支持x86和x64,不支持安腾(又称Intel64)。

更准确地说,它不允许在32位MSI中安装64位组件。它愿意在64位MSI中安装这两种组件,但它们不会在32位系统上运行。布鲁斯,我想你还没有那个示例代码吧?上面的链接现在已断开。詹姆斯:代码已移动到BitBucket,现在可以在上找到。