VB6多个开发人员参考错误

时间:2013-09-13 20:41:24

标签: vb6

我有一个vb6项目,可以不时地由任意数量的开发人员(一些在32位Windows上,一些在64位上)获得工作但我们得到参考错误,因为一些引用的Dll位于(和注册)在程序文件文件夹或程序文件(x86)文件夹中,取决于机器,这似乎混淆了vb6。

查看VBP中包含引用的路径,无论如何都要设置引用,以便它们不会在任何一个系统上出错?

1 个答案:

答案 0 :(得分:7)

据我所知(我可能错了)VB6实际上并没有使用这些路径。相反,它使用TypeLib GUID和版本查看注册表并找到包含类型信息的文件。然后它会更新路径,它仅在您再次保存VBP时使用。

也许这条路径实际使用的唯一时间是类型库和版本无法在注册表中找到。这可能会触发VB6尝试使用基于此路径的自注册入口点调用重新注册库。

如果这是不正确的,那么下面的内容不适用,尽管这通常是事情的正常运作方式:

您的问题似乎更有可能是VB6和/或这些(第三方?)库从未正确安装过。

如果未全局注册库(HKLM),则打开此类项目的每个“新用户”(该机器上的新用户)将根据VBP文件中的路径触发重新注册尝试。如果失败,他们的参考问题就会破裂。

如果VB6.EXE未运行升级,则导航到库中手动更正此操作会导致在注册表虚拟存储库中为该用户重新注册库的副作用,从而使该问题似乎消失。如果运行升高那么它应该从那里“解决”该机器上的每个人的问题。这不是一个真正的治疗方法,因为你在各个用户的虚拟商店中都有孤立的垃圾注册,这可能会在你的库更新时引起你的不满。

VB6和它将使用的库需要在完全升级时安装:它们的部件和部件需要存储在非虚拟化文件夹中,组件必须在非虚拟化HKLM配置单元中注册。

VB6.EXE应该始终运行提升,并且如果通过应用应用程序清单来完成提升,这将最可靠,这将阻止遗留应用程序虚拟化。

WOW64注册表重定向是一个单独的主题。由于VB6.EXE是32位软件,应该透明地运行。

相关问题