我正在使用带有 64 位插件的 64 位操作系统 windows 7 终极机器 VS2008。
我已经成功地在 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.DebugOpenMP vcomp90d。 sll 在我的解决方案的 bin\debug 文件夹中。
最后依赖walker没有留下任何黄色标记(丢失文件),但它仍然给出了如下错误:
错误:未找到至少一个必需的隐式或转发依赖项。错误:由于隐式依赖模块中缺少导出函数,至少一个模块具有未解析的导入。错误:发现具有不同 CPU 类型的模块。错误:“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 位构建运行成功?
请帮助我,因为我已经检查了很多问题,但还没有找到任何可行的解决方案。