カスタム アクションとして実行する次のメソッドを使用してインストーラー クラスをセットアップしました。
public Installer1()
{
InitializeComponent();
#if DEBUG
Debugger.Launch(); //enables debugging
#endif
}
protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
ModifyConfig();
}
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
if (targetSite == null) throw new InstallException("IIS site name not specified");
else
{
//CreateApplicationPool();
//CreateWebsite();
//AssignAppPool();
}
}
この時点では単に ModifyConfig() をテストしようとしていたので、インストール メソッドで行われることのほとんどをコメントアウトしました。インストーラーを実行すると、デバッガーが期待どおりに起動します。ただし、コードを 1 行ずつ移動すると、OnBeforeInstall メソッドは完全にスキップされ、Install メソッドに直接ジャンプします。それを続行しても、OnBeforeInstall にヒットすることはありません。
このメソッドは Intall の後に追加されましたが、Install の前に自動的にこれがヒットすると思っていました。私は何が欠けていますか?