【发布时间】:2011-04-28 17:48:12
【问题描述】:
我在我的 Win7 x64 机器上编译了一些 VB6 代码,结果 .exe 将无法在任何其他机器上正确运行。
VB6 代码只是一个带有一个按钮的新模板 .exe 文件,对“Microsoft ActiveX 数据对象 2.6 库”的引用以及按钮按下事件中的以下代码:
Dim db
Set db = New ADODB.Connection
它在我的机器上正常运行,但没有其他机器(甚至是其他 Win7 x64 机器)(更新:我发现它运行的其他两个用户,其中一个是 Jeff Atwood!,但大多数机器都有同样的问题)
我检查了两台机器上的引用屏幕,看看引用是否失败(虽然它不会编译,但编译得很好)。一切看起来都是合法的。在 64 位机器上,引用进入 SysWow64 而不是 system32。
我什至已经在 Vista 64 位机器上成功编译了它并让它正常运行。它只是在 Windows 7 上编译,然后在发生错误的任何其他机器上运行。
这是在我的盒子上运行 CompChecker 的结果:
注册表信息:ADODB.Connection 具有 GUID HKEY_CLASSES_ROOT\CLSID{00000514-0000-0010-8000-00AA006D2EA4}
InprocServer32 是 %CommonProgramFiles%\System\ado\msado15.dll
【问题讨论】:
-
我也有同样的问题。这曾经有效,必须是MS更新或什么的!
-
@Mark 那就给这个问题投票吧!
-
奇怪的是它可以在 Vista 而不是 Windows 7 上运行。您是否尝试在禁用 UAC 或明确“以管理员身份运行”的情况下运行它?
-
@jeff Win2003 没有 UAC 或任何类似的东西......问题在于 win2k3 盒子。在win7上编译的应用程序在win7上运行良好。
-
我认为这使用 "Mdac 2.7" ,不确定 Win 7 是否支持它,但如果它在 Vista 上,我也会假设为 7。
标签: vb.net automation 64-bit