【发布时间】:2015-02-12 11:55:04
【问题描述】:
我们想从 VB6 调用一些 .net 程序集。 我知道我们可以通过 Regasm 命令将 .net 程序集注册到 COM,然后从 VB6 调用它。 但现在我们想在 VB6 中托管 CLR 2.0。
我知道我们可以调用 CorRuntimeHost 类来托管 CLR。但是 MSDN 说它已经过时了。在谷歌上搜索了几天后,我发现很多人使用 CorBindToRuntimeEx 来托管 CLR。但所有这些示例都是基于 C/C++ 的。抱歉,我没有找到任何使用 VB6 的示例。
那么有谁知道如何使用VB6 来承载.net framework 2.0。除了 CorRuntimeHost 类,还有没有其他方法可以在 VB6 中托管 .net 框架?
【问题讨论】:
-
我希望你知道这听起来像是一个疯狂的计划。 VB6支持COM,.NET支持COM,为什么不坚持COM呢?另外,您是否还想使用更高版本的 .NET?
-
感谢您的评论。是的,我知道这很疯狂。我们的主要目的是支持 Xcopy。我知道 com 支持多个版本,但你知道有一种叫做 Dll hell 的东西真的很痛苦,所以我们正试图找出所有可能的解决方案。由于我们的 VB 应用程序还会存在几年,所以我们正在努力寻找解决方法。
-
您知道,如果您真的想进行现代化改造,您应该将 .NET 代码创建为 VB6 代码可以通过 COM 包装器使用的 WCF 服务。然后,您可以独立地发展每个服务,并且不需要在 VB6 中托管 .NET 所带来的维护难题。我的意思是,想想这些年来你必须向人们解释多少次。说“通过 COM 包装器使用 SOA 服务的传统 VB6 应用程序”要容易得多。
标签: c# vb.net interop clr com-interop