1

私の 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 再頒布可能パッケージのインストール後、プログラムに「アプリケーションの構成が正しくないため、このアプリケーションは開始できませんでした」というエラーが表示されます。しかし、上記のポリシー ファイルを削除すると、正常に動作します。何か案が?

4

1 に答える 1

0

アプリケーションのマニフェストには、言及されている CRT の複数のバージョンが含まれている可能性があります。アプリケーションのマニフェスト (コンパイル済みのバイナリをリソース エディターで開き、クリップボードを使用してコピー) を投稿していただければ、より多くの情報を得ることができます。

于 2013-07-30T11:47:03.510 に答える