🦁

[トラブルシューティング]Scoop でインストールした Visual Studio Code のデータ保存場所について

2023/03/04に公開

経緯

先日、VSCode を実行しているとき、extension が機能していないことに気づきました。
単純にアンインストールしても解消されなかったため、その過程で知った Scoop(Windows 向けパッケージマネージャ)でインストールした場合の保存先の備忘録になります。
GitHub と同期している場合は、あまり必要ありませんが何らかの場合に手動で再構築することがあった場合に役に立てば幸いです。

環境

  • powershell
Get-WmiObject Win32_OperatingSystem
BuildNumber     : 19044
Version         : 10.0.19044
  • powershell or command prompt
scoop list vscode
Installed apps matching 'vscode':

Name   Version Source Updated             Info
----   ------- ------ -------             ----
vscode 1.76.0  extras 2023-03-02 15:55:20

修復方法

  1. vscode のアンインストール

    • powershell or command prompt
    scoop uninstall vscode
    

    また、今回は使いませんが-p オプションですべてのデータが削除されます。

    • powershell or command prompt
    scoop uninstall -p vscode
    
  2. ユーザデータ保存場所の退避

    アンインストールしてもそれぞれ下記の箇所に、データがあります。
    それぞれ、任意の場所に移動させます。
    注意点として過去に直接 vscode をインストールしていた場合、scoop の場所、直接インストールの設定場所を確認しに行くため両方退避する必要があります。

    直接インストール

    • ユーザ設定
    C:\Users\%USERPROFILE%\AppData\Roaming\Code\User
    
    • extensions
    C:\Users\%USERPROFILE%\.vscode
    

    Scoop でインストール

    • ユーザ設定
    C:\Users\%USERPROFILE%\scoop\persist\vscode\data\user-data\User
    
    • extensions
    C:\Users\%USERPROFILE%\scoop\persist\vscode\data\extensions
    
  3. vscode のインストール

    • powershell or command prompt
    scoop install vscode
    
  4. extensions のインストール

    今回の場合はエクステンションに問題がありそうだったため、置き換えはせず、extensions の場所にあるファイル名が過去にインストールしていたエクステンションになるのでひとつづつ設定していきます。また、いい機会のため vscode がバージョンアップして不要にあったエクステンションを確認するのもいいかもしれません。
    https://www.roboleary.net/vscode/2020/08/05/dont-need-extensions.html

  5. ユーザ設定の置き換え

    既存の場所に、退避してあったフォルダはそれぞれ置き換えます。

    直接インストール

    C:\Users\%USERPROFILE%\AppData\Roaming\Code\User
    

    Scoop でインストール

    C:\Users\%USERPROFILE%\scoop\persist\vscode\data\user-data\User
    

これで、上手くいきました。

参考

https://dianxnao.com/visual-studio-codeを完全にアンインストールするwindows/
https://scoop-docs.vercel.app/docs/concepts/Persistent-data.html#app-manifest

Discussion