Visual Studio 2019に標準搭載されている無償のVS Installerを使ってMSIインストーラを作成します。
まず、インストーラを作成する対象となるVisual Studio 2019プロジェクトを開きます。開いた状態で、メニュー[拡張機能]-[拡張機能の管理]を実行します。
拡張機能の管理が画面が表示されるので、検索ウィンドウに「Installer Project」と入力して、「Microsoft Visual Studio Installer Projects」を検索します。検索出来たら[ダウンロード]をクリックしてインストールします。
インストールが完了したら、一度Visual Studioを終了して、再度、対象プロジェクトをVisual Studioで開きます。
Visual Studio起動時にInstallerをインストールする確認画面が表示されるので[Modify]をクリックします。
Installerのインストールが始まります。
インストールが完了すると下記画面になります。
これでVisual Studio Installerのインストールが完了しました。ここでひとつおまじないが必要になります。Power Shellまたはコマンドプロンプトを管理者権限で起動して、下記コマンドを実行します。
regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\MSI Tools\MergeMod.dll"
実行が完了したら、またVisual Studioを一度終了してから、もう一度起動します。
これで準備が完了したので、ここからインストーラを作成していきます。まずソリューションエクスプローラで対象プロジェクトを右クリックして、[追加]-[新しいプロジェクト]を選択します。
検索ウィンドウに「Setup」を入力して、「Setup Project」を検索して実行します。
プロジェクト名を入力します。ここで入力する名称がアプリケーション一覧に表示されるアプリケーション名になります。「Setup Project」と入力します。
スタートメニューに表示する名称を設定します。[File System on Target Machine]-[User's Programs Menu]を右クリックして、[Add]-[Folder]を選択して、フォルダ名としてスタートメニューに表示するフォルダ名を入力します。ここでは「Test Application」と入力します。
インストール先フォルダにインストールするファイルを指定します。まずは対象プロジェクトの実行ファイルです。ソリューションエクスプローラで「Setup Project」で右クリックして[View]-[ファイルシステム]を選択します。
[File System on Target Machine]-[Application Folder]を右クリックして、[Add]-[プロジェクト出力]を実行します。
プロジェクトを選択します。ここでは、「geo_intersect」を選択しています。[プライマリ出力]を選択し、対象とする構成を選択します。ここでは[Release x64]を選択します。
次にマニュアル等のPDFファイルなど、個別のファイルを追加します。同様に[File System on Target Machine]-[Application Folder]を右クリックして、今度は[Add]-[ファイル]を実行します。
追加したいファイルを選択します。ここでは「manual.pdf」を選択します。
次にインストーラで表示するカスタム画面を追加します。ここではライセンス条項に同意する画面を追加します。ソリューションエクスプローラで「SetupProject」を右クリックして、[View]-[ユーザーインターフェース]をクリックします。
表示されたUser Interface画面の[Install]-[Start]を右クリックして、[ダイアログの追加]を選択します。
追加するダイアログ一覧が表示されるので、ここでは「ライセンス条項」を選択します。
追加された「ライセンス条項」を右クリックして、「上へ移動」などを実行して、「ライセンス条項」画面を表示する順序を指定します。
「ライセンス条項」を選択した状態でプロパティで「License File」を選択します。インストール中に表示するライセンス条項のリッチテキストファイル形式(拡張子rtf)を選択します。ここでは「ライセンス.rtf」を選択します。
次にスタートメニューに表示するショートカットを設定します。[User's Program Menu]-[Test Application]を選択した状態で、右側画面を右クリックして、「新しいショートカットの作成」を実行します。
プロジェクト出力やマニュアルファイルなど「Application Folder」で指定したファイルから、スタートメニューにショートカット表示したいファイルを選択します。
これで設定は完了したので、いよいよセットアップのビルドです。ソリューションエクスプローラの「SetupProject」を右クリックして、「リビルド」を実行して、インストーラーをビルドします。
問題なくビルドが通ったら、作成は完了です。ここでは対象Visual Studioプロジェクトのフォルダである「C:\src\geo_intersect」の下に「C:\src\geo_intersect\SetupProject」というフォルダが作成されているはずです。この下の「Release」フォルダ以下にある「Setup.exe」または「SetupProject.msi」を実行して、正常にターゲットフォルダやスタートメニューに必要なファイルがコピーされているか確認をお願いします。以下が作成されたセットアップファイルを実行した画面推移例です。