«Неправильная конфигурация приложения» и «неправильная конфигурация» при запуске VS2008 64-bit debug build
Я работаю на 64-битной ОС Windows 7 конечной машине VS2008 с 64-битным аддоном.
Я успешно собрал свои проекты в 32- и 64-битной конфигурации, отладке и выпуске. 64-битная отладка не запускается; это дает ошибку:
Невозможно запустить программу xxx Это приложение не удалось запустить из-за неправильной конфигурации приложения. Просмотрите файл манифеста на предмет возможных ошибок. Переустановка приложения может решить проблему. Для большего количества розничных продаж смотрите журнал событий приложения.
Я побежал ходок зависимости. В пути для повторного использования C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ redist \ Debug_NonRedist \ amd64 \ Microsoft.VC90.DebugCRT я добавил Microsoft.VC90.DebugCRT.manifest msvcm90d msvcp90d msvcr90d Microsoft.VC90.DebugMPpen. sll в папке bin \ debug моего решения.
Наконец, у обходчика зависимостей не осталось желтых меток (отсутствующих файлов), но все равно он выдавал ошибки вроде:
Ошибка: не найдена хотя бы одна необходимая неявная или перенаправленная зависимость. Ошибка: по крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта в неявно зависимом модуле. Ошибка: Обнаружены модули с разными типами ЦП. Ошибка: информация о конфигурации Side-by-Side в «e: \ xyz.EXE» содержит ошибки. Не удалось запустить приложение, поскольку его параллельная конфигурация неверна. Пожалуйста, смотрите журнал событий приложения или используйте инструмент командной строки sxstrace.exe для более подробной информации (14001).
32-битный манифест говорит:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" **processorArchitecture="x86"** publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Принимая во внимание, что 64-битный манифест отладки имеет:
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
Я не понимаю, почему отладочная 32-разрядная сборка выполняется успешно?
Пожалуйста, помогите мне, так как я уже проверил много вопросов, но не нашел никакого приемлемого решения.