C# WiX-从磁盘启动程序?

C# WiX-从磁盘启动程序?,c#,installation,wix,C#,Installation,Wix,我有一个工作的WIX3.5安装程序。成功安装后,我知道如何让WiX启动刚刚安装的应用程序 但是,我还想在安装CD时附带一个从CD本身运行的小应用程序——我希望在主应用程序安装结束时弹出这个窗口。第二个应用程序必须从CD运行,这一点很重要 我的第一次尝试(在安装结束时启动了主应用程序)是: <UI> <!-- <UIRef Id="WixUI_Minimal" /> --> <Publish Dialog="ExitDialog"

我有一个工作的WIX3.5安装程序。成功安装后,我知道如何让WiX启动刚刚安装的应用程序

但是,我还想在安装CD时附带一个从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" />

WIXUI_EXITDIALOGOPTIONALCHECKBOX=1且未安装

但是,我想将其更改为启动类似于“D:\MyTinyApp.exe”的程序。如何使用WiX寻址源CD?

试一试。假设要执行的文件与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所在的位置。如果文件找不到,你可以考虑添加一个条件来做一些有用的事情。如果我尝试这段代码,我会得到“Property/@Id属性的值,'WixShellExecTarget',不能包含小写字符。因为这是一个搜索属性,它也必须是一个公共属性。这意味着Property/@Id值必须完全是大写的。”但是如果我将Id和其他所有内容更改为大写,则会出现相同的错误。有什么想法吗?