Мы включили стороннюю библиотеку lib + 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?
EDIT:
Я сейчас попробовал совет христиан:
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, отличную от той, которая находится рядом с ней. Может быть, это проблема зависимого странника?