どのように負荷のみが署名した組み立てる新しいAppDomain?
-
21-08-2019 - |
質問
いくつかのアドインシステムにおける本アプリの負荷のアセンブリAddin1.dll やAddin2.dll に実行時の新AppDomainます。
しかし、場合Addin1.dll 署名(名)をもとAddin2.dll いませんが、こういうことができるようにみ荷重Addin1.dll とを拒否Addin2.dll.
私は疑いがないように思われるし設定の一部のパラメータAppDomainSetup?
他のヒント
あなたはDomainManagerをimplmentし、あなたのロード/ブロックの決定は何が好きでのベースができます。私はここに多少関連の質問はに答え。に
あなたはの新しいアセンブリをロードするためのAppDomainクラスの Loadメソッドを使用することができますAppDomainに、アセンブリの発行者ポリシーは、クライアントまたはエンドユーザー環境によって満たされてます。
また、強力な名前のアセンブリは、アセンブリおよびCLRの出版社が敷設され、すべての規則に従います。アセンブリのユーザが、組み立てのセキュリティ面を満足する必要があるので、のAppDomainにロードされます。
CLRは、厳密な名前のプロパティを使用して、GACから参照グローバルアセンブリをロードします。参照アセンブリがGACに使用可能である場合、CLRはそれを含むサブディレクトリを返し、マニフェストを保持しているファイルがロードされます。この方法は、実行時に読み込まれたアセンブリコードがに対してコンパイルされたアセンブリを構築し、同じ出版社から来た呼び出し側は、アセンブリを保証見つけます。今、参照アセンブリのAssemblyDefテーブルの参照アセンブリのassemblyRefテーブルの公開キートークンおよび公開キートークンの比較。参照アセンブリがGACにない場合、CLRは、アプリケーションのベースディレクトリにして、アプリケーションの構成ファイル内で識別民間の経路を検索します。組立体を含むアプリケーションは、MSIを使用してインストールされている場合、CLRは、必要なアセンブリをロードするMSIを呼び出します。アセンブリは、これらの場所のいずれにも見つからない場合、例外がスローされ、最終的にアセンブリの結合が失敗します。