显示DLL的窗口时引用其他DLL的错误

时间:2016-01-12 23:46:50

标签: c# wpf

我试图加载DLL中的窗口,但该窗口包含对另一个DLL(WPF Toolkit)中的自定义WPF控件的引用,问题是在渲染窗口的实例时, System.Windows.Markup.XamlParseException,其中包含以下消息:

"你无法加载文件或程序集' Xceed.Wpf.Toolkit,PublicKeyToken = 3e4669d2f30244f4'或其中一个依赖项。系统找不到指定的文件。"

如果我从主项目引用WPF Toolkit,问题就解决了,但是我需要这个,而不需要引用WPF Toolkit。

1 个答案:

答案 0 :(得分:0)

  

我需要它才能在不引用WPF Toolkit的情况下工作。

为什么呢?请详细说明这一要求。


确实,只要您的程序本身不直接引用WPF Toolkit程序集的成员, 就可以合法编译而无需引用WPF Toolkit程序集。但是您在运行时使用的DLL本身需要WPF Toolkit程序集。因此,无论您的程序程序集是否引用WPF Toolkit程序集,您都必须执行某些以确保WPF Toolkit程序集在运行时可用于由您加载的DLL#&# 39;重新使用。

最简单的方法之一是添加WPF Toolkit程序集作为参考。你说你不想这样做,但不能解释原因。另一种方法是将WPF Toolkit DLL添加为项目项(例如"添加现有项...","添加为链接")并设置项类型到"内容",用"复制如果更新"或"始终复制"。更复杂的方法是将其添加到GAC。

就此而言,如果需要,可以手动将DLL复制到项目的输出目录中;重要的是WPF Toolkit的DLL存在,以便当您引用的DLL需要它时,它可以由.NET加载。