主题:[讨论]新"资源文件版本不匹配"问题
fczjyb
[专家分:0] 发布于 2009-03-20 15:30:00
原来我的机上装有多个版本的数据库应用软件(包括VFP),运行正常,最近其中一个软件出错,卸载重装时出现“资源文件版本不匹配”,并弹出“Visual FoxPro cannot start.Could not load resources.”提示。我在网上搜过很多解决方案,都没有用,比如在运行正常机上复制vfp6r.dll、vfp6rchs.dll、vfp6renu.dll到我的系统system32下覆盖等等。敬请高手指点迷津,谢谢!
回复列表 (共6个回复)
沙发
CCB2000 [专家分:690] 发布于 2009-03-20 16:36:00
“资源文件不匹配”问题原因分析及解决方法
经常有Foxer提到“资源文件不匹配”问题。先看看:
VFP8R.DLL搜索顺序:
1、应用程序文件夹;
2、注册表(HKEY_CLASSES_ROOT\VisualFoxProRuntime.8\Shell\Open\Command);
3、Windows系统文件夹。
VFP8RCHS.DLL搜索顺序:
先LoadLibray VFP8RCHS,搜索顺序:
1、应用程序文件夹;
2、Windows系统文件夹;
3、PATH环境变量指定的文件夹。
如果LoadLibray VFP8RCHS失败,再搜索:
4、注册表(HKEY_CLASSES_ROOT\VisualFoxProRuntime.8\Shell\Open\Command)。
VFP8R.DLL和VFP8RCHS.DLL的搜索顺序不一致,是造成“资源文件不匹配”问题的根本原因。
详细情况:
一、在应用程序文件夹搜索到VFP8R.DLL:
1-1:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)ok │ 1)ok │ ok │
├──────────┼──────┼──────┼─────┤
│注册表 │ │ │ │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ │ │ │
└──────────┴──────┴──────┴─────┘
1-2:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)ok │ 1)x │ │
├──────────┼──────┼──────┼─────┤
│注册表 │ │ │ │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ │ 2)ok │ error │
└──────────┴──────┴──────┴─────┘
1-3:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)ok │ 1)x │ │
├──────────┼──────┼──────┼─────┤
│注册表 │ │ 3)ok │ error │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ │ 2)x │ │
└──────────┴──────┴──────┴─────┘
二、在注册表搜索到VFP8R.DLL:
2-1:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)x │ 1)ok │ error │
├──────────┼──────┼──────┼─────┤
│注册表 │ 2)ok │ │ │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ │ │ │
└──────────┴──────┴──────┴─────┘
2-2:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)x │ 1)x │ │
├──────────┼──────┼──────┼─────┤
│注册表 │ 2)ok │ │ │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ │ 2)ok │ error │
└──────────┴──────┴──────┴─────┘
2-3:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)x │ 1)x │ │
├──────────┼──────┼──────┼─────┤
│注册表 │ 2)ok │ 3)ok │ ok │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ │ 2)x │ │
└──────────┴──────┴──────┴─────┘
三、在Windows系统文件夹搜索到VFP8R.DLL:
3-1:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)x │ 1)ok │ error │
├──────────┼──────┼──────┼─────┤
│注册表 │ 2)x │ │ │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ 3)ok │ │ │
└──────────┴──────┴──────┴─────┘
3-2:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)x │ 1)x │ │
├──────────┼──────┼──────┼─────┤
│注册表 │ 2)x │ │ │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ 3)ok │ 2)ok │ ok │
└──────────┴──────┴──────┴─────┘
3-3:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)x │ 1)x │ │
├──────────┼──────┼──────┼─────┤
│注册表 │ 2)x │ 3)ok │ error │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ 3)ok │ 2)x │ │
└──────────┴──────┴──────┴─────┘
板凳
CCB2000 [专家分:690] 发布于 2009-03-20 16:36:00
最常见的情况是:
2-2:
┌──────────┬──────┬──────┬─────┐
│搜索到Vfp运行库位置 │ VFP8R.DLL │VFP8RCHS.DLL│ 匹配结果 │
├──────────┼──────┼──────┼─────┤
│应用程序文件夹 │ 1)x │ 1)x │ │
├──────────┼──────┼──────┼─────┤
│注册表 │ 2)ok │ │ │
├──────────┼──────┼──────┼─────┤
│Windows系统文件夹 │ │ 2)ok │ error │
└──────────┴──────┴──────┴─────┘
即:在注册表搜索到VFP8R.DLL,但在Windows系统文件夹优先搜索到VFP8RCHS.DLL,
如果这两个文件版本不一致,就会发生“资源文件不匹配”错误!
“资源文件不匹配”问题解决方法:
Vfp安装时默认把运行库文件安装到:
C:\Program Files\Common Files\Microsoft Shared\VFP
建议同时拷贝到:
C:\Windows\System32文件夹下
以避免可能出现的“资源文件不匹配”问题。
3 楼
琅拿度 [专家分:2820] 发布于 2009-03-20 18:32:00
辛苦了
4 楼
fczjyb [专家分:0] 发布于 2009-03-25 07:59:00
首先感谢CCB2000大侠帮助,因为我的水平很菜,大侠的回复似懂非懂,不知如何处理.另外我再补充一点,我安装VFP数据库能正常运行,只是安装数据库开发的人事工资管理系统时出错,软件安装初期会向SYSTEM32系统文件夹写入VFP9RCHS.DLL和VFP9R.DLL两个文件,这会与系统中哪此文件产生冲突呢.
5 楼
CCB2000 [专家分:690] 发布于 2009-03-25 08:39:00
检查:
C:\Program Files\Common Files\Microsoft Shared\VFP\VFP9R*.DLL
和
C:\Windows\System32\VFP9R*.DLL
是否一致。
如果不一致,拷贝其中一个到另外一个文件夹内(建议保留最新的那个)即可。
6 楼
fczjyb [专家分:0] 发布于 2009-03-26 16:57:00
非常感谢CCB2000的热心指导,我已按上面的方法解决了,希望以后能再有机会请教,谢谢!
我来回复