我有一个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);
}
}
答案 0 :(得分:1)
你不会得到.NET程序集"旁边的VB6应用程序exe"除非您使用ClickOnce部署VB6应用程序。并且您无法使用ClickOnce直接部署VB6应用程序,因为ClickOnce应用程序的入口点必须是.NET exe。
你可以创建一个.NET存根应用程序,只需启动VB6应用程序,然后使用ClickOnce部署所有文件(存根,VB6,.NET程序集)。这似乎是最干净的解决方案。