[英]adapting X86 Directory structure for X64 system in WIX
我在獲取WIX安裝程序以檢測它是否在X86或X64操作系統上運行時遇到問題。 它需要檢測到它,因為目錄結構需要一些小的改動。 但是我使用的代碼生成以下錯誤:
沒有打開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並采取相應措施即可。
提前致謝,
您似乎希望這部分生成一個打開的Directory元素:
<?if $(sys.BUILDARCH)=x64?>
<Directory Id="ProgramFilesFolder(x86)">
<?else?>
<Directory Id="ProgramFilesFolder">
<?endif?>
但是,WiX的處理指令不能像C預處理器那樣工作,因此仍需要平衡您的元素以使XML有效。 處理XML時,WiX將忽略條件條件一側的內容。 我已經看到人們<?define ?>
兩種方法之一的變量,然后在單個非條件Directory
元素中引用該變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.