Visual Studio Installer (VS2015) カスタムアクション
visualstudiogallery.msdn.microsoft.com
- クラスライブラリプロジェクトを作る
- 参照の追加:System.Configuration.Install using System.Configuration.Install;
- Installerを継承したクラスを作る
namespace MyInstaller { [RunInstaller(true)] public class MyCustomAction : Installer { /// <summary>Installs the specified state saver.</summary> public override void Install(IDictionary stateSaver) { base.Install(stateSaver); MessageBox.Show($"id={Process.GetCurrentProcess().Id}", "MyCustomAction.Install"); // ここに処理を書く } // public override void Uninstall(IDictionary savedState) // public override void Commit(IDictionary savedState) // public override void Rollback(IDictionary savedState) } }
カスタム動作に、作成したDLLを指定する
デバッグするには
ソリューションエクスプローラ右クリックからインストールを選択する
インストールを進めるとダイアログが出るので、「出したまま」デバッグ~プロセスにアタッチ(msiexec.exeとプロセスIDを確認する)
MessageBox.Showの次の行にブレークポイントを置いて、ダイアログを閉じる。
- インストーラからデータを渡すには
カスタム動作のプロパティで、CustomActionDataを設定する。
こんなのが使える。
Property Reference (Windows)
- インストールを失敗させるには
System.Configuration.Install.InstallException
を投げれば良い。 (ロールバックが呼ばれる)