2012-05-23 62 views
1

我有一個工作的WiX 3.5安裝程序。安裝成功後,我知道如何讓WiX啓動剛剛安裝的應用程序。WiX - 從磁盤啓動程序?

但是,我也想將我的安裝光盤放入一個從CD本身運行的小應用程序 - 我希望在主應用程序安裝結束時彈出。第二個應用程序從CD運行很重要。

我第一次嘗試 - 這是 - 這在安裝結束時推出的主要應用:

<UI> 
    <!-- <UIRef Id="WixUI_Minimal" /> --> 
    <Publish Dialog="ExitDialog" 
      Control="Finish" 
      Event="DoAction" 
      Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish> 
</UI> 
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch MyInstalledApp" /> 
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" /> 

<Property Id="WixShellExecTarget" Value="[#MyInstalledApp.exe]" /> 
<CustomAction Id="LaunchApplication" 
    BinaryKey="WixCA" 
    DllEntry="WixShellExec" 
    Impersonate="yes" /> 

不過,我想改變這個發動類似「d:\ MyTinyApp.exe」,而不是。如何使用WiX來解決源CD?

回答

2

給這個鏡頭。假設要執行是在同一位置的MSI文件是文件,你必須去先找到它:

<Property Id='WixShellExecTarget'> 
    <DirectorySearch Id='DirSearch' Path='[SOURCEDIR]' Depth='0'> 
     <FileSearch Id='FileSearch' Name='MyFileToRun.exe'/> 
    </DirectorySearch> 
</Property> 
<CustomAction Id="LaunchApplication" 
    BinaryKey="WixCA" 
    DllEntry="WixShellExec" 
    Impersonate="yes" /> 

的[SourceDir]是關鍵。它應該是MSI的地方。如果找不到文件,您可以考慮添加條件以執行一些有用的操作。

+0

感謝您的回覆,並對此抱歉。如果我嘗試這段代碼,我會得到「Property/@ Id屬性值WixShellExecTarget不能包含小寫字符,因爲這是一個搜索屬性,它也必須是一個公共屬性,這意味着Property/@ Id值必須是完全大寫。「但是,如果我將Id和其他所有內容更改爲大寫,則會出現相同的錯誤。有任何想法嗎? – Sugrue