有没有办法更改 Visual Studio Code 的扩展文件夹位置?

Posted

技术标签:

【中文标题】有没有办法更改 Visual Studio Code 的扩展文件夹位置?【英文标题】:Is there a way to change the extensions folder location for Visual Studio Code? 【发布时间】:2017-02-26 02:34:12 【问题描述】:

我已将 Visual Studio Code 放在 OneDrive 上,以便在我的设备上将其与其设置同步。

但是,扩展存储在 Windows 上的 %USERPROFILE%\.vscode\extensions 中。

是否可以更改此文件夹的位置,以便将其放在 Visual Studio Code 主文件夹中?

起初我认为复制 Visual Studio Code 文件夹的 resources\app\extensions 中的扩展名会是一个很好的解决方法,但那行不通。

我还在documentation page 和用户设置中搜索了解决方案,但没有结果。

【问题讨论】:

您可以使用this extension在vscode实例之间同步设置。效果很好。 @Bill_Stewart:您好,感谢您的建议。我会尝试使用这个扩展,但我想知道是否有更简单的方法,比如修改配置文件。 安装之间的同步设置不是 VS Code 的内置功能之一。因此扩展名。 【参考方案1】:

我做了什么 - 在第一次安装 Visual Studio Code 后,我检查了文档并在编辑器快捷方式的“目标”字段的末尾添加了以下内容(两个破折号前有一个空格):

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

其中 DRIVERLETTER 和 VSCODE 是安装 Visual Studio Code 的相应驱动器和目录。所以我的看起来像这样:

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

这里是用户数据目录:

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

通过右键单击快捷方式并选择“属性”来访问“目标”字段

无论如何,对于这个问题有一个更简单的解决方案 - 只需使用 Visual Studio Code 的可移植版本。它适用于 Windows、Linux 和 macOS:

启用便携模式

Windows 和 Linux

解压 Visual Studio Code 下载后,只需在 Visual Studio Code 的文件夹中创建一个数据文件夹:

|- VSCode-win32-x64-1.25.0-insider | |- Code.exe(或代码可执行文件) | |- 数据 | |- ...

从那时起,该文件夹将用于包含所有 Visual Studio Code 数据,包括会话状态、首选项、扩展等。

数据文件夹可以移动到其他 Visual Studio Code 安装。这对于更新您的可移植 Visual Studio Code 版本很有用:只需将数据文件夹移动到更新的 Visual Studio Code 提取版本。

macOS

在 macOS 上,您需要将数据文件夹作为应用程序本身的同级文件夹。由于该文件夹将在应用程序旁边,因此您需要对其进行专门命名,以便 Code 可以找到它。默认文件夹名称为 code-portable-data:

|- Visual Studio Code.app |- 代码便携数据

如果您的应用程序处于隔离状态,便携模式将不起作用,如果您刚刚下载了 Visual Studio Code,则默认情况下会发生这种情况。如果便携模式似乎不起作用,请确保删除隔离属性:

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

注意:在Insiders上,文件夹应命名为code-insiders-portable-data。

2021 年 12 月 14 日更新

来自Visual Studio Docs

注意:不要尝试在从 Windows 用户或系统安装程序安装时配置便携模式。便携模式仅在 Windows ZIP (.zip) 存档中受支持。另请注意,Windows ZIP 存档不支持自动更新。

【讨论】:

我发现将--extensions-dir--user-data-dir cmdline 开关添加到快捷方式并非没有警告......如果使用“安装程序”版本(Windows)那么有很多“上下文菜单”选项创建,例如在 vscode 中打开文件(或目录或驱动器等) - 如果您想保留此功能,这些都需要更新(在注册表中)。但是,当 vscode 自动更新时,这些似乎都被 reset 了!当 vscode 自动更新时,它“有时”(?!)会在没有 cmdline 开关的情况下重新启动,因此您将使用默认的 extensions-dir 和 user-data-dir! 这可能是 VSCode 的硬编码行为 - 更新后重置所有启动选项,以便最新版本可以在更清洁的环境中启动。但不知道是不是这样 因为我现在两次遇到这个陷阱,请注意便携模式仅适用于 ZIP 包下载,不适用于任何安装程序包。 更新了帖子,除了旧的VSCode版本之外似乎不再相关【参考方案2】:

一个小技巧:

在 Visual Studio Code 安装路径下创建指向文件夹 %USERPROFILE%\.vscode\extensions 的符号链接。

【讨论】:

我希望我的扩展程序位于C:\dev\Microsoft VS Code\extensions。这就是我所做的:mklink /D %USERPROFILE%\.vscode\extensions "C:\dev\Microsoft VS Code\extensions" 截至 2018 年 4 月,Visual Studio Code 可以在便携模式下运行,但在代码文件夹中添加了一个名为“data”的文件夹。 code.visualstudio.com/docs/editor/portable 请注意:除非您使用的是 Windows 10 build 14972 或更高版本并启用了 开发人员模式,否则必须提升 mklink 命令执行 b>!无论如何,我不认为这种重新定位目录的方法是一种 hack,甚至不是一点点。 ? 主要在 *nix 系统上很常见。【参考方案3】:

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


code --extensions-dir 'new_directory_to_set'

设置扩展的根路径。

【讨论】:

仅用于本次执行,而非永久【参考方案4】:

按照以下步骤在 VS 中更改扩展路径。

    在环境变量中设置“代码”路径。

    path = VS_CODE_INSTALL_DIRECTORY/bin;
    

    打开 VS ,在 VS 终端执行以下命令。

    code --extensions-dir "new_directory_path"
    
    安装所需的扩展。

全部完成。

注意:别忘了给答案投票

【讨论】:

设置环境变量有什么作用?这似乎都是由命令行开关控制的? 它可以用于重复使用扩展而无需重新下载【参考方案5】:

根据this page,在安装 VS Code 之后,我们应该像这样创建一个语言分析器文件夹:

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

对于 Windows,我为我使用的每种语言准备了一个批处理文件 (.bat),它包含以下行:

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 . 

这是针对 Python 的。如果我在 php 上工作,我将创建 code-php 文件夹,然后在其中创建 extsdata 文件夹,并为 PHP 准备另一个批处理文件,就像我为 python 制作的那样。

我将此批处理文件放在主项目文件夹中,然后双击它以使用首选配置文件运行 VS Code。

【讨论】:

以上是关于有没有办法更改 Visual Studio Code 的扩展文件夹位置?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2016堆积条形图图例:更改标签标题

有没有办法从 Visual Studio Code 调试 Tomcat Java 应用程序

是否可以更改 Visual Studio 2012 中的图标?

在 Visual Studio Code 中更改文件的编码

Visual Studio 2016 堆积条形图图例:更改标签标题

在 Visual Studio Express 2013 中更改按钮样式