【发布时间】:2014-06-12 16:34:24
【问题描述】:
我正在使用 WIX 3.8,并且我编写了一个 32 位控制台应用程序,我需要将它推广到 32 位和 64 位机器 - 目标机器类型有多种组合
Q1 - 是否有涵盖所有领域的模板,例如
x86/x64
Windows XP 与 Vista/7/8(安全模型 - 管理员与非管理员)
perMachine (HKLM) 与 perUser (HKCU)
我已就第三点提出建议 - 我只会发布 perMachine 安装程序,但是当我写入注册表 (HKLM) 时,安装程序会混淆将内容写入 HKLM 的位置(注意我可以向 HKCU 写入 OK,但这是因为安装程序在我的 Windows 8 机器上默认以非管理员身份执行)-例如,我该如何概括-我已经尝试过
....
<Package...InstallScope="perMachine" />
...
<Feature Id='MainFeature' Level='1'>
<Component Directory='ApplicationFolder' Win64='yes'>
<Condition>VersionNT64</Condition>
<RegistryValue Root='HKLM' Key='SOFTWARE\xxxx\InstallProperties' Name='PidKey64' Value='[PIDKEY]' Type='string' />
<RemoveFolder Id='CleanupPidKey64' On='uninstall' />
</Component>
<Component Directory='ApplicationFolder'>
<RegistryValue Root='HKLM' Key='SOFTWARE\xxxx\InstallProperties' Name='PidKey' Value='[PIDKEY]' Type='string' />
<RemoveFolder Id='CleanupPidKey' On='uninstall' />
</Component>
</Feature>
...
但是上面的失败(这个包包含64位组件'...'但是模板摘要属性不包含Intel64或x64)因为我没有
平台="x64"
在包标签中。
Q2 - 但是,如果我有一个带有 x64 属性的包标签,则不是仅适用于 x64 机器的安装程序,因此在同一个安装程序中为 x86 提供服务是多余的。
上面还有一个注册表项——还有一个保存
<Property Id="PIDKEY">
<RegistrySearch Id="SavePidKey" Root="HKLM"
Key="SOFTWARE\xxxx\InstallProperties"
Name="PidKey" Type="raw" />
</Property>
Q3 - 保存是否需要类似的处理?
【问题讨论】:
标签: windows-7 x86 wix 64-bit windows-installer