■はじめに
今回はプログラムをインストーラーで配布できるようにします。
キーワード:VisualStudio2017, InstallerProjects, UAC
[注意]
これまでの回で説明済みの操作方法等は、説明を省略したり簡略化している場合があります。
■開発環境
- Windows 10 (バージョン1703)
- Visual Studio Community 2017
- .NET Framework 4.x
■拡張機能のインストール
以下のサイトからInstaller Projectsの拡張をダウンロードします。
Microsoft Visual Studio 2017 Installer Projects
■インストーラープロジェクトの追加
適当に何かプロジェクトを作り、ソリューションの「追加」 - 「新しいプロジェクト」を選択します。
「新しいプロジェクトの追加」画面で「その他のプロジェクトの種類」 - 「Visual Studio Installer」を選択し、「Setup Wizard」を選択します。
■インストーラープロジェクトの設定
◇ビルド設定
ソリューションを右クリック、「構成マネージャー」を選択し、インストーラープロジェクトの「ビルド」にチェックを入れます。
ソリューションエクスプローラーのDetected Dependencies
からMicrosoft .NET Framework
以外(使わないもの)を右クリックして「除外」します。
インストーラープロジェクトのプロパティ、PostBuildEvent
の「...
」を選択します。
↓
「マクロ」ボタンを選択してBuildOutputPath
をダブルクリックします。
以下のように書き換えます。
"C:\Program Files (x86)\Windows Kits\10\bin\x86\MsiInfo.exe" "$(BuiltOuputPath)" /W 10
MsiInfo
のパスは環境に応じて書き換えてください。
パスは、Developer Command Prompt for VS 2017
(開発者コマンドプロンプト)を起動し、
where msiinfo
で確認しましょう。
※Windows 10でmsiinfo
が見つからない場合、Visual Studio Installer
で個別のコンポーネント
からWindows 10 SDK
を入れてください。
PostBuildEvent
はビルド後に実行される処理で、
MSIファイルを管理者権限不要でインストールできるように設定変更するコマンドを書いています。
※Program Files
配下にインストールする等、管理者権限が必要なセットアップにしてしまった場合はMSIファイルの設定を変えても管理者権限は要求されます。
◇プロパティ設定
File System
タブのApplication Folder
を選択し、プロパティのDefaultLocation
を
[LocalAppDataFolder][Manufacturer]\[ProductName]
に設定します。
ソリューションエクスプローラーでインストーラープロジェクトを選択し、プロパティを設定します。
プロパティ | 設定値 | 備考 |
---|---|---|
Auther | 作成者A | |
Description | 説明BBB | |
DetectNewerInstalledVersion | True | インストール時の新バージョンチェック |
InstallAllUsers | False | すべてのユーザーにインストールするか |
Localization | Japanese | |
Manufacturer | 会社C | |
ProductName | ソフトD | |
RemovePreviousVersions | True | 古いバージョンの削除 |
Subject | タイトルE | |
Title | タイトルFF | |
Version | 1.0.0 |
◇デスクトップのショートカット
File System
タブのUser's Desktop
を選択し、プロパティのAlwaysCreate
をTrue
に設定します。
User's Desktop
を選択し、ツリー右の部分(Name
, Type
列のある領域)で右クリックし、「新しいショートカットの作成」を選択します。
Application Folder
をダブルクリックします。
「プライマリ出力」が選択されているので「OK」を選択します。
↓
◇スタートメニューのショートカット
User's Programs Menu
を右クリックし、「Add」 - 「Folder」を選択します。
フォルダ名をグループG
に変更し、AlwaysCreate
をTrue
にし、グループGの右の領域で右クリック、「新しいショートカットの作成」を選択します。
■ビルド
ソリューションをReleaseビルドします。
Setup.exe
とmsi
ファイルが出来上がるので、この2つを配布します。
■インストール
一般ユーザーでSetup.exe
を実行してみます。
デスクトップとスタートメニューにショートカットが作成されました。
UACのダイアログを出さずにインストールすることができました。
ユーザーのLocal
フォルダ配下にインストールされています。
■バージョンアップ
メインのプロジェクトを更新してバージョン情報も更新します。
(プロジェクトのプロパティ、「アプリケーション」の「アセンブリ情報」)
インストーラープロジェクトのVersion
プロパティを更新します。
ProductCode
を更新するか聞いてくるので「はい」を選択し、ソリューションをリリースビルドします。
Setup.exe
を起動してインストールすると新しいバージョンで上書きされます。
バージョンアップ時、上書きインストールできて最新版が起動できることは必ず確認しましょう。
設定を失敗していると、インストールが続行できなかったり、一見インストール成功したように見えても中身が古いバージョンのままになることもあります。
おしまい