SidBySide:第三方Dll是指两个版本的MSVCR80.DLL [英] SidBySide: 3rd Party Dll refers to two versions of MSVCR80.DLL

查看:332
本文介绍了SidBySide:第三方Dll是指两个版本的MSVCR80.DLL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们加入了第三方的lib + DLL,最近在安装上造成了很多麻烦。使用。这也是你的DLL链接的版本。你可以静静地从你的安装程序启动再发行组件包。



对于已经安装的系统中手动解决方法,简单地套用在目标机器上的REDIST安装程序。



如果您选择这种方法,你不必害怕版本冲突,因为这取决于一个老版本的应用程序将被重定向到总是使用最近的一次。



为了更好地了解您,请查看此 MSDN文章


We include a 3rd Party lib+DLL that recently causes a lot of trouble on installations. Using dependencywalker, we found that the dll itself refers to two different Versions of

MSVCR80.DLL:
Version 8.0.50727.4053 and
Version 8.0.50727.42

In MOST cases installation makes no problems, even if we distribute none of both versions. But in a number of cases our installation just does not start. We then find messages in the windows system event log from the SideBySide manger: "Version of DLL does not match". In most cases again this problem can be resolved, by installing the .NET framework (although we do not use this). But now we have a case where this does not help.

I know that a solution would be, to install both versions as a shared assembly, but that seems not to be easy, and besides that i would prefer a much simpler solution. Does anybody know a workaround?

Can i somehow use only one version of the Dll?

EDIT: I now tried cristians advice:

D:\Develop\LEADTOOLS15\patch_maifest>mt.exe -inputresource:ltkrn15u.dll;#1 -out:old.manifest
Microsoft (R) Manifest Tool version 5.2.3790.2075
Copyright (c) Microsoft Corporation 2005.
All rights reserved.

mt.exe : general error c101008c: Failed to read the manifest from the resource of file "ltkrn15u.dll". Ressource not found.

If i view the dlls dependencies with full paths, i see the following:

The lower MSVCR80.DLL is the one withe Version ...42. I dont understand this. Why does MSVC**P**80.DLL refer to a different Version of MSVC**R**80.DLL than the one besides it. Is that maybe a problem of the dependencywalker ?

解决方案

Your best option is to ship the needed DLLs within your applications installer package. Use at least the version that your 3rd party DLL depends on.

Microsoft offers standalone installers for its runtime DLLs (vcredits_*). The latest version for VisualStudio 2005 can be downloaded here. That is also the version that your DLL is linked against. You can silently launch the redistributable package from your installer.

As a manual workaround for already installed systems, simply apply the redist installer on the target machine.

If you choose this method, you don't need to be afraid of version conflicts, as applications depending on an older versions will be redirected to always use the most recent one.

For a better understanding you have look at this MSDN articles.

这篇关于SidBySide:第三方Dll是指两个版本的MSVCR80.DLL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆