【问题标题】:Add C# class library reference to VB.Net Project将 C# 类库引用添加到 VB.Net 项目
【发布时间】:2018-09-26 15:44:30
【问题描述】:

我有一个 VB.Net Windows 窗体应用程序。我已将 C# 类库添加到具有 VB.Net Windows 窗体应用程序的解决方案中。我编译了 C# 类库并添加了对 VB.Net windows 窗体应用程序的引用。但是,当我尝试添加 C# 类库的命名空间时,它不会出现在智能感知中。因此我无法访问 C# 类及其功能。有人请告诉我解决这个问题。谢谢

【问题讨论】:

  • 每个项目的 .NET 框架版本是什么?
  • 在解决方案资源管理器中找到引用(确保没有黄色感叹号)。右键单击,在对象浏览器中查看。展开它,看看有什么命名空间,如果有的话。
  • 如果你能给我们一个下载这个项目的链接,这样我们就可以自己尝试了。我在 CodeProject 上找到了一个使用命名空间 ScreenToPDF 的项目,但它是一个 WinForms 项目,而不是一个类库 (DLL)。
  • 我尝试将 CodeProject 项目 (.NET 2.0) 转换为类库并在 VB.NET WinForms 应用程序 (.NET 4.0) 中引用它。它没有问题。正如其他人已经提到的那样,请确保检查其他项目的框架版本并尝试将其设置为与您的项目相同(如果还没有的话)。
  • 尝试构建解决方案,并密切注意发出的错误或警告消息。一般来说,如果出现问题,构建系统会发出一条消息,但有时并不清楚(直到您修复它)某个特定消息是问题的根源。

标签: c# vb.net .net-assembly


【解决方案1】:

假设有问题的 dll 是 CLS compliant 并针对相同的运行时版本编译,您应该可以毫无问题地使用它。

如果不满足这两个条件中的一个(或两个),您将无法使用导入的 DLL。

确保 Import 指令使用程序集元数据中定义的命名空间 - 查看您的 C# 项目属性以了解默认命名空间是什么,这就是您需要导入的内容。

【讨论】:

  • 您好,感谢您的回复。其属性中显示的 C# 类库默认命名空间是“ScreenToPDF”。这是我尝试在 VB.Net Windows 窗体应用程序的导入中使用的相同命名空间。但它只是没有出现在智能感知中。
  • @sam 你添加 dll 引用了吗??
  • 是的,我确实添加了 dll 引用。它仍然没有出现在命名空间中。
  • @sam 所以你必须重写你的命名空间并使用它。或者在vb的方法或类中写c#dll的方法或类名,编译后建议你导入c#dll
  • @sam 像这样:使用 testdll.test
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 2015-12-31
  • 2017-05-14
  • 2011-04-07
  • 1970-01-01
相关资源
最近更新 更多