« Vectorにも置いていただきました | トップページ | 自動Windows Updateが終わらない »

2011年11月 3日 (木)

VC++ Express 2010にSP1を適用したらx64コンパイルできなくなったでござるの巻

私は、Visual Studioは買ってなくて、もっぱらExpressを使っています。最近のメインはVisual C++ Express 2010。Visual C++ Expressは、それ自身では32ビットコンパイルしかできないのですが、Windows SDKをインストールするとx64とかItaniumとかのコンパイルもできるようになります。

そうやって、Visual C++ Express 2010でx64バイナリを作っていたのですが、先週末から急にx64コンパイルができなくなってしまいました。コンパイルしようとすると、次のようなメッセージが出てとまってしまうのです。

Error: The "ConfigurationGeneral" rule is missing from the project

また、x64用のプロジェクトのプロパティを表示しようとすると、よくわからないダイアログが出て、プロパティを参照できない状態にもなってしまいました。

ずいぶん困ったのですが、結局これは(タイトルにも書いたとおり)Visual Studio の SP1 が原因だったようです。コンパイルできなくなっていることに気づく数日前に、Windows UpdateでVisual Studio 2010 Service Pack 1というのが来ていたのであまりよく考えずに適用したのですが、これが敗因でした。

Visual C++ Expressには32ビット版のコンパイラしか入っていないのですが、Windows SDKには、Visual C++のコンパイラ本体がフルセット(32ビット、x64、Itanium)含まれていて、だから、Windows SDK入れるとVisual C++ Expressでx64コンパイルができるようになるわけです。Visual Studio 2010 SP1は、C++コンパイラ本体も更新するのですが、どういうわけか、Visual C++ Expressに含まれる 32 ビットコンパイラだけを更新し、Windows SDKがインストールしたx64コンパイラは更新せずに放置する様子。このためx64コンパイラのバージョンが合わなくなっていたのでした。

売り物のVisual Studioにはx64用のコンパイラが入っていて、SP1は当然そのコンパイラは更新するはず。Expressの環境ではx64コンパイラがインストールされていても更新しないというのは、嫌がらせの域ですね。

最悪だったのは、VS SP1のアンインストールができないこと。

コントロールパネルからVisual Studio 2010 SP1 のアンインストールを選ぶことはできるのですが、ダイアログが出て「SP1をアンインストールすると、Visual Studioが起動できなくなって、SP1の再インストールもできなくなるけど、いいですか?」みたいなことを言われて。

そんなの、いいわけがない。

一瞬目の前が真っ暗になりましたが、System Restore(システムの復元)を使ってSP1適用前まで戻すことで、なんとか復旧できました。

マイクロソフトから何か対策が出ると信じて、SP1は適用せずに待つしかなさそうです。

« Vectorにも置いていただきました | トップページ | 自動Windows Updateが終わらない »

コメント

既にご存知でしたらごめんなさい。

VS2010SP1をインストールするとWindowsSDK7.1の64ビット版コンパイラセットが削除される問題については、VS2010SP1公開後にWindowsSDKの更新プログラムが公開されています。
http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=689655b4-c55d-4f9b-9665-2c547e637b70&displaylang=ja-nec
この問題は売り物のVS2010でも発生します。

SP1のアンインストールについては、リリースノートにも記述がありますが、無印のインストーラで修復インストールするまで正しく動作しなくなる(SP1の再インストールもできない)可能性について警告が表示されたものと思います。
アンインストールは可能です。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/285638/42829483

この記事へのトラックバック一覧です: VC++ Express 2010にSP1を適用したらx64コンパイルできなくなったでござるの巻:

« Vectorにも置いていただきました | トップページ | 自動Windows Updateが終わらない »