0

我有一个 VB6 应用程序,它引用了一个 COM 可见的 .Net 应用程序,.Net 应用程序是一个包含一些表单的 windows 窗体项目。

VB6 应用程序从 .Net 应用程序调用一个方法来显示一些表单并保存数据。

问题是:如何使 .Net 应用程序被部署、使用 Click-once 自动更新并且仍然可以从 VB6 访问?因为 .Net 程序集应该在部署后使用 (RegAsm.exe) 注册!并且程序集应该在 VB6 应用程序 exe 文件旁边。

这里来自 VB6 的代码片段

Dim a As HISIntegration.HIS
Set a = New Rims_HISIntegration.HIS
a.Show

这是.Net代码:

[Guid("C79963CC-0284-4848-BAED-F24FC19433F9"), ClassInterface(ClassInterfaceType.AutoDual)]
public class HIS
{
 public bool Show()
    {
        /// ...... some code.
        return (frm.ShowDialog() == DialogResult.OK);
    }
}
4

1 回答 1

1

除非您使用 ClickOnce 部署 VB6 应用程序,否则您不会在“VB6 应用程序 exe 旁边”获得 .NET 程序集。而且您不能使用 ClickOnce 直接部署 VB6 应用程序,因为 ClickOnce 应用程序的入口点必须是 .NET exe。

可以创建一个 .NET 存根应用程序,该应用程序只需启动您的 VB6 应用程序,然后使用 ClickOnce 部署所有文件(存根、VB6、.NET 程序集)。这似乎是最干净的解决方案。

于 2012-09-11T19:44:55.140 回答