WebサイトのWebセットアップを作成しようとしていますが、インストーラークラスを使用してカスタム処理を実行したいと考えています。VS 2010を使用していますが、Webサイトとインストーラーは.NET3.5です。
Install
下のセクションにインストーラークラスのプロジェクト出力への参照を追加しましたCustom Actions
:
私もこの行動/targetdir="[TARGETDIR]/"
のために設定しました。CustomActionData
プロジェクトは標準のInstallScript
クラスライブラリ(dll)です。
クラスから継承するパブリッククラスがありInstaller
ます。いくつかのオンライン例で行われているように、これはInstallメソッドをオーバーライドします。
using System.Collections;
using System.Windows.Forms;
namespace InstallScript
{
public class MyWebInstaller : System.Configuration.Install.Installer
{
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
var targetDir = Context.Parameters["targetdir"];
if(targetDir==null) targetDir = "No TARGETDIR!";
MessageBox.Show("TARGETDIR:\t" + targetDir);
}
}
}
インストール中にメッセージボックスが表示されるはずですが、呼び出されないようです。エラーも表示されません。セットアップは、このコードが呼び出されなかったかのように実行されます。
誰もが何が悪いのか考えていますか?