解决客户端调用FDO动态库加载不正常造成的问题
2011-08-16 10:34
239 查看
客户端使用了FDO的Mgd库,在客户机器上始终不能正常加载,直接用记事本打开DLL,在最后的几行,查下来居然有个一库使用了Microsoft.VC90.DebugCRT,引用其它人文章解决:
知道了程序依赖于具体哪一个dll以后,你可以将所依赖的dll拷贝到程序的安装文件夹里面,以CRT库绑定失败为例,介绍解决步骤:
1.
从上例中我们知道程序依赖的Microsoft.VC90.DebugCRT库,版本号是9.0.21022.8,需要32位机器版本的CRT。这个依赖项一般是因为你的程序是调试版,所以Visual
Studio在编译的时候,将调试版的CRT加入程序的依赖项。
2.
从Visual Studio的安装文件夹里面将D:"Program Files"Microsoft Visual Studio 9.0"VC"redist"Debug_NonRedist"x86中的Microsoft.VC90.DebugCRT整个文件夹拷贝到应用程序所在的文件夹里面,注意:
a)
如果你的程序依赖的是32位的CRT,则要拷贝x86文件夹里面的Microsoft.VC90.DebugCRT文件夹,如果是先x64程序,则要拷贝x64文件夹里面。
b)
你需要确定Microsoft.VC90.DebugCRT文件夹里面的Microsoft.VC90.DebugCRT.manifest文件里面保存的版本信息而你程序依赖的版本信息匹配,Microsoft.VC90.DebugCRT.manifest里面的版本信息大版本号一定要一致,小版本号一定要等于或者大于你程序依赖的CRT的小版本号。比如上例中,我们的程序是依赖于CRT
9.0.21022.8,而我们的Microsoft.VC90.DebugCRT.manifest的版本是9.0.30729.1,这样是可以的;而8.0.30729.1就会有问题。如果大版本号一样,小版本号不一致的话,一个比较简单的方案就是修改程序的manifest文件,使其互相匹配就可以了。
3.
如果你的程序不是依赖调试版本的CRT,而是release版本的CRT,直接去微软的官方网站下载一个crt
redist包安装上就可以了。
结束后,仍然没有解决问题,原来我的机器上使用了Path环境变量指向了公共FDO文件夹,而客户没有这样的文件夹。解决办法:拷贝需要的FDO库到程序文件夹。
知道了程序依赖于具体哪一个dll以后,你可以将所依赖的dll拷贝到程序的安装文件夹里面,以CRT库绑定失败为例,介绍解决步骤:
1.
从上例中我们知道程序依赖的Microsoft.VC90.DebugCRT库,版本号是9.0.21022.8,需要32位机器版本的CRT。这个依赖项一般是因为你的程序是调试版,所以Visual
Studio在编译的时候,将调试版的CRT加入程序的依赖项。
2.
从Visual Studio的安装文件夹里面将D:"Program Files"Microsoft Visual Studio 9.0"VC"redist"Debug_NonRedist"x86中的Microsoft.VC90.DebugCRT整个文件夹拷贝到应用程序所在的文件夹里面,注意:
a)
如果你的程序依赖的是32位的CRT,则要拷贝x86文件夹里面的Microsoft.VC90.DebugCRT文件夹,如果是先x64程序,则要拷贝x64文件夹里面。
b)
你需要确定Microsoft.VC90.DebugCRT文件夹里面的Microsoft.VC90.DebugCRT.manifest文件里面保存的版本信息而你程序依赖的版本信息匹配,Microsoft.VC90.DebugCRT.manifest里面的版本信息大版本号一定要一致,小版本号一定要等于或者大于你程序依赖的CRT的小版本号。比如上例中,我们的程序是依赖于CRT
9.0.21022.8,而我们的Microsoft.VC90.DebugCRT.manifest的版本是9.0.30729.1,这样是可以的;而8.0.30729.1就会有问题。如果大版本号一样,小版本号不一致的话,一个比较简单的方案就是修改程序的manifest文件,使其互相匹配就可以了。
3.
如果你的程序不是依赖调试版本的CRT,而是release版本的CRT,直接去微软的官方网站下载一个crt
redist包安装上就可以了。
结束后,仍然没有解决问题,原来我的机器上使用了Path环境变量指向了公共FDO文件夹,而客户没有这样的文件夹。解决办法:拷贝需要的FDO库到程序文件夹。
相关文章推荐
- 解决kafka数据目录迁移后,flume无法正常调用Consumer的问题
- 解决kafka数据目录迁移后,flume无法正常调用Consumer的问题
- 解决 IOS9.0 调用qq2.91SDK登录 只显示web页面而不能调用客户端登录的问题
- 解决路由问题造成客户端无法访问服务器的方法之瞒天过海
- 解决ionic 上拉加载组件 ion-infinite-scroll自动调用多次的问题
- DllMain加载其他DLL造成的死锁问题及其解决办法
- 解决imageView加载图片时候造成内存溢出的问题
- 解决kafka数据目录迁移后,flume无法正常调用Consumer的问题
- 解决Hibernate 注解在属性上 ,多对一,一对一懒加载 当调用one那一方getId 也会查数据库的问题
- 解决: Firefox一些页面绝大部门显示正常,但却永远加载不完的问题,页面一直在加载中
- java中调用本地动态链接库(*.DLL)的两种方式详解和not found library、打包成jar,war包dll无法加载等等问题解决办法
- DllMain加载其他DLL造成的死锁问题及其解决办法
- nginx 负载代理 不能正常 加载 CSS ,JSP等 问题 解决方法
- SAP的程序用客户端连接正常,用C#连接死活连不上问题的解决
- 解决在IIS中调用Microsoft Office Excel组件后进程无法正常退出的问题
- 解决kafka数据目录迁移后,flume无法正常调用Consumer的问题
- 巧妙解决js内容调用导致页面加载慢的问题
- 故障解决:VS2005的水晶报表在WEB应用程序中多次使用后,就会出现加载报表失败.重启WEB服务器又正常了.过一段时间又出同样问题
- 一次调用动态库时出现问题的解决历程
- nginx反向代理tomcat,由于客户端输入的端口不一致造成网页basehref错误的问题及解决办法