全く使い方を知らない状態からSetup Projectを利用してインストーラを作成するにあたり、参考にしたサイトやちょっとしたメモのまとめ。
インストール
インストールについては下記ページの1章を参考に。
ここの2章では既存のプロジェクトに新規プロジェクトを追加する形でSetup Projectを作成しているが、私の方では新規ソリューションを立ち上げてSetup Projectを選択し作成。
インストール先の変更
ここの回答通り。
“C:\Windows\test1″に設定したい場合はDefaultLocationに
[WindowsVolume]test1
と設定してあげればいい。
ライセンス条項の変更
下記サイトが詳しい。
インストール時に環境変数を追加
下記サイトが詳しい。
インストール先フォルダを環境変数に設定したい場合、
カスタム動作の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をインストールする。
msiファイル編集については下記サイトの「インストール終了後にアプリケーションを起動するか選択できるようにする」の「次に、改良した方法を紹介します。」という文章以降を参考に。
ここではチェックボックスが選択されていれば起動するような形だが、
インストーラ終了後に問答無用で起動させるのであればLauncherApp.vbsは以下で良い。
dim WshShell
set WshShell = CreateObject("WScript.Shell")
WshShell.Run """" & Session.Property("TARGETDIR") & "app.exe"""
コメント