Visual C++ 2010への対応

2011 年 8 月 4 日 Categories: C++, アプリケーション | Tags: ,

【追記】
2011年8月7日:アンチウイルスソフトについて

Visual C++ 2010(VC++ 2010)は基本的にWindows 7を対象としており、他のOSでは不具合というほどではないが、うまく動作しないことが多い。それへの対応をまとめてみた。

問題点1

IDEの動作が全般的に遅い(重い)。

対策1

OSがWindows 7以外なら、「Windows Automation API 3.0」をインストールする。

これにより、IntelliSenseの動作が劇的によくなるだけでなく、動作が全般的に軽快に・安定的になる場合がある。

対策2

「オプション>環境>全般」の「視覚的効果」をオフにする。

環境によっては、ハードウェアによるグラフィック・アクセラレータを利用するとかえって遅くなる場合もあるので試してほしい。

もちろん、動作を軽くするためには「リッチクライアントの視覚的効果はオフにする。

問題2

Visual C++ 2010でのビルド時に「MSBuild.exeが見つからない」とエラーが出てしまう。

環境によっては、「MSBuild.exe は、場所C:\Windows\Microsoft.NET\Framework\v[バージョン番号]\MSBuild.exe” に見つからなかったため、子ノードとして起動できませんでした」というエラーが頻発する。

タスク マネージャを見るとMSBuild.exe自体は起動しているのだが、なぜかVC++に認識されない。

どうもXPやVistaで起きやすいらしい。

対応1

アンチウイルスソフト(セキュリティソフト)を停止する。

アンチウイルスソフトがMSBuild.exeをチェックするためにファイルを一定時間ロックすると、VC++ 2010の側はMSBuild.exeが正常に起動しなかったとみなし、再びMSBuild.exeを立ち上げようとする。

しかし、それがまたアンチウイルスソフトによってロックされるということのくり返し。よってシステムが非常に重くなり、MSBuild.exeのプロセスが複数起動したままになる。

コンパイル時のみアンチウイルスソフトを一時停止するか、MSBuild.exeを検査対象から外そう。

ただ、ファイルのチェックに時間がかかってしまっているのがそもそもの原因なので、ハードウェアのアップグレードをするというのが正攻法かもしれない。

対応2

マイクロソフトが提供している「KB2298853」のパッチを適用する。

.Net Framework側のバグの可能性もある。