ing*_*ngt 18 .net com excel automation
我有一个.NET 2.0 COM对象,由VBA在Excel中使用.它在我的开发机器上工作正常,但是当试图在干净的VM工作站上使用它时,我收到此错误:
自动化错误.该系统找不到指定的文件.
该DLL已在"regasm/tlb/codebase mycom.dll"中注册,而不是放在GAC中.我没有VM框的管理权限
有任何想法吗?
sha*_*oth 16
您需要使用程序集的完整路径作为codebase
参数值调用regasm,或者将程序集放入某个位置,该位置始终位于搜索库的路径上.否则,当客户端尝试实例化COM对象时将找不到它.
在Windows 7,64位和.NET 4.0框架dll(32位),我希望可用作Microsoft Excel 2010 VBA应用程序的COM对象,这对我有用.
在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
Run Code Online (Sandbox Code Playgroud)如果您不想要或需要在注册程序集的计算机上进行智能感知,则可以跳过最后一部分(/ tlb:...).
我遇到的关键问题是,在XP上我从来没有使用/ codebase参数,但这是在此工作之前所需的关键事项.
在我创建了一个 .NET .dll (v4.0) 并打算在 VB6 应用程序中使用它之后,我收到了这个“自动化错误。系统找不到指定的文件”错误(用“ClassInterface”和“ ComVisible”属性,带有“ComVisible”的方法)。
我运行了“regasm.exe -tlb C:\PathTo\MyDll.dll”,但在我的 VB6 应用程序中添加 .tlb 文件作为参考并运行/调试它后收到上述错误。只有在将“-codebase”参数添加到 regasm.exe 调用并重新添加 .tlb 引用后,错误才得到解决。
只是想我会分享我的经验。
归档时间: |
|
查看次数: |
20363 次 |
最近记录: |