将C#类库添加到VB.Net项目的引用

3
我有一个VB.Net Windows窗体应用程序。我将一个C#类库添加到该解决方案中,该解决方案具有VB.Net Windows窗体应用程序。我已经编译了C#类库,并向VB.Net Windows窗体应用程序添加了引用。但是,当我尝试添加C#类库的名称空间时,它在智能感知中没有显示出来。因此,我无法访问C#类及其函数。请告诉我如何解决。谢谢。

每个项目的.NET框架版本是什么? - djv
在解决方案资源管理器中查找引用(确保没有黄色感叹号)。右键单击,选择“在对象浏览器中查看”。展开它,看看是否有任何命名空间。 - djv
如果您能提供一个下载此项目的链接,那将会很有帮助,这样我们就可以自己尝试一下。我在CodeProject上找到了一个使用ScreenToPDF命名空间的项目,但它是一个WinForms项目而不是一个类库(DLL)。 - Visual Vincent
我尝试将CodeProject项目(.NET 2.0)转换为类库,并在VB.NET WinForms应用程序(.NET 4.0)中引用它。这一切都很顺利。正如其他人已经提到的,确保检查其他项目的框架版本,并尝试将其设置为与您的项目相同的版本(如果它还没有)。 - Visual Vincent
尝试构建解决方案,并非常注意发出的错误或警告消息。一般来说,如果有问题,构建系统会发出相关信息,但有时候直到你修复它之前,特定的消息才是问题的根源可能不太清楚。 - Craig
1个回答

5
假设所涉及的 dll 符合 CLS 并编译为相同的运行时版本,您应该能够无问题地使用它。
如果这些条件中的任何一个(或两个)不满足,您将无法使用导入的 DLL。
确保导入指令使用程序集元数据中定义的命名空间 - 查看 C# 项目属性以查看默认命名空间是什么,那就是您需要导入的内容。

1
你好,感谢您的回复。C#类库默认命名空间在其属性中显示为“ScreenToPDF”。这是我尝试在VB.Net窗体应用程序的导入中使用的相同命名空间。但它在智能感知中并没有显示出来。 - sam
@sam 像这样使用 testdll.test - AmirReza-Farahlagha
@sam 你修好了吗? - AmirReza-Farahlagha
无法修复。它没有被修复。 - sam
如果我没记错的话,我认为当VB.NET项目引用DLL时,它不必完全符合CLS标准,因为C#和VB.NET有很多共同点。在VB.NET中你唯一不能使用的就是指针。 - Visual Vincent
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接