注册tlb COM与regasm

时间:2015-03-05 11:37:30

标签: c# com regasm

我有 .NET程序集

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

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

当我在电脑上播放时,我可以毫无问题地使用它。 VBA 中的代码有效。问题是当我在其他电脑中使用相同的句子(相同的句子)时,似乎注册良好(regasm说)但是当我在VBA中执行代码时,它会因为找不到类型而引发错误。参考安装正确。

1 个答案:

答案 0 :(得分:1)

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

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

所以,步骤:

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