Excel .NET COM - 自动化错误。该系统找不到指定的文件怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我有一个在Excel中由VBA使用的.NET 2.0 COM对象。它在我的开发机器上工作正常,但是当试图在干净的VM工作站上使用它时,我得到这个错误:

Automation error. The system cannot find the file specified.

该DLL注册了“regasm / tlb / codebase mycom.dll”,并未放入GAC。我没有VM框的管理权限

有任何想法吗?

提问于
用户回答回答于

在Windows 7,64位和一个.NET 4.0框架dll(32位)上,我希望可以用作Microsoft Excel 2010 VBA应用程序的COM对象,下面是我的工作。

  1. 将dll复制到c:\ windows \ syswow64
  2. 在cmd shell中运行 C:\Windows\Microsoft.NET\Framework\v4.0.<whatever you have>\regasm.exe c:\windows\syswow64\<name of dll> /codebase /tlb:c:\windows\syswow64\<name of dll minus '.dll'>.tlb

如果不想或需要在注册程序集的机器上使用智能感知,则可以跳过最后一部分(/ tlb :.)。

我遇到的关键问题是,在XP上我从来没有必要使用/ codebase参数,但这是在此之前需要的关键事情。

用户回答回答于

需要使用程序集的完整路径作为codebase参数值调用regasm,或者将程序集放入始终位于搜索库路径中的某个位置。否则当客户端尝试实例化COM对象时将不会找到它。

扫码关注云+社区