【问题标题】:VB/C#.NET & DataGridViewGrouper - How to make the DLL run in VB?VB/C#.NET & DataGridViewGrouper - 如何使 DLL 在 VB 中运行?
【发布时间】:2015-06-29 08:06:20
【问题描述】:

我指的是这个:http://www.codeproject.com/Tips/995958/DataGridViewGrouper

我想在我们的 VB.NET 项目中使用这个 DataGridViewGrouper。

当我在 C# 项目中使用它时它工作正常,但在 VB 项目中却不行。

我正在添加 DLL ( DataGridViewGrouper\obj\Debug\DataGridViewGrouper.DLL ) 作为对我的项目的引用。然而,它抱怨没有像“Subro”这样的命名空间。

我记得以同样的方式将 PostSHARP 作为 DLL 添加到我们的项目中,并且效果很好。

这不起作用的原因可能是什么?

提前致谢。

【问题讨论】:

  • 将项目添加到解决方案中,然后引用它,它应该可以正常工作。
  • 很遗憾听到您不得不放弃该组件。编写完组件后,我很好奇并在 vb.net 程序中尝试了它,但它立即运行没有问题。 (如果是您在项目本身提出问题,我也很抱歉我迟到的回复,我没有关注它的更新)。但正如 user666 所建议的,这可能是框架差异问题。由于您使用的是 ObjectListView(看起来很酷),因此您在这件事上不需要帮助,但如果您需要帮助,请使用 @me.name 发表评论;)

标签: c# .net vb.net dll


【解决方案1】:

您需要检查程序集是否与 CLS 兼容。 在您的代码中写入 [assembly: CLSCompliant(true)]。 See more here

还要确保程序集中的 NetFramework 版本小于或等于主项目的版本

【讨论】:

  • 我已将该行添加到 C# 代码中,在“命名空间 Subro.Controls”上方,我写了“[assembly: CLSCompliant(true)]”。有趣的是,因为当我编译它并在 VB 中使用那个新的 DLL 作为参考时,当我开始输入时弹出的建议显示了命名空间和方法“DataGridViewGrouper”,但是当我想启动程序时,它假装它什么都不知道。
  • 然后在 C# 和 VB 中检查 .Net 程序集的版本。
  • 我在 AssemblyInfo.vb 中找到了“”。我从 codeproject 下载的 C# 项目具有等效的行“[assembly: AssemblyVersion("1.0.0.0")]”。
  • emm... .NET Framework 版本它不是程序集版本... 转到项目的属性页 > 构建 > 目标框架或属性 > 应用程序 > 目标框架(取决于项目类型)
  • 我们放弃了它并用一个叫做 ObjectListView 控件的东西替换了 DataGridView。无论如何,谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多