gpt4 book ai didi

wix - 启动条件以确保在 64 位系统上使用 64 位安装程序

转载 作者:行者123 更新时间:2023-12-04 11:43:27 24 4
gpt4 key购买 nike

我的发射条件怎么了?它应该阻止 x86 安装程序在 64 位系统上运行,但它似乎没有效果。

<!-- Launch Condition to check that x64 installer is used on x64 systems -->
<Condition Message="64-bit operating system was detected, please use the 64-bit installer.">
<![CDATA[VersionNT64 AND ($(var.Win64) = "no")]]>
</Condition>
var.Win64源自 MSBuild 变量,如下所示:
  <!-- 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 ?>

我想解决我的问题,但我也有兴趣了解解决此类问题的策略。

最佳答案

根据LaunchCondition table定义:

Expression that must evaluate to True for installation to begin.



您的条件由两部分组成:第一个在安装时评估,另一个在构建时评估。因此,对于 x86 包,条件的第二部分将在构建时评估为“no”=“no”,这显然在安装时给出 True。第一部分 - VersionNT64 - 在 x64 机器上定义(因此为 True)。这就是为什么整个条件为 True 并开始安装的原因。

您可以按如下方式重写您的条件:
<Condition Message="64-bit operating system was detected, please use the 64-bit installer.">
<?if $(var.Win64) = "yes" ?>
VersionNT64
<?else?>
NOT VersionNT64
<?endif?>
</Condition>

因此,在 64 位包中,条件将是 VersionNT64 ,将通过并开始安装。形式 x86 包的条件将是 NOT VersionNT64 ,这显然会在 64 位上失败,但在 32 位上开始。

关于wix - 启动条件以确保在 64 位系统上使用 64 位安装程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7033303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com