VB6多个开发人员引用错误

VB6多个开发人员引用错误,vb6,Vb6,我有一个vb6项目,由任意数量的不同开发人员(一些在32位Windows上,一些在64位win上)不时地进行工作,但我们得到了引用错误,因为一些引用的Dll位于(并注册)program files文件夹或program files(x86)中文件夹取决于机器,这似乎混淆了vb6 查看VBP,包括引用的路径,是否有任何方法设置引用,以使其不会在两个系统上出错?据我所知(我可能是错的),VB6实际上在很多事情上都不使用这些路径。相反,它使用TypeLib GUID和版本在注册表中查找并找到包含类型信

我有一个vb6项目,由任意数量的不同开发人员(一些在32位Windows上,一些在64位win上)不时地进行工作,但我们得到了引用错误,因为一些引用的Dll位于(并注册)program files文件夹或program files(x86)中文件夹取决于机器,这似乎混淆了vb6

查看VBP,包括引用的路径,是否有任何方法设置引用,以使其不会在两个系统上出错?

据我所知(我可能是错的),VB6实际上在很多事情上都不使用这些路径。相反,它使用TypeLib GUID和版本在注册表中查找并找到包含类型信息的文件。然后它更新路径,该路径仅在再次保存VBP时使用

可能只有在注册表中找不到typelib&version时才真正使用此路径。这可能会触发VB6尝试使用基于此路径的自注册入口点调用重新注册库

如果这是不正确的,则以下内容不适用,尽管这是通常情况下的工作方式:

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

如果库未全局注册(HKLM),则打开此类项目的每个“新用户”(该计算机上的新用户)将根据VBP文件中的路径触发重新注册尝试。如果失败,他们将有一个断开的引用问题

如果VB6.EXE未运行,则通过导航到库来手动更正此问题会导致在注册表virtualstore中为该用户重新注册库的副作用,从而使该用户的问题似乎消失。如果提升运行,那么从那时起,它应该“解决”该机器上的每个人的问题。这并不是一种真正的治疗方法,因为你在不同用户的虚拟存储中孤立了垃圾注册,这可能会在将来库更新时对你造成伤害

VB6及其将使用的库需要在完全提升的情况下安装:它们的片段和部件需要存储在非虚拟化文件夹中,并且组件必须在非虚拟化HKLM配置单元中注册

VB6.EXE应始终在提升状态下运行,如果通过应用应用程序清单来完成提升,则VB6.EXE将是最可靠的,因为提升会阻止旧式应用程序虚拟化

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

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

可能只有在注册表中找不到typelib&version时才真正使用此路径。这可能会触发VB6尝试使用基于此路径的自注册入口点调用重新注册库

如果这是不正确的,则以下内容不适用,尽管这是通常情况下的工作方式:

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

如果库未全局注册(HKLM),则打开此类项目的每个“新用户”(该计算机上的新用户)将根据VBP文件中的路径触发重新注册尝试。如果失败,他们将有一个断开的引用问题

如果VB6.EXE未运行,则通过导航到库来手动更正此问题会导致在注册表virtualstore中为该用户重新注册库的副作用,从而使该用户的问题似乎消失。如果提升运行,那么从那时起,它应该“解决”该机器上的每个人的问题。这并不是一种真正的治疗方法,因为你在不同用户的虚拟存储中孤立了垃圾注册,这可能会在将来库更新时对你造成伤害

VB6及其将使用的库需要在完全提升的情况下安装:它们的片段和部件需要存储在非虚拟化文件夹中,并且组件必须在非虚拟化HKLM配置单元中注册

VB6.EXE应始终在提升状态下运行,如果通过应用应用程序清单来完成提升,则VB6.EXE将是最可靠的,因为提升会阻止旧式应用程序虚拟化


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

您可以检查一个文件/目录是否存在,以及它是否引用了另一个文件/目录。您可以检查一个文件/目录是否存在,以及它是否引用了另一个文件/目录。