Visual Studio 2022(VS2022)で配布用のインストーラを作成しようと思いましたが、Setupプロジェクトが作れません。今まで、Visual Studio 2010(VS2010)を長く使っていましたので、ちょっと使い勝手が違い戸惑っていました。
最近はほとんど配布用のインストーラを作成していませんでしたが、あまりPCに詳しくない人にちょっとしたツールを使っていただこうと思ったのですが、ファイルをローカルにコピーして使っていただくにはちょっと敷居が高かったようです。やはり簡単にインストールできるようにインストーラが必要な場面が多々あります。
今回は、Visual Studio 2022でインストーラを作成する手順を忘備録として記録しておきます。
環境
PC : THERDWAVE Magnate IM
OS : Windows11 Home 23H2
Microsoft Visual Studio Community 2022 Version 17.76
拡張機能:Microsoft Visual Studio Installer Projects 2022
開発環境の詳細はこちら。
拡張機能をインストールする
Visual Studio 2022を起動します。
メニューの「拡張機能」から「拡張機能の管理」を選択します。
「拡張機能の管理」ダイアログが開きます。「オンライン」を選択し、検索窓で”installer”を検索します。検索結果に”Microsoft Visual Studio Installer Project 2022“が表示されると思います。
”Microsoft Visual Studio Installer Project 2022”の[ダウンロード]をクリックします。
ダウンロードが開始され、あっという間に終わります。
「拡張機能の管理」の[閉じる]で終了します。
一度、Visual Studioを終了します。
「VSIX Installer」が起動します。[Modify]をクリックします。
インストールが始まります。
インストールが終了しました。
Visual Studio 2022を起動します。
メニュー「拡張機能」「拡張機能の管理」をクリックし、「拡張機能の管理」ダイアログを開きます。
「インストール済み」を選択し、”Microsoft Visual Studio Installer Project 2022″が表示されていることを確認します。
セットアッププロジェクトを作成する
Visual Studioでインストーラを作成するプログラムのソリューションを開きます。
こんな感じです。
ソリューションに新しいプロジェクトを追加します。
「ソリューションエクスプローラ」の「ソリューション****(*のプロジェクト)」を選択します。
右クリックでコンテキストメニューから「追加」→「新しいプロジェクト」を選択します。
「新しいプロジェクトを追加」が開きます。この一覧の中から、「Setup Project」を選択し、[次へ]をクリックします。
プロジェクト名を入力して、[作成]をクリックします。
ソリューションにSetupプロジェクトが追加されました。
Setup Projectの設定をする
ソリューションエクスプローラでSetup Projectを右クリックしてコンテキストメニューから[プロパティ]を選択します。
「プロパティページ」が開きます。「構成」を”Release”にして[Prerequisites…]をクリックします。
「必須コンポーネント」が開きます。「必須コンポーネントをインストールするセットアッププログラムを作成する」のチェックを確認します。また、「必須コンポーネントをコンポーネントの開発元のWebサイトからダウンロードする」を選択しておきます。[OK]をクリックします。
Setup Projectのプロパティを設定する
ソリューションエクスプローラでSetup Projectをクリックしてプロパティを表示します。
プロパティを設定します。
ここでは、以下のプロパティを設定しておきます。
- Author : インストーラの作成者
- Manufacture : アプリケーションの製造者
- ProductName : アプリケーション名
- RemovePreviousVersions : 前のバージョンを削除する場合は”True”に設定
- Title : インストーラのタイトル
- Version : アプリケーションのバージョン
インストールアプリケーションを指定する
ソリューションエクスプローラでSetup Projectを右クリックしてコンテキストメニュー「View」「ファイルシステム」を選択します。
「File System」が開きます。
「Application Folder」を右クリックして、「Add」「プロジェクト出力」を選択します。
「プロジェクト出力グループの追加」が表示されます。
ここでは、「プライマリ出力」を選択しておきます。[OK]をクリックします。
「Application Folder」に出力されるファイルが追加されました。
今回は「プライマリ出力」の「プロパティ」は変更しません。
デスクトップショートカットの設定
個人的にデスクトップにショートカットを置くことが好きではないので、設定しません。
スタートメニューの設定
[スタート]ー[mamesfactory]ー[アプリケーション]のようにしたいので次のような手順で作業しました。
「User’s Programs Menu」で右クリックし「Add」「Folder」を選択します。
「New Folder #%d1」のフォルダが作成されました。
フォルダ名を「mamesfactory」に変更します。
「mamesfactory」フォルダを選択して、Name,Typeのコントロール上で右クリックして「新しいショートカットの作成」を選択します。
「Select Item in Project」が開きます。
「Lock in:」を「Application Folder」に変更し、「プライマリ出力」を選択し[OK]をクリックします。
「mamesfactory」のフォルダに「Shortcut to ***」ができます。
これをアプリケーション名に変更します。
ショートカットにアイコンを設定
ここでは、ターゲットソフトウェアのアイコンを直接設定します。
「あと何日」を選択して、「プロパティ」ウィンドウを表示します。
「Icon」を選択し、「(Browse…)」を選択します。
「Icon」ウィンドウが開きます。
[Browse…]をクリックします。
「Select Item in Project」ウィンドウが開きます。
「Lock in:」を”Application Folder”に変更し、「Files of type:」を”Executable Files(*.exe)”に変更します。
リストに”プライマリ出力*****が表示されると思います。この”プライマリ出力*****”を選択して[OK]をクリックします。
「Icon」ウィンドウにターゲットソフトウェアのアイコンが表示されます。
アイコンを選択して、[OK]をクリックします。
これで、メニューにもターゲットソフトウェアのアイコンが表示されるはずです。
Setup Projectをビルドしてインストーラを作成
「ソリューション構成」を”Release”に設定します。
Setup Projectを選択して右クリックし、「ビルド」を選択します。
ビルドが終わると、出力ウィンドウに情報が表示されます。msiファイルの出力フォルダ先も表示されています。
インストールのテスト
Visual Studioからインストールのテストができます。
「ソリューションエクスプローラ」でSetup Projectを選択し、右クリックしメニューから「インストール」を選択します。
インストーラが起動します。
このまま、インストーラの動作を確認することができます。
インストーラの動作確認の結果
Windows11のスタートメニューから「すべてのアプリ」を開いてみました。
しかし、思ったイメージにはメニューが出来ていません。
イメージ的には上の「アクセシビリティ」のように「mamesfactory」のフォルダ下に「あと何日」が表示されているはずなのですが、フォルダが無く「あと何日」が直接メニューに作成されています。
なぜかインストーラで設定したフォルダが作成されていません。
原因がわかりました。こちらで説明していますのでご参考になれば幸いです。