【问题标题】:WPF cannot find control types defined in other assembliesWPF 找不到在其他程序集中定义的控件类型
【发布时间】:2012-07-13 18:06:39
【问题描述】:

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

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

这部分工作正常。

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

找不到类型“Microsoft.Windows.Controls.DatePicker”。大会 编译时使用的可能与加载时使用的不同 类型丢失。

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

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

现在回答问题:

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

【问题讨论】:

    标签: c# .net wpf dependencies


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        • 2012-11-22
        • 2021-04-12
        • 1970-01-01
        • 2011-12-11
        • 1970-01-01
        相关资源
        最近更新 更多