/ / ¿Cómo puedo iniciar el acceso directo a Internet creado con el instalador de WiX en el diálogo de salida? - sitio web, wix, instalador, acceso directo

¿Cómo puedo iniciar el acceso directo a Internet creado con el instalador de WiX en el diálogo de salida? - sitio web, wix, instalador, acceso directo

Mi instalador de WiX básicamente crea un grupo de aplicaciones y un sitio web en IIS y apunta al directorio del proyecto MVC mencionado por mí.

El código actual es capaz de crear accesos directos de escritorio y menú de inicio.

Necesito una provisión donde el acceso directo debe ser lanzado y el sitio web debe abrirse al completar la instalación.

Los siguientes son mis fragmentos de código:

1) Directorios definidos

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

2) Menú de inicio y accesos directos de escritorio

<!--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="SoftwareCompanyMyWebsite" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>

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

En la instalación, los accesos directos del menú Inicio y del menú Inicio se crean y se pueden iniciar haciendo doble clic en él.

3) Iniciar la casilla de verificación de la aplicación en el cuadro de diálogo Salir

<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>

Al hacer clic en Finalizar, el instalador se cierra pero el sitio web no se inicia. ¡Por favor, ayuda!

PD El nombre de mi acceso directo de escritorio es Mi app.lnk También traté de usar la siguiente manera:

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

Pero, todavía no hay éxito. ¡Por favor ayúdame a resolver esto!

Respuestas

0 para la respuesta № 1

Sospecho que necesita un exec shell para hacer esto, como se describe aquí:

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

En particular esto: CustomAction Id = "LaunchApplication" BinaryKey = "WixCA" DllEntry = "WixShellExec" Impersonate = "yes"

Porque quieres hacer un shell abierto del elemento.


0 para la respuesta № 2

Encontré una respuesta a mí mismo.

1. Creé un proyecto CustomAction junto con mi proyecto de instalador y añadí lo siguiente:

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

2. Actualicé mis instaladores Producto Elemento en Product.wxs como sigue:

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

<Binary Id="LaunchWebsiteCA" SourceFile="D:MandarMyMVCApplicationWebsiteLaunchbinDebugWebsiteLaunch.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. Agregue la referencia del Proyecto CustomAction al Proyecto del Instalador

Ahora puedo iniciar mi sitio web al finalizar la instalación. :)