2

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

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

新功能只是修改数据的一些新形式。因此,理想情况下,他们将单击表单命令按钮,通过 COM 互操作访问这些 C# 表单。

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

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

感谢您提供有关如何执行此操作的任何帮助或建议。

4

1 回答 1

3

啊,好吧,所以我看到这比我想象的要容易得多。

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

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

于 2009-11-09T01:48:51.680 回答