我的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" />
但是,仍然没有成功。请帮我解决这个问题!
答案 0 :(得分:0)
我怀疑你需要一个shell exec来执行此操作,如下所述:
特别是: 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
现在我可以在完成安装时启动我的网站。 :)