Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么赢了';t我的VS2010本机C++;应用程序突然启动,出现并行错误?_C++_Visual Studio 2008_Visual Studio 2010_Windows 7 - Fatal编程技术网

C++ 为什么赢了';t我的VS2010本机C++;应用程序突然启动,出现并行错误?

C++ 为什么赢了';t我的VS2010本机C++;应用程序突然启动,出现并行错误?,c++,visual-studio-2008,visual-studio-2010,windows-7,C++,Visual Studio 2008,Visual Studio 2010,Windows 7,硬件升级后,我不得不重新安装我的系统(Win7)。在升级之前,我还运行了Win7和VS2010,我的应用程序在发行版和调试版中都运行正常。现在我编译并链接它,但当我尝试运行它时,我得到: 应用程序无法启动,因为其并行配置不正确。有关详细信息,请参阅应用程序事件日志或使用命令行sxstrace.exe工具 事件日志显示: 找不到相关程序集Microsoft.VC90.DebugCRT、processorArchitecture=“x86”、publicKeyToken=“1fc8b3b9a1e18

硬件升级后,我不得不重新安装我的系统(Win7)。在升级之前,我还运行了Win7和VS2010,我的应用程序在发行版和调试版中都运行正常。现在我编译并链接它,但当我尝试运行它时,我得到:

应用程序无法启动,因为其并行配置不正确。有关详细信息,请参阅应用程序事件日志或使用命令行sxstrace.exe工具

事件日志显示:

找不到相关程序集Microsoft.VC90.DebugCRT、processorArchitecture=“x86”、publicKeyToken=“1fc8b3b9a1e18e3b”、type=“win32”、version=“9.0.21022.8”。请使用sxstrace.exe进行详细诊断

对于特定的可执行文件。对我来说奇怪的是,我在控制面板中的已安装程序中看到了VS2008运行时。更奇怪的是,它曾在一周前在我的旧装置上工作。在升级到VS2010之前,我有VS2008,所以可能这就是原因。无论如何,我也不明白为什么VS2010不将我的二进制文件链接到最新的(VC10)运行时库,而依赖于(不存在的?)VC9.0库。我可以做些什么来运行我的应用程序

编辑:我将sxstrace的输出包括在这里。对可执行文件有一些引用,但大多数看起来都一样,我选择了32位引用,因为应用程序构建为32位:

F:\cci\Debug>sxstrace跟踪-日志文件:Trace.etl 追踪开始了。跟踪将保存到文件Trace.etl。 按Enter停止跟踪

F:\cci\Debug>sxstrace Parse-logfile:trace.etl-outfile:sxs.out 正在分析日志文件trace.etl。。。 解析完成!输出保存到文件sxs.out

sxs.out的内容:

开始激活上下文生成。
输入参数:
标志=0
ProcessorArchitecture=Wow32
CultureFallBacks=en-US;en
ManifestPath=F:\cci\Debug\gui.exe
AssemblyDirectory=F:\cci\Debug\
应用程序配置文件=
信息:正在分析清单文件F:\cci\Debug\gui.exe。
信息:清单定义标识为(空)。
信息:参考:Microsoft.VC90.DebugCRT,processorArchitecture=“x86”,publicKeyToken=“1fc8b3b9a1e18e3b”,type=“win32”,version=“9.0.21022.8”
信息:解析参考Microsoft.VC90.DebugCRT,processorArchitecture=“x86”,publicKeyToken=“1fc8b3b9a1e18e3b”,type=“win32”,version=“9.0.21022.8”。
信息:正在解析ProcessorArchitecture WOW64的引用。
信息:解析文化中立的引用。
信息:应用绑定策略。
信息:未找到发布者策略。
信息:未找到绑定策略重定向。
信息:开始装配探测。
信息:在WinSxS中未找到程序集。
信息:尝试在C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL上探测清单。
信息:未找到文化中立的清单。
信息:端部组件探测。
信息:正在解析ProcessorArchitecture x86的引用。
信息:解析文化中立的引用。
信息:应用绑定策略。
信息:未找到发布者策略。
信息:未找到绑定策略重定向。
信息:开始装配探测。
信息:在WinSxS中未找到程序集。
信息:尝试在C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL上探测清单。
信息:尝试在F:\cci\Debug\Microsoft.VC90.DebugCRT.DLL上探测清单。
信息:尝试在F:\cci\Debug\Microsoft.VC90.DebugCRT.manifest处探测清单。
信息:尝试在F:\cci\Debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.DLL上探测清单。
信息:尝试在F:\cci\Debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.manifest探测清单。
信息:未找到文化中立的清单。
信息:端部组件探测。
错误:无法解析引用Microsoft.VC90.DebugCRT,processorArchitecture=“x86”,publicKeyToken=“1fc8b3b9a1e18e3b”,type=“win32”,version=“9.0.21022.8”。
错误:激活上下文生成失败。
结束激活上下文生成

显示在控制面板中已安装程序中的“VS2008运行时”不包括调试运行时。它是可再发行的运行时,因此它只有运行时的“发布”版本。但是,由于在重新安装之前,您的计算机上已经安装了VS 2008,这就是它以前工作的原因-调试运行时包含在开发工具中

解决此问题的一些选项:

  • 重新安装VS 2008(我认为如果您不再能够访问其他版本,VC++Express 2008就足够了)
  • 使用VS 2010(或您想要的任何版本)重新生成程序

如果你希望你的程序被那些没有安装工具的人所使用(可能包括你),你应该考虑在发布模式和/或静态链接运行时构建它。 Microsoft.VC90.*调试*CRT

是的,该DLL在您的计算机上不可用,您没有安装VS2008。您也无法从Microsoft获得它,它是一个不可分发的文件

不要担心为什么你的VS2010项目依赖于VS2008版本的CRT,这是非常不健康的。还有一个相当令人不快的部署头痛,有足够的理由来解决这个问题

除了安装VS2008之外,您还可以在另一台安装了VS2008的计算机上创建安装和部署项目