Проблема параллельного манифеста с VS2005 и VS2008

У меня есть проект C++, который я строю в VS2008. Этот проект также связывается с библиотекой (DLL + Import lib), которая была построена с использованием VS2005 и, таким образом, загружает библиотеку отладки CRT VS2005 (все является отладочной сборкой).

При попытке запустить этот исполняемый файл, встроенный в VS2008, я получаю сообщение об ошибке при загрузке из-за того, что DLL-библиотека VS2005 не находит библиотеки Debug CRT, даже если у меня установлен VS2005 с SP1. Я также проверил обновления Windows, так что я не совсем уверен, что еще я могу сделать.

Как мне диагностировать эту проблему? Я посмотрел на Event Viewer в Windows и заметил, что он не может найти отладочную библиотеку VC80 CRT, но это все, что я знаю. Я полагаю, что где-то здесь есть несоответствие версий, я просто не знаю, как это исправить, так как я мало что знаю об этом явном / параллельном материале.

Операционная система, на которой я работаю, - 32-битная Windows XP. У меня установлены VS2008 SP1 и VS2005 SP1 (поэтому все отладочные манифесты / библиотеки CRT должны быть доступны)

1 ответ

Решение

Научитесь проверять или создавать или проверять соответствующие сборочные манифесты.

Вот больше информации, как только вы это сделаете.

В Windows XP, если в локальной папке приложения присутствует внешний манифест, загрузчик операционной системы использует этот манифест вместо манифеста, встроенного в двоичный файл. В Windows Server 2003 и более поздних версиях Windows верно обратное: внешний манифест игнорируется, а встроенный манифест используется при его наличии.

Другие вопросы по тегам