0

次の問題があります。自分のアプリケーションをサービスとしてシステムにインストールしたいと考えています。私のクラスは System.Configuration.Install.Installer を継承しています。そのクラスのコンストラクターで Context プロパティのパラメーターを取得しようとすると、次の例外が発生します。

(インストーラーから継承したクラス名) インストーラー タイプのインスタンスを作成できません。

Context プロパティを出力すると、コンストラクターで null であることがわかりました (また、context プロパティにアクセスしようとすると例外がスローされます)。
2003 では同じコードが正常に動作し、インストールは正常に終了しますが、ここでは失敗します。

4

1 に答える 1

0

可能であれば、コードをコンストラクターからインストールに移動します。インストーラーの一般的な使用法は次のとおりです。

using ( TransactedInstaller transactedInstaller = new TransactedInstaller() )
{
    transactedInstaller.Installers.Add(myInstaller);
    transactedInstaller.Context = new InstallContext(null, null);
    transactedInstaller.Install(new System.Collections.Hashtable());
}

そのためContext、コンストラクターでは null です。

于 2012-11-06T07:11:03.247 に答える