MSI安装程序:如何条件检测ARM平台?
MSI安装器按Windows平台(x86/x64/ARM)条件选择文件
核心思路
利用MSI内置的系统属性判断目标平台,给对应平台的文件组件设置安装条件,实现自动选择安装。
关键平台判断属性
VersionNT64:仅在64位系统(x64/ARM64)中存在ARM64:仅在ARM64架构的Windows系统中存在(需Windows Installer 5.0+支持,Windows 10及以上默认满足)
三个平台的条件表达式
- x86平台:
NOT VersionNT64(32位系统无VersionNT64属性) - x64平台:
VersionNT64 AND NOT ARM64 - ARM64平台:
ARM64
具体配置示例(以WiX工具为例)
将三个文件分别绑定到带条件的组件中:
<!-- x86专属文件组件 --> <Component Id="X86Component" Guid="*" Win64="no"> <File Source="YourPath\x86\target.dll" /> <Condition>NOT VersionNT64</Condition> </Component> <!-- x64专属文件组件 --> <Component Id="X64Component" Guid="*" Win64="yes"> <File Source="YourPath\x64\target.dll" /> <Condition>VersionNT64 AND NOT ARM64</Condition> </Component> <!-- ARM64专属文件组件 --> <Component Id="ARM64Component" Guid="*" Win64="yes"> <File Source="YourPath\arm64\target.dll" /> <Condition>ARM64</Condition> </Component>
其他打包工具通用操作
如果使用InstallShield等工具,只需:
- 为三个文件分别创建独立组件
- 给每个组件设置对应的条件表达式(在组件的「条件」字段中填写)
- 确保64位组件(x64/ARM64)的「64位组件」选项处于勾选状态
内容的提问来源于stack exchange,提问作者lwa
相关产品推荐
相关产品推荐

