使用regasm注册tlb COM



我有.NET程序集

我正在尝试为COM互操作注册它,以便使用以下命令从VBA调用它:

regasm foo.dll/tlb:foo.tlb/codebase

当我在电脑上做的时候,我可以毫无问题地使用它。VBA中的代码工作正常。问题是,当我在其他电脑中使用regasm(用同一句话)时,它似乎注册得很好(regasm说得很好),但当我在VBA中执行代码时,它会因为找不到类型而出错。参考安装正确。

启动Excel。转到任务管理器并在进程列表中找到它。如果上面写着"excel.exe",那么您正在运行一个64位进程(如果在32位操作系统上,则为32位)。如果它说"excel.exe*32",那么您正在64位操作系统上运行32位进程。

我预计问题是因为您运行的是64位版本的Office。

因此,步骤:

  1. 查找cmd.exe并以管理员身份启动它--您必须具有提升的权限
  2. 注册时运行regasm.exe的64位版本。对于正常安装,请使用"c:\windows\Microsoft.Net\Framework64\v2.0.50727\regasm.exe foo.dll/tlb/codebase"。如果您使用另一个版本的.Net构建它,请使用该版本而不是2.0.50727

最新更新