WiX - 从磁盘启动程序?

时间:2012-05-23 16:07:29

标签: c# installer wix

我有一个可用的WiX 3.5安装程序。安装成功后,我知道如何让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?

1 个答案:

答案 0 :(得分: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所在的地方。如果找不到该文件,您可以考虑添加条件以执行有用的操作。