在我的C#.Net Windows项目中,我引用了vb6 COM dll(此COM dll是已安装在所有开发和客户端计算机上的SDK的一部分),然后我使用installshield为客户端计算机创建了安装程序/安装程序。 / p>
vb6 COM dll是在.Net 2.0中编译的(因此我的项目应向后兼容)
项目在开发机器上工作正常(构建和安装),但是当试图在客户机上运行时 - 我收到以下错误。
Problem signature: Problem Event Name: CLR20r3 Problem Signature 01: MyProject tool.exe Problem Signature 02: 1.0.3.0 Problem Signature 03: 5252b033 Problem Signature 04: MyProject tool Problem Signature 05: 1.0.3.0 Problem Signature 06: 5252b033 Problem Signature 07: 8 Problem Signature 08: b Problem Signature 09: System.InvalidCastException OS Version: 6.1.7601.2.1.0.256.48 Locale ID: 2057 Additional Information 1: 0a9e Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 Additional Information 3: 0a9e Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 Read our privacy statement online: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409 If the online privacy statement is not available, please read our privacy statement offline: C:\Windows\system32\en-US\erofflps.txt
我已经尝试过: - 最初我认为这个错误是由于vb6 COM dll的CLR版本不匹配造成的。所以,我试图在.net 2.0,3,4,4.5版本的.net中编译c#.net项目(NO Show - 同样的错误)。 - 然后我在同一台机器上安装了VS2010(最初我在同一台开发机器上使用了vs2012)并重新尝试了(没有显示 - 同样的错误)。 - 然后我创建了一个新的空项目,vb6 COM dll只有引用,并安装在它工作的客户端机器上。当我从c#.net项目中的vb6 COM dll创建类的实例时出现问题。我还注意到,当我创建COM类的实例时,它在VS2012中显示了界面(alt横幅窗口。当您在类名上移动鼠标时的小弹出窗口)。但它又适用于开发机器 - 所以不能成为接口问题。
Retrieving the COM class factory for component with CLSID {8F9F6324-E4E2-435A-AB66-7B766CE628AC} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
然后我查看了所有计算机上的注册表/ CLSID注册,并且COM已经注册。!
我也在stackoverflow论坛上尝试了很多解决方案。喜欢取消注册并重新注册msenv dlls。我尝试在客户端和开发机器上卸载并重新安装.net框架。
现在已经3周了。在这个阶段我能做些什么?