クラス ライブラリに分離された WMI プロバイダーを作成しています。私が読んだことはすべて、これらの行に沿って何かを含めることを指しています:
[System.ComponentModel.RunInstaller(true)]
public class MyApplicationManagementInstaller : DefaultManagementInstaller { }
このインストールの目的は、Windows WMI インフラストラクチャが使用前に WMI プロバイダーの構造を認識している必要があるためだと思います。
私の質問は - この「インストーラー」はいつ実行されますか? MSDN によると、インストーラーは「アセンブリのインストール中に」呼び出されるとのことですが、それが何を意味するのか、または WMI プロバイダーを含むクラス ライブラリのコンテキストでいつ起こるのかはわかりません。
これは、WMI プロバイダーを含むアセンブリに対してInstallUtil.exeを手動で実行するための自動化された置き換えであるという印象を受けましたが、コマンド プロンプトから手動で InstallUtil を実行しない限り、プロバイダーに加えた変更は Windows WMI インフラストラクチャによって認識されません。開発中に自分のマシンでこれを行うことができますが、プロバイダーを使用するアプリケーションが他のマシンにデプロイされた場合はどうなりますか?
この RunInstaller / DefaultManagementInstaller の組み合わせが正しく機能していないようです - 正しいですか?