0

我正在.NET 3.5 中使用 WPF 构建一个 GUI 应用程序框架。

我的主应用程序几乎没有依赖项。它的工作之一是加载外部程序集(插件)并从它们请求窗口和控件。

那部分工作正常。

当插件使用 WPF 框架中未定义的控件时会出现问题。例如,我有一个引用 WPF 工具包并使用DatePicker. 当主应用程序读取 XAML 文件并看到DatePicker时,它会抛出一个XAMLParseException,说明

找不到类型“Microsoft.Windows.Controls.DatePicker”。编译时使用的程序集可能与加载时使用的程序集不同,并且类型丢失。

对我来说很明显为什么会抛出这个异常,并且在主应用程序中添加对 WPF Toolkit 的引用可以解决问题。但是我无法在主应用程序中为插件使用的每个控件添加引用,因为我不知道这些控件可能是什么。

我还要补充一点,主应用程序使用Assembly.LoadFrom.

现在的问题:

我是否需要让插件将它们的依赖项复制到主应用程序的目录中,然后再加载它们?我还有哪些其他选择?.NET 4 中是否以某种方式解决了这个问题?

4

2 回答 2

1

不一定是好方法,但ILMerge可能对您有用。在寻找那个链接时,我看到了对这篇文章的引用,它也可能有用。

于 2012-07-13T20:54:57.597 回答
0

您是否尝试将 WPF Toolkit dll 与插件放在一起?另一种选择是向 GAC 注册

于 2012-07-14T08:17:53.390 回答