По моему опыту, частой причиной такого рода ошибок является случайная отправка компонента, который был связан с отладочной версией среды выполнения C, которая явно не распространяется повторно, и поэтому только в системе конечного пользователя, если онислучайно установлена соответствующая версия VisualStudio.Имя будет выглядеть примерно так: MSVCR80D.DLL
вместо MSVCR80.DLL
.
Dependency Walker, безусловно, является подходящим инструментом для проверки вашего исполняемого файла в качестве разработчика.Он может подключить приложение к событиям загрузки DLL и запустить его, так что вы можете обнаружить библиотеки DLL, которые динамически загружаются во время выполнения, а также библиотеки DLL, которые были названы во время сборки.
Кроме того, программа Dependency Walker поддерживает сценарии, иМожно написать файл журнала.Я использую его таким образом, как часть процесса сборки, чтобы проверить отправку перед упаковкой для выпуска.Я размещаю все файлы, которые должны быть отправлены, в макете их поставляемого дерева каталогов.Я использую режим отладки приложения, находящегося в системе обхода зависимостей, который заставляет его загружать все необязательные фрагменты и затем завершать работу.Depends.exe оставляет мне хороший лог-файл, который я проверяю с помощью сценария Perl и завершаю сборку, если какая-либо DLL была загружена из любой точки системы, кроме \WINDOWS
или области подготовки, или если неожиданная версия или отладочная версиясреда выполнения C была загружена.Только после успешной проверки я создаю пакет установщика InnoSetup, который будет выпущен.Это несколько раз избавляло от смущения и стоило того, чтобы понять, как это сделать.
Если вы знаете, что каждая DLL является «официальной» Windows DLL или частью вашей поставки,тогда у вас есть действительно хороший шанс, что все это просто работает на машине клиента.
Редактировать: Официальный дом Зависимый ходок - хорошее место, чтобы побродить,Предлагаемая версия может быть более новой, чем версия, включенная в MSVS, и имеется достаточное количество достойной документации по расширенному использованию.
Я могу подтвердить, что я запускал IE, профилированный в зависимости от.exe, но не тестировалмного всего.