如何在Exit Dialog上启动使用WiX Installer创建的Internet快捷方式?

时间:2015-02-05 07:36:57

标签: web wix installer shortcut

我的WiX安装程序基本上是在IIS中创建应用程序池和网站,并指向我提到的MVC项目目录。

目前的代码能够创建Desktop&开始菜单快捷方式。

我需要一个配置,其中应该启动快捷方式,并在完成安装时打开网站。

以下是我的代码段:

1)定义的目录

    <Directory Id="ProgramMenuFolder">
        <Directory Id="ApplicationProgramsFolder"  Name="My Website"></Directory>
    </Directory>
<Directory Id="DesktopFolder"/>

2)开始菜单&amp;桌面快捷方式

<!--Start Menu & Desktop Shortcut-->
  <Fragment>
    <DirectoryRef Id="ApplicationProgramsFolder">
      <Component Id="MyApplicationShortcuts" Guid="{371A9D20-AD52-4A7F-AA93-8BD6EB6A5D04}">

        <util:InternetShortcut Id="ApplicationStartMenuShortcut" Directory="ApplicationProgramsFolder" Name="My App" Target="http://localhost:1234/"></util:InternetShortcut>

        <util:InternetShortcut Id="ApplicationDesktopShortcut" Directory="DesktopFolder" Name="My App" Target="http://localhost:1234/"></util:InternetShortcut>

        <RegistryValue Root="HKCU" Key="Software\Company\MyWebsite" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
        <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>

      </Component>
    </DirectoryRef>
  </Fragment>

安装时,桌面和放大器开始菜单快捷方式已创建,可以双击启动。

3)在退出对话框上启动应用程序复选框

<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch My Application" />
    <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />

    <Property Id="WixShellExecTarget" Value="[#ApplicationDesktopShortcut]" />
    <CustomAction Id="LaunchApplication" Directory="DesktopFolder" ExeCommand="http://localhost:1234/"/>
    <UI>
      <Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
    </UI>

单击“完成”后,安装程序将关闭,但网站无法启动。请帮助!

P.S。我的桌面快捷方式名称为我的App.lnk 我也尝试使用以下方式:

<CustomAction Id="LaunchApplication" Directory="DesktopFolder" ExeCommand="[DesktopFolder]My App.lnk /C My App.lnk" />

但是,仍然没有成功。请帮我解决这个问题!

2 个答案:

答案 0 :(得分:0)

我怀疑你需要一个shell exec来执行此操作,如下所述:

http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html

特别是: CustomAction Id =&#34; LaunchApplication&#34; BinaryKey =&#34; WixCA&#34; DllEntry =&#34; WixShellExec&#34;冒充=&#34;是&#34;

因为您想要打开该项目的shell。

答案 1 :(得分:0)

我自己找到了答案。

<强> 1。与我的安装程序项目一起创建了一个CustomAction项目,并添加了以下内容:

public static ActionResult LaunchMyApp(Session session)
        {
            System.Diagnostics.Process.Start("http://localhost:1234");
            return ActionResult.Success;
        }

<强> 2。在Product.wxs中更新了我的安装程序的 Product 元素,如下所示:

<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch My Application" />
    <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />

    <Binary Id="LaunchWebsiteCA" SourceFile="D:\Mandar\MyMVCApplication\WebsiteLaunch\bin\Debug\WebsiteLaunch.CA.dll"/>

    <CustomAction Id="LaunchWebsite" BinaryKey="LaunchWebsiteCA" DllEntry="LaunchMyApp" Return="check" Execute="immediate"></CustomAction>
    <UI>
      <Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchWebsite">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
    </UI>

第3。将CustomAction Project的引用添加到Installer Project

现在我可以在完成安装时启动我的网站。 :)