Мы включаем стороннюю библиотеку + DLL, которая в последнее время вызывает много проблем при установке. Используя dependencywalker, мы обнаружили, что сама dll относится к двум различным версиям
MSVCR80.DLL:
Version 8.0.50727.4053 and
Version 8.0.50727.42
альтернативный текст http://img101.imageshack.us/img101/1734/dependencywalk2.jpg < / а>
В большинстве случаев установка не вызывает проблем, даже если мы не распространяем ни одну из обеих версий. Но в ряде случаев наша установка просто не запускается. Затем мы находим сообщения в журнале системных событий Windows от менеджера SideBySide: «Версия DLL не совпадает». В большинстве случаев эту проблему снова можно решить, установив .NET framework (хотя мы этим не пользуемся). Но теперь у нас есть случай, когда это не помогает.
Я знаю, что решением было бы установить обе версии как общую сборку, но это кажется непростым, и, кроме того, я бы предпочел гораздо более простое решение. Кто-нибудь знает обходной путь?
Можно как-то использовать только одну версию Dll?
РЕДАКТИРОВАТЬ: Теперь я попробовал совет христианина:
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.
Если я просматриваю зависимости dll с полными путями, я вижу следующее: http://img340.imageshack.us/img340/4122/dependencywalk3.jpg
Нижний MSVCR80.DLL - это версия с версией ... 42. Я этого не понимаю. Почему MSVC P 80.DLL относится к другой версии MSVC R 80.DLL, чем та, которая стоит за ней? Может быть, это проблема зависимого пользователя?