WebサイトのWebセットアップでInstallClassを使用する問題
-
28-10-2019 - |
質問
私は自分のWebサイトのWebセットアップを作成しようとしています。インストーラークラスを使用して、カスタムスタッフを行いたいと思います。私は2010年VSを使用しており、Webサイトとインストーラーは.NET 3.5です。
インストーラークラスのプロジェクト出力への参照を追加しました Install
セクションアンダー Custom Actions
:
私も設定しました /targetdir="[TARGETDIR]/"
に CustomActionData
このアクションのために。
InstallScript
プロジェクトは標準クラスライブラリ(DLL)です。
継承する公開クラスがあります Installer
クラス。いくつかのオンライン例で行われているのを見たように、インストール方法をオーバーライドします。
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);
}
}
}
インストール中にここにメッセージボックスが表示されるべきだと思いますが、呼び出されないようです。エラーも表示されません。セットアップは、このコードが呼び出されることはないかのように実行されます。
何が悪いのか誰もが考えていますか?
解決
わかりました、私は何が欠けているかを知りました。
クラス属性を使用してクラスを指定する必要があります RunInstaller(true)
セットアップがピックアップして実際にコードを実行します。
したがって、クラスは次のように宣言する必要があります。
[System.ComponentModel.RunInstaller(true)]
public class MyWebInstaller : System.Configuration.Install.Installer
{
...
所属していません StackOverflow