2016-10-28 15 views
0

私は本当に誰かが私の問題のために何らかの入力をしたいと思っています。MEFプラグインからビヘイビア拡張をロードしてください

MyApplication.exe 
     | 
     | 
     |-Plugins (Folder) 
      | 
      |- Plugin1 (Folder) 
      |  | 
      |  |- MyPluginAssembly1.dll 
       |- MyPluginAssembly.AppConfig 
      | 
      |- Plugin2 (Folder) 
       | 
       |- MyPluginAssembly1.dll 
       |- Assembly1.dll 
       |- Assembly2.dll 

私がアクセスしようとしているプラ​​グインは、設定ファイルを持つPlugin1です。 プラグインは、MainApplicationに関連しない別のアプリケーション用のWCFサービスに接続します。

設定ファイルは、それが負荷にinorderを接続する必要があるいくつかのWCFサービスがあり、次の

<extensions> 
     <behaviorExtensions> 
     <add name="Version" type="SomeApplicaiton.MyClientBehaviorExtensionElement, Some-Application.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
     </behaviorExtensions> 

    </extensions> 

Plugin1を持っています。問題は、ビヘイビア拡張アセンブリがプラグインフォルダにある場合には機能しないことです。プラグインをロードしている.exeは、それらが登録されていないか、exeフォルダ内に存在しない限り、アセンブリを読み込むことができません。 私の開発では、これは完全に動作します。しかし、プラグインにアクセスすると、バージョン、MyClientBehaviorExtensionElementビヘイビア拡張をロードできないというエラーが表示されます。

私はexeを制御できません。 exeフォルダにDLLを置くのではなく、この拡張をロードする方法はありますか?

答えて

0
AppDomain.CurrentDomain.AssemblyResolve += (sndr, resolveEventArgs) => 
{ 
    return Assembly.LoadFile(....._ 
} 
関連する問題