让我试着解释一下我的问题。我目前正在尝试开发一个写在.Net中的小型“插件框架”(主要是为了进行一些实验)。因此,想法是有一个主应用程序,可以通过在特定文件夹“插件”中部署dll来添加“插件”。
一切都很顺利,插件被正确实例化,但现在我面临一个问题。
我现在部署了一个名为“X”的插件,它使用额外的第三方插件,所以现在我遇到的问题是这些由“X”所需的额外的第三方插件在运行时找不到。因此,我的想法是添加一个额外的目录“依赖项”,在那里我也部署所有需要的插件。
因此,我的第一个问题是: 如何将程序集加载到应用程序域中(假设我知道它们的路径),以便它们可以被我的应用程序使用?
我试图通过以下方式解决这个问题:
问题在于这个事件处理程序现在被激活并且在"args"变量中有"Presentation.Zune.dll"(我正在使用WPF应用程序)。它似乎加载失败了,但实际问题是另一个dll。有人能建议一种更好的解决方法吗?希望我已经足够清楚地解释了我的情况,否则请进一步说明。谢谢,Juri
因此,我的第一个问题是: 如何将程序集加载到应用程序域中(假设我知道它们的路径),以便它们可以被我的应用程序使用?
我试图通过以下方式解决这个问题:
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//find the path to the assembly and then load and return it by
//return Assembly.Load("pathToDependencies/failedAssembly.dll");
}
问题在于这个事件处理程序现在被激活并且在"args"变量中有"Presentation.Zune.dll"(我正在使用WPF应用程序)。它似乎加载失败了,但实际问题是另一个dll。有人能建议一种更好的解决方法吗?希望我已经足够清楚地解释了我的情况,否则请进一步说明。谢谢,Juri