Installer Project(Setup Project)を利用したインストーラ作成方法

全く使い方を知らない状態からSetup Projectを利用してインストーラを作成するにあたり、参考にしたサイトやちょっとしたメモのまとめ。



インストール

インストールについては下記ページの1章を参考に。

ここの2章では既存のプロジェクトに新規プロジェクトを追加する形でSetup Projectを作成しているが、私の方では新規ソリューションを立ち上げてSetup Projectを選択し作成。

インストール先の変更

ここの回答通り。

「インストールパスの指定」(1) Insider.NET − @IT
「インストールパスの指定」に関する質問と回答の一覧です。(1)Insider.NET−@IT

“C:\Windows\test1″に設定したい場合はDefaultLocationに

 [WindowsVolume]test1

と設定してあげればいい。

ライセンス条項の変更

下記サイトが詳しい。

インストール時に環境変数を追加

下記サイトが詳しい。

インストーラーで環境変数を設定する(その2) | ヤスダ式仕事のブログ

インストール先フォルダを環境変数に設定したい場合、
カスタム動作のCustomActionDataプロパティは

 /InstallPath=”[TARGETDIR]”

とすれば良い……はずだがなぜかインストーラ起動時にエラーになるので

 /InstallPath=”[TARGETDIR]test2”

みたいな感じで後ろに文字を添えるとエラーが発生しなくなる。のでそこからは
メソッド側でごにょごにょする。

アンインストール時にフォルダ削除

下記サイトの「カスタム動作の作成」を参考に。

インストーラーの作成 [八寿のナレッジベース]

ここではremoveDir.batを呼び出してフォルダ削除しているが、普通にコマンドプロンプトから
直接削除実行でもいけた。C#だとこんな感じ(parentPathが削除したいパス)。

System.Diagnostics.ProcessStartInfo ps =new System.Diagnostics.ProcessStartInfo();
ps.FileName = "Cmd.exe";
ps.Arguments = " /c rmdir /S /Q " + parentPath;
ps.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
System.Diagnostics.Process.Start(ps);

ちなみにインストール先を丸っと消す仕様は危ないので(間違えてCドライブを
インストール先にしてアンインストール時にそこを丸ごと消したら目も当てられない)、
Application Folderで一つ削除用のフォルダをかましてから
フォルダ配置していくといいのかもしれない。

“C:\test1″がデフォルトのインストール先なら、”C:\test1\test2″というようにtest2を挟んで、
test2の下にフォルダを配置し、削除対象はtest2、みたいな形。

インストール終了後、プログラムを起動

今まで見てきたカスタムアクションでも可能だが、その場合インストーラの画面が閉じる前
(プログレスバーが途中で止まっている状態)でプログラム起動になる。
完全に終了した状態で起動したいのであればmsiファイルをいじる必要があるので
Orcaをインストールする。

Windows 10 へのOrca導入方法
開発マシンをWindows7からWindows 10に買い替えました。普段使用しているツールやら開発環境やらのインストール祭りです。で、Orcaも必要なのでいざインストールをしようとすると。。。あれ?インストーラがないじゃない。。。そりゃそうか。V...

msiファイル編集については下記サイトの「インストール終了後にアプリケーションを起動するか選択できるようにする」の「次に、改良した方法を紹介します。」という文章以降を参考に。

ユーザーインターフェイスエディタの使い方

ここではチェックボックスが選択されていれば起動するような形だが、
インストーラ終了後に問答無用で起動させるのであればLauncherApp.vbsは以下で良い。

dim WshShell
set WshShell = CreateObject("WScript.Shell")
WshShell.Run """" & Session.Property("TARGETDIR") & "app.exe"""

コメント

タイトルとURLをコピーしました