我假设是。
我有x86版本的安装程序,我正在为x64版本构建安装程序。
我正试图找出问题所在。到目前为止,它看起来非常简单。我觉得他们应该是不同的UpgradeCodes。我需要在条件中检查VersionNT64属性以验证安装。
<Condition Message="This package can be installed only on an x64 version of Windows.">
VersionNT64
</Condition>
还有其他提示吗?
答案 0 :(得分:5)
我会继续说是的,你应该为两个安装程序提供不同的升级代码,除非你特别需要它们是相同的。
我可以想到匹配升级代码可能有用的一种情况是,如果您之前只发布了能够在32位和64位操作系统上安装的x86版本。在这种情况下,使用具有相同升级代码的x64版本将允许您轻松处理从旧版x86升级到64位操作系统上的新x64版本。
编辑:
我忘了提到你也可以使用“Msix64”属性来确定比特度。也没有必要在x64版本中添加安装条件,因为尝试在32位操作系统中安装它会导致Windows Installer服务出现错误消息。
目前我只在x86版本的安装程序中使用一个条件
<Condition Message="You are attempting to install the x86 version in a 64-bit OS">NOT Msix64</Condition>
答案 1 :(得分:0)
从我的回忆中我可以说x86版本的代码将基于某些80x86及更高版本处理器上用于16至32位版本的代码,而x64将是64位实现的不同代码,因为它是x64而不是IA-64或Intel64代码。加载程序会有所不同,您可能需要检查BIOS中的值的状态(如果存在)和一些环境变量,以确定计算机上是否正在运行32位或64位模式,包括正在开发加载程序的模式它支持一种或两种模式。