【问题标题】:C# COM Interop LibraryC# COM 互操作库
【发布时间】:2010-12-14 11:08:52
【问题描述】:

我目前正在将旧版 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 注册此项目时,我将如何包含对这些其他项目的引用?

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

【问题讨论】:

    标签: c# vba com interop regasm


    【解决方案1】:

    啊,好吧,我发现这比我想象的要容易得多。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-27
      • 2010-12-27
      • 2014-09-05
      • 2014-09-03
      • 2011-07-02
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      相关资源
      最近更新 更多