Visual Studio 2005の - C ++ - マニフェスト作成を制御何か
-
21-08-2019 - |
質問
私は、イベントエラー「見つかりませんでした依存アセンブリmicrosoft.vc80.debugcrt」デバッグビルドがで爆破された理由を把握しようとしていた。
すべてを削除(何.CPPまたは.Hではない)、その溶液を再作成した後 - 私はまだ問題を抱えていた。
。Google検索は無益だったとVSの再インストール何らかの変化が生じなかった。
私はCでDLLを持っていた:\ WINDOWS \ WinSxS \ x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c
。私は\デバッグ\ .exe.intermediate.manifestファイルを開いて、それが2(dependentAssembly)のエントリを持っていたます。
第一:名= 'Microsoft.VC80.DebugCRT' バージョン= '8.0.50608.0'
第二:名= 'Microsoft.VC80.DebugCRT' バージョン= '8.0.50727.762'
私は1つを削除し、他に1を変更した場合 名前= 'Microsoft.VC80.DebugCRT' バージョン= '8.0.50727.42'
私が開始されますビルドを取得することができます。
私はVS2008がインストールされていなかった確かに - しかし、バージョンを制御しているでしょうか?またはどのように私は、「固執」する権利デバッグDLLのバージョンを取得することができます。
VS2008は、制御パネルを介して脱インストールされます。
EDIT:DebugCRTを検索した場合、レジストリには何も見つかりませんでした
。
環境パスはVS8フォルダを指しています。
唯一の1 DebugCRTフォルダはCであります。Windows \ winsxs \ポリシーフォルダ
を\します
(8.0.50.727.42)
C:\ WINDOWS \ winsxs \フォルダのみの.catとマニフェスト
の0.42バージョンを持って現れます
(上記マニフェストフォルダ内)マニフェストファイルバージョンを持つ=「8.0.50727.42」
解明:マニフェストファイルが異なるバージョンではなく0.42で各2「dependentAssembly」エントリを有します。私は1つのエントリを削除し、起動するデバッグビルドを取得するために0.42を一致させるために、他の上のバージョンを変更することができます。
EDIT2:私もブーストを使用していますおよびDLL内の0.762バージョン
あり解決
バージョンはブーストのダウンロード、コンパイル済みのバージョンだったブーストのDLLからに拾われました。ライブラリがされた後は、再コンパイル(再インストール)ソリューションの再ビルドがシングルバージョンとリンクされたプログラムでマニフェストを生成して走っています。
だから、使用されたバージョンのためのソリューションにインポートされLIBSとDLLを-checkます。
他のヒント
VS 2008それが問題の一部ではないので、VC90は、VC80ではありません。マニフェスト要求アセンブリとのSxS装填assenblyとの関係をCに見出される:\ WINDOWS \ WinSxS \ポリシー。 IIRC、 "8.0.50608.0" VS2005 SP1以前によって生成されます。それは間違っている、と8.0.50727.42されている必要がありますが、これは、ポリシーによってキャッチされます。
私はあなたが2つの目録を取得しているかどうかはわかりません。マニフェストの設定は何ですか?
私はあなたの特定の環境でブーストを再構築することをお勧めしたいです。また、あなたは完全に静的CRTをリンクすることにより、離れたサイドアセンブリによってサイドで行うことができます...