Ошибка: информация о конфигурации "Side-by-Side" в "BLAH.EXE" содержит ошибки

Это ошибка Dependency Walker дает мне исполняемый файл, который я создаю с помощью VС++ 2005 Express Edition. При попытке запустить .exe я получаю:

This application has failed to start because the application configuration
is incorrect. Reinstalling the application may fix this problem.

(Я новичок в манифесте/SxS/и т.д., который делает вещи после VС++ 2003.)

EDIT: Я работаю на той же машине, с которой я создаю .exe. В Event Viewer у меня есть бесполезное:

Faulting application blah.exe, version 0.0.0.0, faulting module blah.exe,
version 0.0.0.0, fault address 0x004239b0.

Ответы

Ответ 1

Откройте лист свойств для своего проекта, перейдите на страницу "Свойства конфигурации → C/С++ → Генерация кода" и измените выбор библиотеки времени выполнения на /MT или/MTd, чтобы ваш проект не использовал библиотеки времени выполнения DLL.

Время выполнения C/С++ DLL, используемое VS2003 и выше, автоматически не распространяется с последней версией ОС и является реальной болью для установки и работы без такой проблемы. статически связывать c-runtime и просто избегать полного беспорядка, который является манифестом и конкретными версиями DLL для выполнения.

Ответ 2

Извините, что столкнулся с старым вопросом, но я смог обойти эту точную проблему и подумал, что отправлю решение на тот случай, если кому-то это понадобится...

Даже после установки распространяемых DLL файлов Microsoft я получал эту ошибку, исправление заключалось в том, чтобы скопировать

C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT

в каталог приложения на целевом компьютере. После этого больше нет проблем.

BTW, DLL, которая давала мне проблемы, была сторонняя DLL, у которой никогда не было проблем на более чем 100 других компьютерах... go figure.

Ответ 3

У меня была эта проблема. Решение состоит из двух этапов:
1. Скомпилируйте свою программу в режиме "Release" вместо режима "Отладка" (обычно на панели инструментов есть комбинированное поле)
2. Загрузите из Microsoft их Распространяемый пакет компонентов времени исполнения. Обязательно загрузите версию x86 для 32-разрядных компьютеров и версию x64 для 64-разрядных компьютеров/ОС. Установите этот пакет на целевой компьютер, и ваше приложение должно работать нормально

P.S. Это вещь SxS
P.P.S. Кроме того, используйте другой компилятор (например, GCC, например, с Dev-Cpp), чтобы скомпилировать ваш источник программы, и ваши головные боли исчезнут.

Ответ 4

Запустите средство просмотра событий: у него будет больше информации.

Возможно, вы попытались запустить свою программу на компьютере, на котором не установлены распространяемые VC-компоненты, или вы пытаетесь запустить сборку отладки на машине, на которой не установлена ​​Visual Studio (библиотеки отладки не распространяются).

Ответ 5

У меня была та же проблема с VS 2008-встроенными отладчиками на других машинах win3p sp3.

  • Сначала я попробовал установить клиентскую машину с пакетом vic redist, поскольку это казалось разумным. Раздражающе, он не работал.
  • Я попытался скопировать все зависимые dll в каталог приложения - все еще не работал
  • После нескольких часов работы над этой проблемой я обнаружил, что последние сборки VS требуют наличия манифеста и политик для связи с dll. После копирования их в соответствующие папки "C:\WINDOWS\WinSxS \" я получил рабочий.

Проблема возникла из-за того, что пакет vc redist не установил отладочные версии DLL, они как-то подумали о том, чтобы выяснить, что программист.