Visual C++ 2008 ExpressでVC++ 6ワークスペースを変換した後にアプリケーションを構築しています。自身が正常に行くにビルドしますが、私は持っている本当の問題は、このようになります生成されたマニフェストである:Cランタイム(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.CRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
私の質問は次のとおりです。
は、どのように私は1つのバージョンのみ、好ましくは9.0を一覧表示するマニフェストを制限することができます。 21022.8。アプリケーションに必要なCランタイム依存性をバンドルすることができますか?
この問題の根本的な原因は、9.0.21022.8を使用するライブラリとVC++ Express 2008が9.0.30729.1を使用している可能性があることです。そのため、両方が依存関係としてリストされています。
注:
私はアプリケーションフォルダ内のCRT DLLファイルとMicrosoft.VCXX.CRT.manifestファイルをコピーすることについて語っhttp://www.codeproject.com/Tips/211756/How-to-Distribute-C-run-time-CRT-Libraries-with-Yo?display=Printのアプローチb)は次のようです。
あなたはそれを修正する必要があります。はい、同じコンパイラ設定ですべてのライブラリを再構築します。 –
ハンスのコメントに加えて、[this](http://www.nuonsoft.com/blog/2008/10/29/binding-to-themost-recent-visual-studio-libraries/)を読む価値があるあなたのコードがバインドされているライブラリのバージョンを制御する方法について少しお伝えします。 – tinman
ありがとう@tinman、あなたが私の問題を解決するのを手伝ってくれたリンク。 – amit