我的 C++ 应用程序使用共享运行时程序集版本 9.0.30729.1 在 Windows XP 上运行。但最近我安装了新的 C++ 重新分发包,它部署了更新版本的运行时程序集版本 9.0.30729.6161。
在 Winsxs\policies 目录中,这个新的策略文件也由新的 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 Redistributable 安装后,我的程序显示“由于应用程序配置不正确,此应用程序无法启动”错误。但是,如果我删除上面的策略文件,它就可以正常工作。任何想法?