Я работаю на 64-битной операционной системе Windows 7 Ultimate VS2008 с 64-битной надстройкой.
Я успешно собрал свои проекты в 32- и 64-битной конфигурации, отладке и выпуске.
64-битная отладка не запускается; выдает ошибку:
Невозможно запустить программу ххх
Это приложение не удалось запустить из-за неправильной конфигурации приложения. Просмотрите файл манифеста на предмет возможных ошибок. Переустановка приложения может решить проблему. Для большего количества розничных продаж смотрите журнал событий приложения.
Я запустил ходунка с зависимостями.
Из пути для повторного использования 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.DebugOpenMP
vcomp90d.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-разрядная сборка выполняется успешно?
Пожалуйста, помогите мне, так как я уже проверил много вопросов, но не нашел никакого возможного решения.