■エラー内容
VisualStudio2008のソリューションを開こうとしたところ、下記のダイアログが表示されました。
Microsoft(R) Visual Basci Compiler は動作を停止しました
失われた情報はありません。エラーを回避する方法があるかどうかをコンパイラの出力で確認してください。
詳細を見ると、devenv.exe
とmsvb7.dll
が問題を起こしているとのこと。
特に変な処理をした覚えは無いのですが、問題が起きてしまったのなら仕方ない。
とりあえず、それぞれのファイル名を検索して調べてみました。
■対処方法
devenv.exe エラー
と検索したところ、下記のサイトがヒットしました。
MSの公式サイトです。
自分の場合はデバッグ時にエラーが起きるのではなく、そもそもソリューションが開かないのですが、何か似たものを感じたので試してみました。
説明には.suo
ファイルを再生成してくださいと書かれています。
言われたとおり.suo
を一時避難させてソリューションを開いてみると......
―――開いた!!!
そのままビルドし直したら通常通り使えるようになりました。
詳しいやり方は以下の通りです。(サイトより抜粋)
- 手順
※ .suo ファイルは Windows エクスプローラーの既定の設定では表示されない隠しファイルです。
※ このため、以下の手順はエクスプローラーで "隠しファイル" を表示する設定を行っていただいた上でご実施ください。
※ また、以下を実施する前に、Visual Studio 2010 を終了しておいてください。
- 問題のソリューション が存在するフォルダ (.sln ファイルが存在するフォルダ) を Windows エクスプローラーで開きます。
- ファイルの退避用の一時フォルダを作成し、.sln ファイルと同じ場所に表示される、.suo ファイルを一時フォルダ内に移動します。
- 移動した後に、再度 Visual Studio 2010 開発環境から .sln ファイルを開きます。
これで、.suo ファイルが再生成されます。
自分の環境は VisualStudio2010 ではなく 2008 でしたが、上記と同じやり方でできました。
devenv.exe
に問題があると言われたときは、ぜひ一度この方法を試してみてください。
■原因
上記サイトには
特定のソリューションのみで問題が発生する場合は、このような .suo ファイル内の情報の不整合が原因で問題が発生している可能性があります。
と書かれています。
開かないソリューションは1つだけでしたし、.suo
ファイルの再作成で解決したので「.suo ファイル内の情報の不整合」があったのでしょう。
ただ、なぜ不整合が起きたのかは分かりませんでした。