Visual Studio 2005 を使用して Windows でビルドするために、最近 Linux/gcc から移植した C++ アプリケーションがあります。このアプリは、最適化された CRT DLL を使用する DLL のみを提供するサードパーティ ライブラリを使用します (つまり、デバッグ CRT DLL)。VS2005 では、これは問題ではないようでした。デバッグ ビルドは、System32 ディレクトリに最適化された CRT DLL を見つけました。
現在、VS2008 でアプリをビルドして実行しようとしていますが、最適化された CRT DLL (msvc690.dll) が見つからないため、デバッグ ビルドを実行できません。VC9 CRT DLL は、GUID スタイル名のディレクトリに配置されています。これはサイド バイ サイド アセンブリであり、アプリはアプリのマニフェストを使用してそれを見つけることになっていると思います。ただし、ビルドされてアプリ exe に埋め込まれたマニフェストは、デバッグ CRT アセンブリのみを指定します。
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
私は Windows の専門家ではないので (少なくとも今はそうではありません)、これは私にとってまったく新しいことです。ここで正しい解決策は何ですか?マニフェスト コンパイラに、最適化された CRT DLL をアセンブリに追加するように指示する必要がありますか? もしそうなら、どうすればいいですか?