Windows 7 从VB6 IDE调用Comwrapped网络代码失败,错误为';ActiveX组件可以';t创建对象';在Win7中,但不在WinXP中

Windows 7 从VB6 IDE调用Comwrapped网络代码失败,错误为';ActiveX组件可以';t创建对象';在Win7中,但不在WinXP中,windows-7,vb6,vb6-migration,regfreecom,Windows 7,Vb6,Vb6 Migration,Regfreecom,我们使用RegFree Com已经一年多了,现在已经成功地创建了混合VB6/VB.Net程序。 由于我们现在想在NET4.5中开发一些组件,我们必须从Win7开始使用VB6IDE,而我们最初是从WinXP开发的 问题在于,与WinXP中的VB6 IDE一起使用的完全相同的RegFree Com配置在Win7中不起作用(安装编译后的可执行文件可以完美地工作)。我们得到了一般的“ActiveX组件无法创建对象”错误。我使用了Fuslogvw.exe和SxSTrace.exe,我破坏了Windows日

我们使用RegFree Com已经一年多了,现在已经成功地创建了混合VB6/VB.Net程序。 由于我们现在想在NET4.5中开发一些组件,我们必须从Win7开始使用VB6IDE,而我们最初是从WinXP开发的

问题在于,与WinXP中的VB6 IDE一起使用的完全相同的RegFree Com配置在Win7中不起作用(安装编译后的可执行文件可以完美地工作)。我们得到了一般的“ActiveX组件无法创建对象”错误。我使用了Fuslogvw.exe和SxSTrace.exe,我破坏了Windows日志,但没有错误消息解释对象实例化失败的原因

那么,我还能做些什么来找出这个问题的原因呢?

,解决方案是在WinXP SP2兼容模式下运行VB6 IDE(以管理员身份)。这个解决方案对我不起作用。似乎WinXP以不同的方式实现了RegFree Com。所以现在是必要的


Bob警告不要使用VB6.exe的清单来测试网络程序集的Com包装器。不过,我们已经使用这种技术一年多了,没有出现任何问题。

我们不是几天前才看到同样的问题吗?Visual Studio IDE(包括VB6)必须始终提升运行。开发中使用的ActiveX库必须在开发人员计算机上安装和注册,即使输出将在目标系统上使用reg free。@Bob77我可以向您保证,我们从未在WinXP开发计算机上注册过Net Com包装器。如果必须在Win7上注册,那将非常糟糕,由于许多版本的网络代码都经过测试,dll地狱威胁着我……如果这是真的,我会感到惊讶。IDE如何运行以找出要使用的程序集?对于已编译的程序,应用程序清单的条目中包含了这些信息。@Bob77我很惊讶您怀疑我:-)。另请参见:,它描述了这个确切的问题。不幸的是y在WinXP兼容模式下运行IDE也不再有效。如果您阅读了该线程,他们使用的是一种不明智的技术,即为VB6.EXE创建清单,列出大量可能的依赖程序集。这是一种糟糕的形式,可能会因清单缓存而导致大量混乱。您需要在developm上注册程序集免费COM是一种部署策略,而不是一种开发技术。