Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#COM互操作库_C#_Vba_Com_Interop_Regasm - Fatal编程技术网

C#COM互操作库

C#COM互操作库,c#,vba,com,interop,regasm,C#,Vba,Com,Interop,Regasm,我目前正在将遗留的VBA应用程序移植到.Net应用程序。在此过程中,现有VBA应用程序的用户需要添加一些功能。因此,我没有在VBA中编写它们&然后在C#中编写它们,而是在C#中编写了新功能,我希望通过COM将其公开给现有的VBA应用程序,并将其保留在当前的.Net应用程序版本中 该解决方案包含几个项目,一个用于UI的项目,一个用于业务逻辑的项目,一个用于数据访问层的项目 这些新特性只是修改数据的一些新表单的一个例子。因此,理想情况下,他们会单击access中的表单命令按钮,通过COM互操作访问这

我目前正在将遗留的VBA应用程序移植到.Net应用程序。在此过程中,现有VBA应用程序的用户需要添加一些功能。因此,我没有在VBA中编写它们&然后在C#中编写它们,而是在C#中编写了新功能,我希望通过COM将其公开给现有的VBA应用程序,并将其保留在当前的.Net应用程序版本中

该解决方案包含几个项目,一个用于UI的项目,一个用于业务逻辑的项目,一个用于数据访问层的项目

这些新特性只是修改数据的一些新表单的一个例子。因此,理想情况下,他们会单击access中的表单命令按钮,通过COM互操作访问这些C#表单

我应该如何通过COM互操作公开这些表单。 我希望做的只是添加另一个项目MyProject.COM,它将包含我的接口ICOMManager,用于向access公开方法以启动所需的表单。我的CommManager类将只是在.net应用程序中实例化所需的表单并显示它们。 此项目MyProject.COM将引用UI层和业务逻辑层

当我想使用REGASM注册此项目时,我将如何包括对这些其他项目的引用


感谢您提供的帮助或建议。

啊,好的,所以我觉得这比我想象的要容易得多

查看regasm生成的reg文件后,我发现tlb(类型库)只是一个指针,它可以找到执行.Net组件的库

因此,一旦我注册了tlb,并确保它指向其他项目文件所在的安装目录,它就可以工作了