“A configuração do aplicativo está incorreta” e “a configuração lado a lado está incorreta” executando o VS2008 64-bit debug build
Estou trabalhando em uma máquina definitiva para o Windows 7 de 64 bits VS2008 com complemento de 64 bit
Eu construí com êxito meus projetos nas configurações de 32 e 64 bits, depuração e liberação. A depuração de 64 bits não está iniciando; dá o erro:
Não foi possível iniciar o programa xxx Este aplicativo falhou ao iniciar porque a configuração do aplicativo está incorreta. Revise o arquivo de manifesto para possíveis erros. Reinstalar o aplicativo pode corrigir esse problema. Para mais informações, consulte o log de eventos do aplicativo.
Eu corri o walker de dependência. No caminho redistibuível C: \ Arquivos de programas (x86) \ Microsoft Visual Studio 9.0 \ VC \ redist \ Debug_NonRedist \ amd64 \ Microsoft.VC90.DebugCRT, adicionei Microsoft.VC90.DebugCRT.manifest msvcm90d msvcp90d msvcr90d ms.VC90.DebugOpenMP vcomp90d. sll na pasta bin \ debug da minha solução.
Finalmente, o walker de dependência não tinha marcas amarelas (arquivos ausentes), mas ainda assim deu erros como:
Erro: pelo menos uma dependência implícita ou encaminhada necessária não foi encontrada. Erro: pelo menos um módulo tem uma importação não resolvida devido a uma função de exportação ausente em um módulo implicitamente dependente. Erro: Foram encontrados módulos com diferentes tipos de CPU. Erro: as informações de configuração lado a lado em "e: \ xyz.EXE" contêm erros. O aplicativo falhou ao iniciar porque sua configuração lado a lado está incorreta. Consulte o log de eventos do aplicativo ou use a ferramenta sxstrace.exe da linha de comando para obter mais detalhes (14001
O manifesto de 32 bits diz:
<?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>
Considerando que o manifesto de depuração de 64 bits possui:
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
O que eu não entendo é: por que a compilação de depuração de 32 bits é executada com êxit
Por favor, ajude-me, pois já verifiquei muitas perguntas, mas não encontrei nenhuma solução viáve