1.概要
visual studioで作成したアプリケーションを配布する際に
【InstallSield】や【InnoSetup】など様々なものがありますが
今回はvisual studio 2012まで標準であった【Setup Project】を使ってみます。
また、【Setip Project】でアプリケーションをパッケージした際に
アプリケーションインストールと同時に、【ProgramData】配下に
必要なファイルやデータを配置したい時があります。
iniファイルや、画像データなどがこれにあたるのではないでしょうか?
開発環境:visual studio2015
2.インストーラーの作成
①【ソリューションエクスプローラー】の【ソリューション名】を右クリックし
【追加】 → 【新しいプロジェクト】をクリック
②【Setup Project】を選択してOKをクリック
これで【setup1】というプロジェクトが作成される。
③【ソリューションエクスプローラー】に作成された【setup1】を右クリックし
【Add】 → 【プロジェクト出力】をクリック
④【プライマリ出力】を選択しOKをクリック
これで【DLL】や【exe】をインストーラーに含んでくれます。
⑤【セットアッププロジェクト】のプロパティで下記の箇所を変更する。
【Author】→【コードを書いた人の名前】
【Manufactuer】→【会社名】
【ProductName】→【製品名】
【RemovePreviousVersions】→【True】
【Title】→【セットアッププロジェクトの名前】
【RemovePreviousVersions】を【True】に設定すると
既に古いバージョンのアプリがインストールされている場合
古いバージョンをアンインストールしてから、新しいバージョンをインストールしてくれます。
⑥あとは【セットアッププロジェクト】を右クリックし
【ビルド】をクリックする。
3.ProgramDataにデータを配置する設定をする
①【セットアッププロジェクト】を右クリックし
【view】→【ファイルシステム】をクリック
②【File System】タブを右クリックし
【Add Special Folder】→【カスタムフォルダー】をクリック
③作成した【カスタムフォルダー】の【プロパティ】を下記のとおり設定
【AlwaysCreate】→【True】
【DefaultLocation】→【[CommonAppDataFolder][Manufacturer]\[ProductName]】
【Property】→【COMMONAPPDATA】
④インストールの際に必要なファイルをドラッグドロップで追加する。
⑤追加したフォルダの【プロパティ】を変更
【AlwaysCreate】→【True】
4.結果
後は、ビルドしてインストーラーを作成します。
ビルドに成功すると【setup.exe】と【Setup1.msi】が作成されます。
何故ふたつのファイルが作成されるのでしょうか?
このふたつのファイルの違いですが
【msi】は単純にアプリケーションのインストール
【exe】は.net Framework等の必要コンポーネントをインストールしてから【msi】を起動する
といったところです。
作成したインストーラーを実行すると
設定したファイルがProgramData以下にしっかりと配置されています。