我使用WiX Toolset 3.8与Visual Studio进行Votive集成。我的产品需要安装在32位和64位系统上。两者之间唯一真正的区别是一些64位COM注册,当然还有ProgramFiles
vs ProgramFiles (x86)
有趣和游戏。
我一直在遵循Microsoft的建议(我现在无法找到)为32位和64位系统创建单独的安装程序。但是,最近我一直在想这是否仍然是最好的做法,或者现在是否有更好的方法?
我从同一个WiX源创建我的安装程序。我一直在做的是为“任何CPU”构建我的所有程序集。但是为WiX安装程序项目提供了单独的x86和x64配置。我有一个config.wxi
为正在构建的目标设置正确的路径等,我将它包含在我的所有.wxs文件中。它遵循以下几点:
<?xml version="1.0" encoding="utf-8"?>
<Include>
<!-- User Configuration - you must ensure all these variables have correct values for your project -->
<?define InstallName = "Project Name" ?>
<?define Manufacturer = "My Company" ?>
<!-- End of User Configuration - do not edit anything beyond this point -->
<!-- Define platform-specific names and locations -->
<?if $(var.Platform) = x64 ?>
<?define ProductName = "$(var.InstallName) (x64)" ?>
<?define Win64 = "yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?define PlatformCommonFilesFolder = "CommonFiles64Folder" ?>
<?else ?>
<?define ProductName = "$(var.InstallName) (x86)" ?>
<?define Win64 = "no" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?define PlatformCommonFilesFolder = "CommonFilesFolder" ?>
<?endif ?>
<!-- Set installer version based on the file version of the main assembly. -->
<?define ProductVersion="!(bind.FileVersion.filSomeKeyFileFromTheProject)"?>
</Include>
到目前为止,我还没有看过Burn(引导程序构建器),但在我正在进行的项目中,我想要这样做。因此,现在是审查社区认为最佳做法的时候了。现在人们如何处理双x86 / x64安装?
答案 0 :(得分:4)
没有任何改变:MSI仍然不支持32位软件包中的64位组件。使用Burn捆绑包,您可以将这两个包组合起来,并从用户的角度看它看起来像一个。