Visual studio 从.net framework使用com公开的.net核心对象

Visual studio 从.net framework使用com公开的.net核心对象,visual-studio,.net-core,com,Visual Studio,.net Core,Com,我已经下载了Microsofts将.net核心对象公开给com()的示例项目,该项目附带的代码显示了它的所有功能 如果您使用标准regsvr32注册生成的服务器com dll,您是否应该能够从.net framework应用程序(或可以使用此类已注册dll的任何环境)中使用它 当我使用.net framework创建其(工作)客户端控制台应用程序的精确副本时,运行时会抱怨该类未注册。是的,它应该可以正常工作。未注册的类(或0x80040154/REGDB_E_CLASSNOTREG)是唯一的部署

我已经下载了Microsofts将.net核心对象公开给com()的示例项目,该项目附带的代码显示了它的所有功能

如果您使用标准regsvr32注册生成的服务器com dll,您是否应该能够从.net framework应用程序(或可以使用此类已注册dll的任何环境)中使用它


当我使用.net framework创建其(工作)客户端控制台应用程序的精确副本时,运行时会抱怨该类未注册。

是的,它应该可以正常工作。未注册的类(或0x80040154/REGDB_E_CLASSNOTREG)是唯一的部署/注册问题。确保您已在与调用.NET Framework进程(x86 vs x64)相同的注册表(32b vs 64b)中注册了.NET Core COM对象。我确实使用了regsvr32注册了它,这是使.NET Core应用程序能够激活它所必需的。但是,.net framework应用程序(相同的代码,并从相同的解决方案中运行)仍然抱怨未注册类。我理解这一点,但“未注册类”始终是一个部署问题。同样的解决方案是不相关的。如果您在64位注册表中注册,请确保您的.NET Framework应用程序以64位运行。编译为x64,或取消选择“首选32位”,等等。感谢回复。你是对的,如果我强制.net framework应用程序使用x64运行,它会正常工作。然后,我注销了com dll(确认.net核心应用程序停止工作),并使用\windows\syswow64\regsvr32重新注册,但运行x86版本的.net framework应用程序仍然不起作用。他们是这方面的一条前进路线吗?对不起,进一步连接我设置的点,所有项目都涉及到x86,这是可行的。我接下来要做的是直接从vb6使用.net core COM对象,但ofc我甚至不能引用DLL。如果我在core和vb6环境之间设置.net framework客户端,并将其公开给COM,那么一切都可以正常工作。有没有前进的路线?