VisualStudio を過去のバージョンをいくつかインストールしている人は自分だけでは無いと思います。
今回VisualStudio 2012をインストールした後で、過去のVisualStudioがエラーを吐くような状態になってしまい、ちょっと困っていた&解決策を見つけたので、メモがてら書いてみようと思います。
その今回困ったという現象が、VisualStudio 2012をインストールした後でVisualStudio 2010でのビルドがことごとく失敗するという物です。エラーメッセージとしては次のような物が出てきます。
「LINK : fatal error LNK1123: COFF への変換中に障害が発生しました: ファイルが無効であるか、または壊れています。」
そのときの画面の状態は以下のような感じです。
この現象が出てしまっている人はそれなりに居るようで、ほとんどの場合は次のような対処で問題を回避しているようです。
- 埋め込みマニフェストをオフにする。
(プロジェクトのプロパティで、マニフェストツール/入出力カテゴリで、埋め込みマニフェスト を”いいえ”にする) - あるいは、インクリメンタルリンクをオフにする
- さらには、.rcのリソースファイルを削除(可能ならば)
でもこの問題の起こる原因は、VisualStudio 2010 にあり、VisualStudio 2012 の問題ではないということでした。問題解決のためには、VisualStudio 2010 の ServicePack (SP1)をインストールすることが必要でした。ここでSP1をインストールして再度同じプロジェクトをビルドしてみたところ、問題は起こらないようです。
問題が起こっている人は、VS10sp1-KB983509.exe (VisualStudio 2010 SP1)をインストールしてみてください。ちなみにVS2012を入れた後にインストールしても問題は起こらないようですよ。
まとめると、VisualStudioは複数インストールしてもいいが、その際に過去のバージョンのServicePackは事前に当てておきましょう、ということになるでしょうか。