Я пытаюсь развернуть приложение Visual C++ (разработанное с помощью Microsoft Visual Studio 2008) с помощью проекта установки и развертывания. После установки пользователи на некоторых целевых компьютерах получают следующее сообщение об ошибке после запуска исполняемого файла приложения: «Это приложение не запускалось, потому что неправильная конфигурация приложения. Повторная установка приложения может устранить проблему ». Другой пользователь после установки мог правильно запустить приложение. Я не могу найти основную причину этой проблемы, несмотря на несколько часов работы с файлами справки Visual Studio и онлайн-форумами (большинство сообщений датируются 2006 годом). У кого-нибудь из Stack Overflow есть предложение? Заранее спасибо. Дополнительная информация приведена ниже.Что делает развертывание успешным для некоторых пользователей и безуспешно для других?
Приложение использует FLTK 1.1.9 для библиотеки GUI, а также некоторые библиотеки Boost 1.39 (regex, lexical_cast, date_time, math).
Я убедился, что пытаюсь развернуть версию выпуска (а не версию отладки) приложения. Библиотека Runtime в настройках генерации кода - многопоточная DLL (/ MD).
Зависимость Уолкер MYAPP.EXE списков следующие библиотеки DLL: wsock32.dll, comctl32.dll, kernel32.dll, user32.dll, gdi32.dll, shell32.dll, ole32.dll, mvcp90.dll, msvcr90. длл.
В проекте установки и развертывания я добавляю следующие библиотеки DLL в файловую систему на целевой машине: fltkdlld.dll и папку с именем Microsoft.VC90.CRT с msvcm90.dll, msvcp90.dll, mcvcr90.dll и Microsoft.VC90.CRT.manifest.
Процесс установки на целевых компьютерах, получающих сообщение об ошибке, требует установки .Net Framework 3.5.
Любое предложение? Заранее спасибо!
Привет - Спасибо за ваш ответ. В моем сообщении выше я подробно расскажу, как у меня уже есть папка (в проекте установки и развертывания в Файловой системе на целевой машине) с именем Microsoft.VC90.CRT с msvcm90.dll, msvcp90.dll, mcvcr90.dll и Microsoft. VC90.CRT.manifest. Разве это не распространяемый Visual C++, который вы упомянули в своем ответе? – Julien
Это не то же самое, нет. Моя проблема заключается в том, что эти DLL-файлы MSVCRT могут быть неправильной версией для всех ваших зависимостей ... Чтобы проверить, на рабочем компьютере, используйте Process Explorer, чтобы определить полный список DLL-файлов, которые используются, и сравнить их с версиями, повторно отправка. На рабочей машине может быть установлена какая-то (неясная) вещь, которая отправила другую версию DLL. – JBRWilkinson
Хорошо. Я добавил файл vcredist_x86.exe в проект установки и развертывания.Это то, что вы подразумеваете под словом «Добавить Visual C++ Redistributable в ваш проект развертывания»? Затем я попросил пользователя на целевой машине запустить новый файл setup.exe (с новым * .msi), и сообщение об ошибке все еще появляется. Любое понимание? – Julien