0

我有一个调用 VB 进程内 COM 服务器的 VB 客户端应用程序myprogressbar

(是的,这是 VB 调用 VB 的不正当方式,但客户端是一个测试工具——在生产代码中,客户端不是 VB,需要使用 COM)。

Dim progressbar As Object = CreateObject("myprogressbar.myprogressbar")
progressbar.showform()

这失败并出现错误

System.Exception: cannot create ActiveX component.

x86 服务器已注册(成功)

c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe x86\Release\myprogressbar.dll

并且 x64 服务器已注册(成功)

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe x64\Release\myprogressbar.dll

更新:同样的事情发生在单个服务器编译为Any CPU. 任何先前关于 x86 版本工作的报告仅归结为仍在注册的先前安装。

4

1 回答 1

0

解决了这个问题。

问题是 .NET 程序集,除非加载到 GAC 中,否则需要使用/cswitchregasm注册(它注册代码库的完整路径),因此可执行文件可以在运行时找到它们。这与regsvr32默认情况下具有这种行为的情况形成对比。

于 2013-04-12T14:02:12.410 回答