mogmo .NET

C#/XAML/VB6たまにC++についてメモ程度に書いていく。あくまで自分用。責任は取れません。

TextBoxで右クリックするとWindowsがフリーズする

現象

Visual Studio 2017でWPFアプリを開発中に,
テキストボックスを右クリックするとVisual Studioがフリーズする現象が起きた。
どのアプリを作ってもフリーズする。困る。

Windowsのイベントビューアを見たらこんなエラーが出ていた。

f:id:mogmo811:20190529090012p:plain
Windows イベントビューア
結論から言うと,このエラーコードはマジでなんの役にも立たない。
しかし,こいつを深読みしようとしたがために,かなり遠回りをしてしまった。

やってみた対策

まずは以下のサイトを参考に,試してみた。
特定のソリューションをデバッグ実行すると、VS 2010 が異常終了する場合の対処方法 – Visual Studio サポート チーム blog

① .suoファイルの再構成

手順

.suoファイルを削除してからソリューションを開くと,.suoファイルが再構成される。

結果

ダメでした。

よく読むとこんな記述が。

特定のソリューションのみで問題が発生する場合は、このような .suo ファイル内の情報の不整合が原因で問題が発生している可能性があります。

今回特定のソリューションだけで発生するエラーではないし,関係なかったのかな。

Visual Studio の環境設定とカスタマイズ設定を初期化

手順

VS2017の場合,メニューの[ツール] > [設定のインポートとエクスポート] > [すべての設定をリセット]でウィザードの指示に従っていけば設定をリセットすることができる。

結果

設定はリセットされましたが、エラーが発生しました。
エラー 1: TypeScript 固有: 無効なデータ 'true' が含まれているため、プロパティ 'UseTypeScriptLanguageServiceForJavaScript' をインポートできません。
エラー 2: TypeScript 固有: 無効なデータ '{}[]().,:;+-*/%&|^!~=<>? ' が含まれているため、プロパティ 'CompletionChars' をインポートできません。
エラー 3: 'CoffeeScript' の設定のインポート中にエラーが発生しました [コード 5297]。

と表示された。
うぉおおおおおお。
直ってもなかったっす。

③ VS2017をセーフモードで起動する

手順

コマンドラインで/safemode付きで実行するとセーフモード起動する。
-SafeMode (devenv.exe) - Visual Studio | Microsoft Docs

cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE"
devenv /safemode
結果

だめ。ああああもぅ!なんかVSの仕業じゃない気がしてきた。

④ 修復してみるか。

手順:Visual Studio を修復します | Microsoft Docs
結果:だめ

⑤ アンインストール...

手順:Visual Studio のアンインストール | Microsoft Docs
結果:だめだね

⑥ 常駐ソフトが悪さしてる?VSと切り離して考えてみる。

Windowsをセーフブート/クリーンブートして,常駐ソフトの問題なのかVSの問題なのか判断しようとしたが直らない。
(最初にやるべきだろ。)
これでソフトが関係ないと分かったが,なぜか以下のも試してしまった。

⑦ 関係ありそうなソフトをアンインストールしていく(泣)

以下のサイトにたどり着いた。
answers.microsoft.com

この手のトラブルはまず間違いなくコンテキスト メニューに項目を追加するシェル拡張が原因ですね。そういうソフトウェアがあれば、順にアンインストールして動作を確認していきましょう。
または ShellExViewAutorunsのようなツールでトラブルシュートしても良いでしょう (難易度はやや高くなりますが)。

右クリック拡張がされてそうなAppを片っ端から削除したのに直らない。
(でしょうね)

IMEに焦点を絞ってみる

英語版キーボードにすることでIMEを無効化して試してみたら...直った!!!!
ここから紆余曲折あり,IMEのプロパティを出荷状態に戻すことで解決した。
IMEの設定を出荷時の状態に戻す | 日経 xTECH(クロステック)

解決

IMEが問題で発生していた。
ただ不可解なのが,WPFアプリだけで発生する問題でMFCアプリでは発生しないことを確認。
また,自分がいじっている範囲での話だがVisual Studio(Ver.関係なく)のみこの現象が発生していた。

ほんとつかれた。(´;ω;`)ブワッ
お疲れ自分。