Тестирование визуального кода на тестовой ванильной машине не запускается - PullRequest
0 голосов
/ 28 мая 2009

Это приложение не удалось запустить потому что конфигурация приложения это неверно. Переустановка Приложение может решить эту проблему.

Это то, что я получаю, когда пробую свой файл отладки в системе без установленной Visual Studio. Я попытался скопировать Debug_NonRedist \ x86 \ Microsoft.VC90.DebugCRT в ту же папку, что и мой exe, но безуспешно.

  • dll в папке Microsoft.VC90.DebugCRT в папке exe.
  • DLL в той же папке EXE и DLL.


Я также установил «Распространяемый пакет Microsoft Visual C ++ 2008».

Ответы [ 3 ]

2 голосов
/ 28 мая 2009

Отладочная ЭЛТ не распространяется. «Распространяемый пакет Microsoft Visual C ++ 2008» не включает в себя отладочный CRT. Приложение имеет автоматически сгенерированный манифест, который сообщает ОС, чтобы загрузить CRT отладки из системы SxS.

См. в этой статье CodeProject о способах использования приватной сборки, чтобы ваше приложение использовало отладочные библиотеки CRT, которые вы вручную скопировали в другую систему.

1 голос
/ 28 мая 2009

Самое простое решение состоит в том, чтобы скомпилировать ваш exe-файл с ЭЛТ, статически связанной, а не динамически связанной.

Откройте ваш проект в Visual Studio.

Выберите в меню Проект-> Свойства (или щелкните правой кнопкой мыши проект и выберите «Свойства: в обозревателе решений).

В дереве управления с вкладками: Свойства конфигурации: C / C ++: Генерация кода

Измените параметр «Библиотека времени выполнения» с «Многопоточная отладочная DLL (/ MDd)» на «Многопоточная отладка (/ MTd)»
Перестройте, скопируйте и все будет хорошо


В противном случае, другое решение заключается в создании MSI, который объединяет биты времени выполнения VC9. Создайте проект установки, который включает в себя следующие модули слияния MSM:

"C: \ Program Files \ Common Files \ Moge Modules \ Microsoft_VC90_DebugCRT_x86.msm"
«C: \ Program Files \ Common Files \ Moge Modules \ policy_9_0_Microsoft_VC90_DebugCRT_x86.msm»

(Если вы работаете с 64-битной версией, эти файлы находятся в вашей папке "c: \ program files (x86)".)


Наконец, если это не сработает, возможно, у вас есть какая-то другая DLL (MFC?), Которую также необходимо скопировать. Я считаю, что когда вы получаете сообщение об ошибке «Конфигурация приложения неверна», вы можете просмотреть журналы системных событий (Панель управления -> Инструменты администратора -> Просмотр событий). Обычно отсутствует подробное сообщение об ошибке отсутствующей DLL.

0 голосов
/ 28 мая 2009

Я бы предложил сделать сборку релиза и попробовать ее на обычной машине (вместе с распространяемым пакетом Microsoft Visual C ++ 2008, установленным на этой машине), и посмотреть, работает ли он.

Вполне возможно, что ваше приложение также использует библиотеки DLL MFC и C ++, которые вы, возможно, не скопировали. То есть MFC90D.DLL, MSVCR90D.DLL, MSVCP90D.DLL

...