2

Microsoft Visual C++ 2005 を使用してアプリケーションを構築しています。ライブラリのメジャー アップデートの後、マニフェスト ファイルに次のエントリを取得しています。

<dependency>
  <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
  </dependentAssembly>
</dependency>

しかし、結果の実行可能ファイルで Dependency Walker を使用してみると、リストに MSVC80D.DLL がまったく表示されず、少し驚きました。

また、リンカーを「詳細」モードに設定して、マニフェストに示されている依存関係がどこから来ているかを教えてくれるかどうかを確認しました。悲しいかな、そこにある情報は問題を明らかにしていません。

また、リンクしているすべてのライブラリを調べて、それらのいずれかがデバッグ CRT を使用しているかどうかを確認しました。私が知る限り、どれもそうではありません。

この問題の原因となっているライブラリを特定するにはどうすればよいですか? 実行可能ファイルをそのまま配布すると、おそらく自動生成されたマニフェストのこのエントリが原因で、サイド バイ サイド エラーが発生します。

提供できるすべての助けに感謝します...何が起こっているのかを理解しようとして数日後、私はこの問題に本当にイライラし始めています。

4

1 に答える 1

0

私は自分の問題の解決策を見つけたと思います。小さなテスト アプリを作成し、使用しているライブラリを 1 つずつ追加することにしました。この方法を使用して、問題を引き起こしていると思われる特定のライブラリを特定しました。ライブラリが dumpbin を使用してデバッグの依存関係を表示しなかったことは確かですが、その一方で、そのライブラリを再構築することで、不要なマニフェスト行を排除できました。

于 2011-06-09T13:40:56.463 に答える