WPF无法找到在其他程序集中定义的控件类型

时间:2012-07-13 20:46:41

标签: c# .net wpf dependencies

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

我的主应用程序很少依赖。其中一项工作是加载外部程序集(插件)并从中请求窗口和控件。

那部分工作正常。

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

  

找不到类型'Microsoft.Windows.Controls.DatePicker'。大会   编译时使用的可能与加载时使用的不同   缺少类型。

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

我还要补充一点,主应用程序使用Assembly.LoadFrom加载插件。

现在提出问题:

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

2 个答案:

答案 0 :(得分:1)

不一定是好方法,但ILMerge可能适合您。在查找该链接时,我看到了对this article的引用,这也可能有用。

答案 1 :(得分:0)

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