静的メソッドを含むアセンブリBへの参照を持つアプリケーションAがあります。アセンブリBは、アプリケーションAと同じVisual Studioソリューションに含まれています。DLLをドラッグアンドドロップするとMissingMethodExceptionが発生する
私たちは、アプリケーションAのユーザーにプラグインの書き込みを許可します。 Visual Studioで新しいクラスライブラリソリューションを作成し、アプリケーションA用のNugetパッケージを取得し、プラグインソリューションで参照をアセンブリBに追加して、プラグインコードをコンパイルしてプラグインを構築します(現在)。
アプリAに
彼らのコードをコンパイルしたら、それを実行しているとき、彼らは自分のコードをデバッグすることができれば、それはいいだろうが、彼らは、コードだけでコンパイルする必要がある理由です彼らのプラグインを、テストする必要はありません。 、プラグインのDLLは共有に置かれ、他のチーム(私が知っている官僚主義者)に渡され、誰がそれをアプリケーションAのDLLの残りの部分に入れるのですか?
私は、プラグインDLLが、すべてのアプリケーションAのDLLで使用されているアセンブリB DLLを使用したいと考えています。
私は、アプリケーションAを実行すると、ActivatorクラスはプラグインDLLをピックアップしてインスタンスを正しく作成しますが、アセンブリBの静的メソッドの1つが呼び出されると、プラグインはMissingMethodExceptionをスローします。
私が試したこと: プラグインのソリューションは、作成してアプリケーションAのVisual Studioソリューション内でコンパイルすると間違いなく正常に動作します。
アプリケーションAはフレームワーク.Net 4.5を使用しています。アセンブリBはフレームワーク.Net 4.0を使用していますが、両方のフレームワークでプラグインを構築しようとしましたが、成功しませんでした。
プラグインソリューションのアセンブリBへの参照の「特定のバージョン」は、テストされたすべてのケースでfalseでした。
この問題の解決方法をすぐに歓迎するだけでなく、これらのプラグインを動作させる方法についてのより幅広いアーキテクチャ上の提案も歓迎します。重複した質問がある場合はお詫びします。見つけられませんでした。
またはILSpy(これはフリーです) –