Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 客户端计算机上的嵌入式互操作REGDB_E_CLASSNOTREG错误_Vb.net_Visual Studio 2017_Interop_Com Interop - Fatal编程技术网

Vb.net 客户端计算机上的嵌入式互操作REGDB_E_CLASSNOTREG错误

Vb.net 客户端计算机上的嵌入式互操作REGDB_E_CLASSNOTREG错误,vb.net,visual-studio-2017,interop,com-interop,Vb.net,Visual Studio 2017,Interop,Com Interop,我已将我的应用程序编译为x86。 我正在我的应用程序中使用VB6 COM互操作。 我已经将引用设置为“嵌入互操作类型=是”,“隔离类型=否” 我不需要在客户机上安装任何东西,甚至“Interop.MyDLL.dll”也不需要安装任何东西,它神奇地工作了 我可以在我的测试计算机上轻松地测试这个,它工作得很好 现在,在客户端计算机上,当我尝试访问DLL时,会抛出错误“System.TypeInitializationException,class not registered,HRESULT:0x8

我已将我的应用程序编译为x86。 我正在我的应用程序中使用VB6 COM互操作。 我已经将引用设置为“嵌入互操作类型=是”,“隔离类型=否”

我不需要在客户机上安装任何东西,甚至“Interop.MyDLL.dll”也不需要安装任何东西,它神奇地工作了

我可以在我的测试计算机上轻松地测试这个,它工作得很好

现在,在客户端计算机上,当我尝试访问DLL时,会抛出错误“System.TypeInitializationException,class not registered,HRESULT:0x80040154(REGDB_E_CLASSNOTREG)”

它发生在我重新编译并部署应用程序之后。在那之前,它工作得很好

罪魁祸首可能是什么?

COM没有“魔力”,您必须注册VB6 COM组件(dll、ocx等)

interop.NET dll不是COM组件,它只包含从.NET到COM的元数据/绑定,因此不需要注册


PS:事实上,你不需要注册,你只需要给客户端一个找到你的方法,所以也可以使用,但这比简单地注册一堆dll要复杂。

你不需要注册互操作dll(它不是COM组件,只是元数据定义)。但必须注册VB6 COM组件(dll、ocx等)。没有魔法。@SimonMourier天哪,你说得对。问题是,几年前我在测试机上将它安装到SysWow64上,所以我没有注意到我需要它。非常感谢你!也许你可以把你的评论作为回答。然后其他像我这样的傻瓜也能找到答案。