我有一个VB客户端应用程序,它调用VB进程内COM服务器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版本工作报告仅限于之前仍在注册的安装。
答案 0 :(得分:0)
解决了这个问题。
问题是.NET程序集除非加载到GAC中,否则需要使用/c
切换到regasm
(注册代码库的完整路径),因此可执行文件可以找到它们在运行时。这与默认情况下具有此类行为的regsvr32
形成对比。