2013-02-24 64 views
1

我有一個基於Wix的安裝程序,它安裝兩個可執行文件。我想我自己的自定義文件類型關聯到兩個可執行文件Wix:爲單個文件類型創建多個關聯

<Component Id="A.exe" Guid="{GUID}"> 
    <File Id="A.exe" Name="A.exe" Source="../A.exe" KeyPath="yes" Checksum="yes"/> 
    <ProgId Id="cfgfilerun" Description="Config file for A" Advertise="no" > 
     <Extension Id="cfg" ContentType="application/text" Advertise="no" > 
      <Verb Id="Run" Command="Run" TargetFile="A.exe" Argument='"%1"' /> 
     </Extension> 
    </ProgId> 
</Component> 

後來

<Component Id="B.exe" Guid="{GUID}"> 
    <File Id="B.exe" Name="B.exe" Source="../B.exe" KeyPath="yes" Checksum="yes"/> 
    <ProgId Id="cfgfileopen" Description="Config file" Advertise="no" > 
     <Extension Id="cfg" ContentType="application/text" Advertise="no" > 
      <Verb Id="Open" Command="Open" TargetFile="B.exe" Argument='"%1"' /> 
     </Extension> 
    </ProgId> 
</Component> 

不起作用。怎麼修?行爲是隻有一個擴展名顯示和工作方式,一個爲B.如果我註釋掉B的進程id,然後我得到了一個A.

回答

0

通過把兩個文件在同一組件固定它:

<Component Id="A.exe" Guid="{GUID}"> 
    <File Id="A.exe" Name="A.exe" Source="../A.exe" KeyPath="yes" Checksum="yes"/> 
    <File Id="B.exe" Name="B.exe" Source="../B.exe" Checksum="yes"/> 
    <ProgId Id="cfgfilerun" Description="Config file for A" Advertise="no" > 
     <Extension Id="cfg" ContentType="application/text" Advertise="no" > 
      <Verb Id="Run" Command="Run" TargetFile="A.exe" Argument='"%1"' /> 
      <Verb Id="Open" Command="Open" TargetFile="B.exe" Argument='"%1"' /> 
     </Extension> 
    </ProgId> 
</Component> 

我查看了從msiexec記錄的調試輸出,它之前的cfg文件看起來破損了。我認爲這是Wix中的一個錯誤,您需要將所有內容都放在同一個組件中。一般來說,我對Wix總體感到有點失望,但是我再也沒有使用任何比賽。也許所有的Windows安裝程序都是完全的惡意軟件。