我正在使用.NET 3.5中的WPF构建GUI应用程序框架。
我的主应用程序很少依赖。其中一项工作是加载外部程序集(插件)并从中请求窗口和控件。
那部分工作正常。
当插件使用未在WPF框架中定义的控件时出现问题。例如,我有一个引用WPF工具包并使用DatePicker
的插件。当主应用程序读取XAML文件并看到DatePicker
时,它会抛出XAMLParseException
,说明
找不到类型'Microsoft.Windows.Controls.DatePicker'。大会 编译时使用的可能与加载时使用的不同 缺少类型。
对我来说很明显,为什么抛出这个异常,在主应用程序中添加对WPF Toolkit的引用可以解决问题。但是我无法在主应用程序中为插件使用的每个控件添加引用,因为我不知道这些控件可能是什么。
我还要补充一点,主应用程序使用Assembly.LoadFrom
加载插件。
现在提出问题:
我是否需要让插件将其依赖项复制到主应用程序的目录中,然后再加载它们?我还有什么其他选择?这个问题是否已在.NET 4中以某种方式得到解决?
答案 0 :(得分:1)
不一定是好方法,但ILMerge可能适合您。在查找该链接时,我看到了对this article的引用,这也可能有用。
答案 1 :(得分:0)
您是否尝试将WPF Toolkit dll与插件放在一起? 另一种选择是注册GAC