VS Code ショートカットエラーで起動不可を復旧(アイコン真っ白)
Visual Studio Code(VS Code)が起動できなくなって再インストールで復旧したときの話です。

VS Codeがショートカットエラーで起動できず
PCの再起動後にVS Codeのショートカットアイコンが真っ白になり、起動できなくなりました。

VS Codeを起動しようとしたときのエラー内容は以下です。
このショートカットは、リンク先の'Code.exe'が変更または移動されているので、正しく機能しません。 このショートカットを削除しますか?
事象としては、VS Codeの実行ファイルCode.exe自体が消失している状況でした。
C:\Users\(Username)\AppData\Local\Programs\Microsoft VS Code
配下にCode.exe
がありません。むしろその他のファイルが3個のみで(アンインストーラと思われるunins000.{dat,exe,msg}
)、正常な環境に比べるとファイルが圧倒的に少ない状態。

設定
→アプリ
を確認すると、VS Codeはインストールされていることにはなっています。

上記のショートカットエラーはWindows Update後にPCを再起動した後に発生しました(補足事項は後述)。
(_
というフォルダ配下にCode.exe
があり実行するとVS Codeの起動もできましたが、これを使用するのは安全な解決策とは言えないのでスルーします)
とりあえず復旧します。
再インストール(上書きインストール)で復旧
念のため設定ファイルをバックアップしてから再インストールします。
バックアップとして、 C:\Users\(Username)\AppData\Roaming\Code\User
配下にあるsettings.json
をコピーしておきます。 keybindings.json
もあればコピーしておきます。 その他、環境のカスタマイズ状況に応じsnippets/
フォルダやargv.json
(以前はlocale.json)等。
※面倒な場合はフォルダごとコピー
※VSCodeで利用していたファイル等(ワークスペース)には影響が無いと判断しそのまま
※拡張機能(Extensions)は最悪インストールし直せばよいのでそのまま(bin配下でcode –list-extensionsで出力し、–install-extensionオプションでインストール可)
※どうしても起動したい場合は前述の_というフォルダ配下のCode.exeで
その後、VS Codeをダウンロードし直し、インストールし直します。
設定
→アプリ
からVS Codeをアンインストールせず、そのまま上書きインストールをしましたが私が試した限りは大丈夫そうです。
VS Codeを起動可能に
これで起動できるようになりました。
ショートカットは必要に応じ作成し直しや配置し直しをすればOKです。
復旧。
ショートカットエラーが発生したきっかけ
復旧後に少し確認した結果、VS Codeの自動アップデートの途中でWindows OSの再起動を開始したことが原因と思われます。
C:\Users\(Username)\AppData\Local\Temp
配下にある vscode-inno-updater-xxxxxxxx.log
というファイルにVS Codeの自動更新のログが記録されています(時刻はUTC表記)。
この自動更新と、Windows OSの再起動のタイミングが重複していれば(今回はWindows Update後の再起動)、今回のような事象が起こる場合があるということなのでしょう。 今回は実際に時刻が重複していました。
…
Jun 10 23:54:39.626 INFO Inno Updater v0.15.0
Jun 10 23:54:39.626 INFO Starting update, silent = false
…
Jun 10 23:54:40.129 INFO All file handles marked for deletion
Jun 10 23:54:40.461 INFO All files deleted
Jun 10 23:54:40.461 INFO Delete directory recursively: "C:\\Users\\(Username)\\AppData\\Local\\Programs\\Microsoft VS Code\\bin" (attempt 1)
Jun 10 23:54:40.462 INFO Delete directory recursively: "C:\\Users\\(Username)\\AppData\\Local\\Programs\\Microsoft VS Code\\locales" (attempt 1)
Jun 10 23:54:40.462 INFO Delete directory recursively: "C:\\Users\\(Username)\\AppData\\Local\\Programs\\Microsoft VS Code\\policies" (attempt 1)
Jun 10 23:54:40.466 INFO Delete directory recursively: "C:\\Users\\(Username)\\AppData\\Local\\Programs\\Microsoft VS Code\\resources" (attempt 1)
また、該当の時刻に、イベントログ(アプリケーション)に以下のような記録がありました。
次のアプリケーションによりシャットダウンが拒否されました: CodeSetup-stable-xxxxxxxxxxxxxxxxxxxxxxxxxxxx.tmp。
そういえば、今回Windows Update後の再起動をする際に、VS Codeで何かエラーダイアログが出ていた気がします。
上記の内容は、以下の記事を参考にさせていただきました。

その後も、同様の事象が発生しているという事例があります。
VScode exe gets deleted on Windows after a normal shut-down · Issue #239974 · microsoft/vscode
まとめ
Visual Studio Code(VS Code)が起動できなくなって再インストールで復旧したときの話でした。
VS Codeの自動更新が失敗時に自動ロールバックしてくれたら良いのですが。上記のように再インストールで復旧はできるのでまぁ大丈夫ですかね。