安装新的c++重新发布包后,c++运行时的行为出乎意料

C++ run-time behave unexpected way after installing new C++ redistribute package

本文关键字:c++ 运行时 出乎意料 新发布 安装      更新时间:2023-10-16

我的c++应用程序在windows XP上运行,使用版本为9.0.30729.1的共享运行时程序集。但是最近我安装了新的c++重新分发包,它部署了新版本的运行时程序集版本9.0.30729.6161。

在Winsxspolicies目录下,这个新的策略文件也由新的c++重新分发包部署。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" name="policy.9.0.Microsoft.VC90.ATL" version="9.0.30729.6161" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.ATL" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/>
<bindingRedirect  oldVersion="9.0.20718.0-9.0.21022.8" newVersion="9.0.30729.6161"/>
<bindingRedirect  oldVersion="9.0.30201.0-9.0.30729.6161" newVersion="9.0.30729.6161"/>
</dependentAssembly>
</dependency>
</assembly>

在这个新的Visual c++ 2008可重新发布安装之后,我的程序显示"这个应用程序无法启动,因为应用程序配置不正确"错误。但是如果我删除上面的策略文件,它工作得很好。任何想法?

您的应用程序清单可能有上述CRT的多个版本。如果你能发布你的应用程序的清单(在资源编辑器中打开编译的二进制文件,并使用剪贴板复制出来),它会给我更多的信息。