【问题标题】:Error displaying a window of a DLL with references to other DLLs显示引用其他 DLL 的 DLL 窗口时出错
【发布时间】:2016-01-12 23:46:49
【问题描述】:

我正在尝试加载 DLL 中的窗口,但该窗口包含对另一个 DLL(WPF 工具包)中的自定义 WPF 控件的引用,问题是在呈现窗口实例时,@987654321 @ 带有以下消息:

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

如果我从主项目中引用 WPF Toolkit,问题就解决了,但我需要它在不引用 WPF Toolkit 的情况下工作。

【问题讨论】:

  • 如果你的 DLL 依赖于这个其他 DLL,我看不出不引用它的方法。
  • @Tim 我需要的是主项目不需要引用WPF Toolkit,但是窗口本身应该引用WPF Toolkit的DLL,你懂吗?

标签: c# wpf


【解决方案1】:

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

为什么?请详细说明该要求。


确实,只要您的程序本身不直接引用 WPF Toolkit 程序集的成员,那么在不引用 WPF Toolkit 程序集的情况下编译是合法的。。但是您使用的 DLL 本身在运行时需要 WPF Toolkit 程序集。因此,无论您的程序的程序集是否引用 WPF Toolkit 程序集,您都必须做一些事情以确保 WPF Toolkit 程序集在运行时可用,以便由您正在使用的 DLL 加载。

执行此操作的最简单方法之一是将 WPF Toolkit 程序集添加为引用。你说你不想这样做,但不要解释为什么。另一种方法是将 WPF Toolkit DLL 添加为项目项(例如“添加现有项...”、“添加为链接”)并将项类型设置为“内容”,并使用“如果较新则复制”或“始终复制”。更复杂的方法是将其添加到 GAC。

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

【讨论】:

  • 正如您所提到的,我在 GAC 中找到了包括 WPF Toolkit 在内的解决方案。我真的不想包含对 WPF Toolkit 的引用,这是不必要的,因为主项目没有使用它。然而,经过一番研究,我意识到我试图做的事情是不可能的,因为应用程序需要加载那个库。谢谢。
猜你喜欢
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
相关资源
最近更新 更多