VSCodeのバージョンアップに失敗する

# はじめに
VScodeは起動すると更新の確認をしてくれます。
画面右下に更新のダイアログが表示されるので、更新を押下すると起動しているプログラムを停止してくださいとワーニングが出力されることがあります。
あまり気に留めていなかったのですが、この頃、頻繁に出るので原因を調べてみました。

# Windows タスクマネージャ―

タスクマネージャーでVSCodeのプロセスを確認すると複数のプロセスが起動しています。

![2019-04-18-10-11-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239597/75214be1-073a-ad2b-1e34-651268a4acb1.png)

この状態で、更新を実行すると先に述べたように、起動プロセスの停止が必要になるようです。

# 更新に失敗した場合のログ
VSCodeのログは下記ディレクトリに出力されます。
* ディレクトリ : <u>C:\Users\ユーザ\AppData\Local\Temp</u>
* ファイル名 : vscode-inno-updater-xxxxxxxxxx.log
{xxxxxxxxxx : 時間}

```text
Apr 16 15:51:19.236 INFO Checking for possible conflicting running processes... (attempt 11)
Apr 16 15:51:19.244 INFO Kill process if found: 5640, Code.exe
Apr 16 15:51:19.245 INFO Kill process if found: 2692, Code.exe
Apr 16 15:51:19.245 INFO Kill process if found: 4984, Code.exe
Apr 16 15:51:19.245 INFO Kill process if found: 5348, Code.exe
Apr 16 15:51:19.245 INFO Kill process if found: 4008, Code.exe
Apr 16 15:51:19.246 INFO Kill process if found: 5380, Code.exe
Apr 16 15:51:19.246 INFO Kill process if found: 10792, Code.exe
Apr 16 15:51:19.246 WARN Kill error Failed to get process file name: ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。

Apr 16 15:51:19.246 WARN Kill error Failed to get process file name: ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。

Apr 16 15:51:19.246 WARN Kill error Failed to get process file name: ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。

Apr 16 15:51:19.246 WARN Kill error Failed to get process file name: ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。

Apr 16 15:51:19.246 WARN Kill error Failed to get process file name: ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。

Apr 16 15:51:19.246 WARN Kill error Failed to get process file name: ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。

Apr 16 15:51:19.247 WARN Kill error Failed to get process file name: ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。

Apr 16 15:51:29.655 ERRO Failed to get process file name: ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。
```

一目瞭然、**Code.exe**を**kill(停止)**できないために失敗していることがわかります。

原因は**「VScodeのIDE内で複数のmdファイルを開きっぱなしの状態」**のため、<u>それぞれのmdファイルを開くため、**個別にCode.exeのプロセスが起動**していたためでした。</u>

# 更新が成功した場合のログ
開いているmdファイルをすべて閉じてから、更新した結果のログです。

```Text
Apr 18 09:28:49.117 INFO Starting: C:\Users\ユーザ\AppData\Local\Programs\Microsoft VS Code\Code.exe, false
Apr 18 09:28:49.117 INFO Checking for running Code.exe processes... (attempt 1)
Apr 18 09:28:49.117 INFO Code.exe is running, wait a bit
Apr 18 09:28:49.632 INFO Checking for running Code.exe processes... (attempt 2)
Apr 18 09:28:49.632 INFO Code.exe is running, wait a bit
Apr 18 09:28:50.147 INFO Checking for running Code.exe processes... (attempt 3)
Apr 18 09:28:50.147 INFO Code.exe is running, wait a bit
Apr 18 09:28:50.661 INFO Checking for running Code.exe processes... (attempt 4)
Apr 18 09:28:50.661 INFO Code.exe is running, wait a bit
Apr 18 09:28:51.176 INFO Checking for running Code.exe processes... (attempt 5)
Apr 18 09:28:51.176 INFO Code.exe is running, wait a bit
Apr 18 09:28:51.691 INFO Checking for running Code.exe processes... (attempt 6)
Apr 18 09:28:51.691 INFO Code.exe is running, wait a bit
Apr 18 09:28:52.206 INFO Checking for running Code.exe processes... (attempt 7)
Apr 18 09:28:52.206 INFO Code.exe is running, wait a bit
Apr 18 09:28:52.721 INFO Checking for running Code.exe processes... (attempt 8)
Apr 18 09:28:52.721 INFO Code.exe is running, wait a bit
Apr 18 09:28:53.235 INFO Checking for running Code.exe processes... (attempt 9)
Apr 18 09:28:53.235 INFO Code.exe is running, wait a bit
Apr 18 09:28:53.750 INFO Checking for running Code.exe processes... (attempt 10)
Apr 18 09:28:53.750 INFO Code.exe is not running
Apr 18 09:28:53.750 INFO Checking for possible conflicting running processes... (attempt 1)
Apr 18 09:28:53.750 INFO Inno Updater v0.7.1
Apr 18 09:28:53.750 INFO Starting update, silent = false
Apr 18 09:28:53.813 INFO do_update: "C:\\Users\\ユーザ\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe", 

~~中略

Apr 18 09:30:58.441 INFO Delete: "C:\\Users\\ユーザ\\AppData\\Local\\Programs\\Microsoft VS Code\\_"
Apr 18 09:31:07.723 INFO header: Header, id: Inno Setup Uninstall Log (b) 64-bit, app id: {771FD6B0-FA20-440A-A002-3B3BAC16DC50}, app name: Visual Studio Code, version: 1048, num recs: 84095, end offset: 20880529, flags: 0x34, crc: 0x1365f5f8
Apr 18 09:31:07.723 INFO num_recs: 84095
Apr 18 09:31:08.051 INFO Updating uninstall file "C:\\Users\\ユーザ\\AppData\\Local\\Programs\\Microsoft VS Code\\unins000.dat"
Apr 18 09:31:08.191 INFO Update was successful!
```
**「Update was successful!」**が最終行に出力されます。

# まとめ
バージョンアップのログを見る機会はあまりないと思いますが、VSCodeは丁寧に日本語でログを出力してくれています。（ワーニングのダイアログは英語でしたが）
**VSCodeのバージョンアップは開いているファイルを閉じてから**
というわけです。

以上、参考までに