我目前正在将旧版 VBA 应用程序移植到 .Net 应用程序。在此过程中,现有 VBA 应用程序的用户需要添加一些功能。因此,我没有先使用 VBA 再使用 C# 进行编码,而是使用 C# 编写了新功能,并且希望通过 COM 将其公开给现有的 VBA 应用程序,并将其保留在当前的 .Net 应用程序版本中。
该解决方案包含多个项目,1 个 UI 项目、1 个业务逻辑项目、1 个数据访问层项目。
新功能只是修改数据的一些新形式。因此,理想情况下,他们将单击表单命令按钮来通过 COM 互操作访问这些 C# 表单。
我应该如何通过 COM Interop 公开此表单。 我希望做的只是添加另一个项目 MyProject.COM,其中将包含我的接口(interface) ICOMManager,用于公开访问启动所需表单的方法。我的 COMManager 类将仅实例化 .net 应用程序中所需的表单并显示它们。 此项目 MyProject.COM 将引用 UI 层和业务逻辑层。
当我想使用 REGASM 注册此项目时,我将如何包含对这些其他项目的引用?
感谢您提供有关如何执行此操作的任何帮助或建议。
最佳答案
啊,好吧,我发现这比我想象的要容易得多。
当我查看 regasm 生成的 reg 文件时,我可以看到 tlb(类型库)只是一个指针,指向它可以在哪里找到执行 .Net 组件的库。
因此,一旦我注册了 tlb 并确保它指向其余项目文件所在的安装目录,它就可以工作。
关于C# COM 互操作库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1698142/