在Com应用程序中使用Click-Once部署的应用程序(VB6)

时间:2012-09-11 05:38:48

标签: c# deployment com vb6 clickonce

我有一个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);
    }
}

1 个答案:

答案 0 :(得分:1)

你不会得到.NET程序集"旁边的VB6应用程序exe"除非您使用ClickOnce部署VB6应用程序。并且您无法使用ClickOnce直接部署VB6应用程序,因为ClickOnce应用程序的入口点必须是.NET exe。

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