我有一个WiX安装程序,用于安装x86应用程序。 但是,它需要为单个组件写入到x64区域的注册表中。 为了实现这一点,我需要使用以下代码:
<Component Id=foo"..." Win64="yes">
<Condition>VersionNT64</Condition>
<RegistryValue
Root="HKLM" Key="SOFTWARE\Microsoft\...."
....
</Component>
.....
<Feature Id='MyFeature' Level='0'>
<ComponentRef Id='foo' />
<Condition Level='1'>VersionNT64</Condition>
</Feature>
当我在x64系统上运行安装程序时,这个方法很好用。但是当我在x86系统上运行(虽然我不希望此组件被安装),我会遇到以下错误:
SchedSecureObjectsRollback_x64 3: SchedSecureObjectsRollback 4: C:\Windows\Installer\MSIA98C.tmp
MSI (c) (84:80) [20:31:05:701]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. ............
如果我删除Win64特性,一切都可以正常工作。然而,对于x64系统,我确实需要Win64属性。如果有任何想法,感激不尽,谢谢!