Is there a way to change the extensions folder location for Visual Studio Code?

SettingsVisual Studio-Code

Settings Problem Overview


I've put Visual Studio Code on OneDrive, for the purpose of syncing it with its settings across my devices.

However, extensions are stored in %USERPROFILE%\.vscode\extensions on Windows.

Is it possible to change this folder's location so I can put it in the main Visual Studio Code folder?

At first I thought that copying the extensions in the resources\app\extensions of Visual Studio Code folder will be a nice workaround, but that doesn't work.

I've also searched for a solution on the documentation page and in the user settings, with no results.

Settings Solutions


Solution 1 - Settings

What I did - after installing Visual Studio Code for the first time, I checked the documentation and added at the end of 'Target' field of editor's shortcut the following (there's a space before the two dashes):

 --extensions-dir="DRIVELETTER:\VSCODE\extensions"
 --user-data-dir="DRIVELETTER:\VSCODE\settings"

where DRIVERLETTER and VSCODE are the corresponding drive and directory where Visual Studio Code is installed. So mine looks like this:

"D:\Microsoft VS Code\Code.exe" --extensions-dir="D:\Microsoft VS Code\extensions"

Here is for the user data directory:

"D:\Microsoft VS Code\Code.exe" --user-data-dir="D:\Microsoft VS Code\settings"

Accessing the 'Target' field is done by right-clicking the shortcut and choosing 'Properties'

Anyway, there's a simpler solution to that problem - just use the portable version of Visual Studio Code. It works under Windows, Linux, and macOS:

Enable Portable Mode

Windows and Linux

After unzipping the Visual Studio Code download, simply create a data folder within Visual Studio Code's folder:

|- VSCode-win32-x64-1.25.0-insider
| |- Code.exe (or code executable)
| |- data
| |- ...

From then on, that folder will be used to contain all Visual Studio Code data, including session state, preferences, extensions, etc.

The data folder can be moved to other Visual Studio Code installations. This is useful for updating your portable Visual Studio Code version: simply move the data folder to a newer extracted version of Visual Studio Code.

macOS

On macOS, you need to place the data folder as a sibling of the application itself. Since the folder will be alongside the application, you need to name it specifically so that Code can find it. The default folder name is code-portable-data:

|- Visual Studio Code.app
|- code-portable-data

Portable mode won't work if your application is in quarantine, which happens by default if you just downloaded Visual Studio Code. Make sure you remove the quarantine attribute, if portable mode doesn't seem to work:

xattr -dr com.apple.quarantine Visual\ Studio\ Code.app

Note: On Insiders, the folder should be named code-insiders-portable-data.

UPDATE 14.12.2021

From Visual Studio Docs

Note: Do not attempt to configure portable mode on an installation from the Windows User or System installers. Portable mode is only supported on the Windows ZIP (.zip) archive. Note as well that the Windows ZIP archive does not support auto update.

Solution 2 - Settings

A little hack:

Create a symbolic link to the folder %USERPROFILE%\.vscode\extensions under the Visual Studio Code install path.

Solution 3 - Settings

https://code.visualstudio.com/docs/editor/extension-gallery


> code --extensions-dir 'new_directory_to_set'

> Set the root path for extensions.

Solution 4 - Settings

Follow the below steps for changing the extension path in VS.

> 1. Set "code" path in environment variable. >
path = VS_CODE_INSTALL_DIRECTORY/bin; > 2. Open VS , in VS terminal execute the below command. >
code --extensions-dir "new_directory_path" > 3. Install the required extension.

All Done.

Note:Dont forget to vote the answer

Solution 5 - Settings

According to this page, after installing VS Code we should make a language profilers folder like this:

mkdir code_profiles  
cd code_profiles  
mkdir code-ruby  
cd code-ruby  
mkdir exts  
mkdir data 

For Windows, I prepared a batch file (.bat) for each language I work on, it contains this line:

Start "" "D:\programs\VSCode\code.exe" --extensions-dir D:\programs\VSCode\code_profiles\code-python\exts --user-data-dir D:\programs\VSCode\code_profiles\code-python\data . 

This is for Python. If I work on PHP, I will make code-php folder, then make exts and data folders in it and prepare another batch file for PHP, just like the one I made for python.

I put this batch file on the main project folder then double click on it to run VS Code with the preferred profile.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMichaël PollaView Question on Stackoverflow
Solution 1 - Settings1000GbpsView Answer on Stackoverflow
Solution 2 - SettingsclfView Answer on Stackoverflow
Solution 3 - SettingsArihantView Answer on Stackoverflow
Solution 4 - SettingsrahulnikhareView Answer on Stackoverflow
Solution 5 - SettingsM3AliView Answer on Stackoverflow