LoginSignup
12
8

More than 1 year has passed since last update.

実行後にアプリを起動するインストーラの設定(.NET)

Posted at

環境

.NET6
Visual Studio 2022
Microsoft Visual Studio Installer Projects 2022

はじめに

どうも、水無月せきなです。

長らく開発しているVRCToolBoxの配布を、インストーラ(.msi)で行っています。
インストーラ実行後はEXEが起動する(あるいはオプションで起動できるようになっている)アプリケーションが多いと思いますが、Installer Projectsで作成する場合はちょっとひと手間が要ります。

インストーラプロジェクトの設定などを実際にしたのはだいぶ前なので、忘れている部分もありますが、適宜思い出しつつ、備忘録的に記したいと思います。

手順

1. インストーラ作成準備

インストーラを作成できるように準備します。
今回の本題ではないので、以下の記事などを参考に準備してください。

Visual Studio 2022でアプリケーションのインストーラーを作成する
Visual Studio Installer Projects 拡張機能 と .NET 6.0

※注意点として、.NET(Core系列)の場合は、インストーラに含めるプロジェクト出力は「項目の公開(英語版だと Publish Items)」です。.NET Framework の場合とは異なります。

2. Orca の準備

作成したインストーラ(.msi)を編集するため、Orca というソフトが必要になります。
以下の記事などを参考にOrcaをインストールしてください。

Orcaの入手法 - dobon.net

Windows SDK が入っていれば、Orca のインストーラもある可能性が高いです。私の場合は下記にありました({Windowsのバージョン}は適宜置き換えてください)。

C:\Program Files (x86)\Windows Kits\10\bin\{Windowsのバージョン}\x86

以降は、Oraca をインストール済みとして話を進めます。

3. インストーラを Orca で開く

インストーラプロジェクトをビルド後、.msi ファイルを右クリック → Edit With Orca を選択して、Orca で .msi を開きます。

4. exe の File ID を探し出す

インストーラ1.png
TablesFile を選択し、exe の行を探します。その行の File 列のセルを右クリック → Copy Cell でコピーします。

5. カスタムアクションを定義する

インストーラ2.png
TablesCustom Action を選択し、空いているスペースをダブルクリックします。
すると、アクションを追加する画面が開くので、下記のように入力します。

Action:LaunchApp
Type:210
Source:さっきコピーした File ID
Target:空白

インストーラ5.png

6. インストーラ終了時にカスタムアクションを実行するように設定する

インストーラ3.png

  1. TablesControl Event を選択し、FinishedForm の行を探します。その行を右クリック → Copy Row(s) でコピーします。その後、右クリック → Paste Row(s) で貼り付けます。

  2. 今貼り付けた行の Dialog 列が FinishedForm0 のようになっているはずなので、その行を探し出します(たぶん最下行にあるはず)。

  3. セルをダブルクリックすると編集できるようになるので、下記のように値を変更します。
    Event:DoAction
    Argument:LaunchApp
    最後に、DialogFinishedForm に変更します。

  4. 元の FinishedForm の行の Order1 に変更します。

7. 変更を保存する

左上の保存マーク、もしくは FileSave などで保存します。

8. インストーラを実行する

インストール後、アプリが起動するようになったはずです。

参考

インストール終了後にアプリケーションを起動するか選択できるようにする - dobon.net

VBS を使う方法で紹介されています(し、初期は私もVBSでやってましたが……)。ただ、VBS はセキュリティで止まるかもとか言うのをネットで見た気がするので、直起動が良いかも? と思って今回の方法に至りました。

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8