我真的希望有人能为我的问题提供一些意见。
MyApplication.exe
|
|
|-Plugins (Folder)
|
|- Plugin1 (Folder)
| |
| |- MyPluginAssembly1.dll
|- MyPluginAssembly.AppConfig
|
|- Plugin2 (Folder)
|
|- MyPluginAssembly1.dll
|- Assembly1.dll
|- Assembly2.dll
我试图访问的插件是带有配置文件的Plugin1。 插件连接到另一个与MainApplication无关的应用程序的WCF服务。
配置文件包含以下内容
<extensions>
<behaviorExtensions>
<add name="Version" type="SomeApplicaiton.MyClientBehaviorExtensionElement, Some-Application.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
Plugin1有一些wcf服务需要连接才能加载。问题是,如果行为扩展程序集位于plugins文件夹中,它将无法工作。加载插件的.exe无法加载程序集,除非它们已注册或驻留在exe文件夹中。 在我的开发中,这非常有效。但是当访问插件时,它会给我一个错误,即无法加载Version,MyClientBehaviorExtensionElement行为扩展。
我无法控制exe。有没有办法我可以加载此扩展而不是将DLL放在exe文件夹
答案 0 :(得分:0)
AppDomain.CurrentDomain.AssemblyResolve += (sndr, resolveEventArgs) =>
{
return Assembly.LoadFile(....._
}