【问题标题】:DLL References into Application but not Class LibraryDLL 引用到应用程序而不是类库
【发布时间】:2014-11-16 13:49:57
【问题描述】:

我正在尝试将WeifenLuo.WinformsUI.Docking 程序集集成到我的应用程序中。为了排除外部因素,我创建了一个新的 .Net 4 Winforms 应用程序并引用了 DLL。工作正常。

然后我创建了一个 .Net 4 类库并引用了 DLL。这不起作用,一旦我尝试使用该 Docking 命名空间中的任何内容,它就不会编译。

回顾

C# Exe ---reference--> WeifenLuo.WinFormsUI.Docking.DockPanel.dll // OK

C# Class library ---reference--> WeifenLuo.WinFormsUI.Docking.DockPanel.dll // Not OK

我也有WeifenLuo source 并确认它是一个引用相同版本.Net 的类库。我尝试在他们的示例解决方案中添加一个类库并直接引用WinForms 项目(不是汇编中的结果),但它仍然没有正确链接。

使用屏幕截图更新

【问题讨论】:

  • 您已将 DLL 引用添加到您的类库中,您的类库可以访问 dll 的类,但不能访问您的 WinForm 应用程序。如果你想在 WinForm 中访问 dll 的类,那么你也需要在你的 WinForm 应用程序中引用,否则你只能通过你的类库来访问它。
  • 不确定我是否关注。我有一个第三方 DLL,它在被应用程序项目引用时可以正常工作,但在从类库引用时不能正常工作。我的意图不是从类库的表单应用程序中引用任何内容。我修改了我的问题以希望澄清。谢谢。
  • 它是否给出了特定的错误?也许 DLL 依赖于仅在 winforms 项目中找到的另一个 DLL(默认情况下)。您可能必须让您的类库引用 System.Windows.Forms 之类的东西。
  • @JasonDown 我提高了 Visual Studio 的详细程度,但看不到太多。唯一的错误是 Expected class, delegate, ... 我在其中定义了 DockPanel 对象,因为它无法解决它。不过我喜欢你的嵌套依赖理论,让我试试看。
  • @JasonDown 我匹配了应用程序的引用,没有变化。该死,我希望就是这样。

标签: c# winforms dll


【解决方案1】:

您不能在命名空间内声明私有变量。

试试下面的代码

namespace Test
{
    public class Class1
    {
        private WeifenLuo.WinFormsUI.Docking.DockPanel dockPannel;
    }
}

如果仍然不起作用,请提供错误消息。

【讨论】:

  • 天哪!谢谢你。多么令人尴尬的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多