0
我遇到了WIX安装程序检测它是否在X86或X64操作系统上运行的问题。它需要检测它,因为目录结构需要一些小的修改。但是我使用的代码生成了以下错误:适用于WIX中的X64系统的X86目录结构
没有打开XML开始标记。
的代码我使用:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="WindowsVolume">
<Directory Id="Data" Name="Data" />
<Directory Id="wheels" Name="wheels"/>
<?if $(sys.BUILDARCH)=x64?>
<Directory Id="ProgramFilesFolder(x86)">
<?else?>
<Directory Id="ProgramFilesFolder">
<?endif?>
<Directory Id="ActiveXControlPad" Name="ActiveX Control Pad" >
<Directory Id="Setup" Name="Setup"/>
<Directory Id="Refdocs" Name="Refdocs" />
</Directory>
<Directory Id="INSTALLFOLDER" Name="HM Machine Software" />
<Directory Id="SPOKE" Name="SPOKE" />
<Directory Id="MMI" Name="MMI" >
<Directory Id="images" Name="images" />
</Directory>
<Directory Id="CommonFilesFolder" Name="CommonFilesFolder">
<Directory Id="microsoftShared" Name="microsoft shared">
<Directory Id="DAO" Name="DAO" />
<Directory Id="SystemFolder">
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
我试图使用if语句,来检测构建架构并相应地调整ProgramFilesFolder。因为当它检测到X64时,它应该将该目录调整为ProgramFiles(x86),并且应该从那里放置该结构中的以下导向器。
它是什么我做错了?我不需要灵活的解决方案。它只需要检测x86/x64并采取相应的行动。
在此先感谢,
为什么wix中的每件事都会更加困难。它真正的快速变得非常烦人。 anayway,我该怎么定义?像<?定义PlatformProgramFilesFolder =“Program Files(x86)”?>?以及如何将其引用到目录元素?我已经一直在尝试萌芽的事情,但它不起作用。 –
我似乎有参考工作,但它总是选择错误的(32bit的)。所以我认为它不读取检测它是否是64位操作系统的系统变量。有什么建议么? –