簡體   English   中英

在WIX中為X64系統調整X86目錄結構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM