/ /終了ダイアログでWiXインストーラを使って作成したインターネットショートカットを起動するにはどうすればよいですか - ウェブサイト、wix、インストーラー、ショートカット

WiX Installerを使って作成したインターネットショートカットをExitダイアログで起動するにはどうすればいいですか? - ウェブサイト、wix、インストーラー、ショートカット

私のWiXインストーラは基本的にIISでアプリケーションプールとウェブサイトを作成し、私が言ったMVCプロジェクトディレクトリを指します。

現在のコードはデスクトップとスタートメニューのショートカットを作成することができます。

インストールが完了したら、ショートカットを起動してWebサイトを開くようにする必要があります。

以下は私のコードスニペットです。

1)定義済みディレクトリ

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

2)スタートメニューとデスクトップショートカット

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

インストール時に、デスクトップとスタートメニューのショートカットが作成され、ダブルクリックで起動することができます。

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>

[完了]をクリックするとインストーラは終了しますが、Webサイトは起動しません。ヘルプをご覧ください。

P.S私のデスクトップショートカットの名前は 私のApp.lnk 私はまた次の方法を使ってみました:

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

しかし、まだ成功していません。私がこれを解決するのを手伝ってください!

回答:

回答№1は0

ここで説明しているように、これを行うにはシェルexecが必要であると思われます。

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

特にこれ: CustomAction Id = "LaunchApplication" BinaryKey = "WixCA" DllEntry = "WixShellExec"偽装= "はい"

あなたはアイテムのシェルを開きたいからです。


回答№2の場合は0

私は自分で答えを見つけた。

1.インストーラプロジェクトと一緒にCustomActionプロジェクトを作成し、以下を追加しました。

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

2.インストーラを更新しました 製品 Product.wxsの要素は次のとおりです。

<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. CustomActionプロジェクトの参照をインストーラプロジェクトに追加します。

これで、インストールが完了したときに自分のWebサイトを起動できます。