🚀 在 VS Code 中获取

企业支持

Visual Studio Code 可以用作各种规模企业团队的开发工具。作为 IT 管理员,您可以配置 VS Code,以在您的组织内实现一致性和兼容性。

网络:常用主机名

VS Code 中的一些功能需要网络通信才能工作,例如自动更新机制、查询和安装扩展以及遥测。为了使这些功能在代理环境中正常工作,您必须正确配置产品。

有关所需的域,请参阅网络常用主机名列表

配置允许的扩展

在 VS Code 中配置应用程序范围的 extensions.allowed 设置,以控制可以安装哪些扩展。如果未配置此设置,则允许所有扩展。如果配置了此设置,则会阻止安装所有未列出的扩展。如果您阻止已安装的扩展或版本,则该扩展将被禁用。

要集中管理组织的允许扩展,请使用设备管理(如 Windows 组策略)来创建策略,以覆盖各个设备上的 VS Code 设置。

注意

从 VS Code 1.96 版本开始,支持允许的扩展。

extensions.allowed 设置包含扩展选择器的列表,这些选择器确定允许或阻止哪些扩展。您可以指定以下类型的扩展选择器

  • 允许或阻止来自发布者的所有扩展
  • 允许或阻止特定扩展
  • 允许特定扩展版本
  • 允许特定扩展版本和平台
  • 仅允许扩展的稳定版本
  • 仅允许来自发布者的稳定扩展版本

以下 JSON 代码段显示了不同 extensions.allowed 设置值的示例

"extensions.allowed": {
    // Allow all extensions from the 'microsoft' publisher. If the key does not have a '.', it means it is a publisher ID.
    "microsoft": true,

    // Allow all extensions from the 'github' publisher
    "github": true,

    // Allow prettier extension
    "esbenp.prettier-vscode": true,

    // Do not allow docker extension
    "ms-azuretools.vscode-docker": false,

    // Allow only version 3.0.0 of the eslint extension
    "dbaeumer.vscode-eslint": ["3.0.0"],

    // Allow multiple versions of the figma extension
    "figma.figma-vscode-extension": ["3.0.0", "4.2.3", "4.1.2"],

    // Allow version 5.0.0 of the rust extension on Windows and macOS
    "rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"],

    // Allow only stable versions of the GitHub Pull Requests extension
    "github.vscode-pull-request-github": "stable",

    // Allow only stable versions from redhat publisher
    "redhat": "stable",
}

通过发布者 ID 指定发布者。如果键没有句点 (.),则将其视为发布者 ID。如果键有句点,则将其视为扩展 ID。当前不支持使用通配符。

提示

您可以使用 microsoft 作为发布者 ID 来引用 Microsoft 发布的所有扩展,即使它们可能具有不同的发布者 ID。

不支持版本范围。如果要允许扩展的多个版本,则必须单独指定每个版本。要进一步按平台限制版本,请使用 @ 符号指定平台。例如,"rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"]

选择器越具体,优先级越高。例如,"microsoft": true"microsoft.cplusplus": false 允许所有 Microsoft 扩展,但 C++ 扩展除外。

不支持重复的键值。例如,同时包含 "microsoft": true"microsoft": false 会导致策略无效。

如果您想了解有关 VS Code 中扩展的更多信息,请参阅扩展文档

集中管理允许的扩展

使用设备管理来集中控制您的组织中允许安装哪些扩展。配置 AllowedExtensions VS Code 策略以覆盖用户设备上对应的 extensions.allowed VS Code 设置。此策略的值是一个 JSON 字符串,其中包含允许的扩展。

Settings editor showing that the 'Extensions: Allowed' setting is managed by the organization.

重要提示

如果策略值中存在语法错误,则不会应用 extensions.allowed 设置。您可以检查 VS Code 中的窗口日志以查找错误(按 ⇧⌘P (Windows、Linux Ctrl+Shift+P) 并输入显示窗口日志)。

配置自动更新

update.mode VS Code 设置控制 VS Code 在发布新版本时是否自动更新。更新是从 Microsoft 在线服务获取的。

该设置具有以下选项

  • none - 禁用更新
  • manual - 禁用自动检查更新,但用户可以手动检查更新
  • start - 仅在 VS Code 启动时检查更新,禁用自动检查更新
  • default - 启用自动检查更新,并在后台定期运行

集中管理自动更新

使用设备管理来集中控制 VS Code 如何管理组织中设备之间的更新。配置 UpdateMode VS Code 策略,该策略将覆盖用户设备上对应的 update.mode VS Code 设置。此策略的值是一个字符串,其中包含更新模式。

设备管理

您可以通过设备管理解决方案控制 VS Code 的特定功能,以确保其满足您组织的需求。

VS Code 当前支持以下管理员控制的功能

策略 描述 VS Code 设置
AllowedExtensions 控制可以安装哪些扩展。 extensions.allowed
UpdateMode 控制 VS Code 在发布新版本时是否自动更新。 update.mode
注意

目前,VS Code 仅支持 Windows 组策略。对 macOS 上的配置文件的支持即将推出(跟踪问题)。

Windows 上的组策略

系统管理员需要一种方法来控制组织中所有客户端计算机上的默认软件设置。组策略是一种客户端解决方案,使管理员可以灵活地实施每个可用策略和设置的行为。

VS Code 支持基于 Windows 注册表的组策略。从 VS Code 1.69 版本开始,每个版本都附带一个 policies 目录,其中包含可以添加到以下路径的 ADMX 模板文件:C:\Windows\PolicyDefinitions。确保还将相应的 adml 文件复制到 C:\Windows\PolicyDefinitions\<your-locale> 目录。

安装策略定义后,管理员可以使用本地组策略编辑器来管理策略值。

策略可以在计算机级别和用户级别设置。如果两者都设置,则计算机级别优先。设置策略值后,该值将覆盖在任何级别(默认、用户、工作区等)配置的 VS Code 设置值。

其他策略

目标是提升当前的 VS Code 设置作为策略,并紧密遵循现有设置,以便命名和行为保持一致。如果需要制定更多策略,请在 VS Code GitHub 存储库中打开一个问题。团队将确定是否已经存在用于该行为的相应设置,或者是否应创建新设置来控制所需的行为。

使用预装扩展设置 VS Code

您可以使用一组预装扩展(引导)设置 VS Code。在您准备计算机映像、虚拟机或云工作站(其中预装了 VS Code 并且特定扩展程序可供用户立即使用)的情况下,此功能非常有用。

注意

目前仅在 Windows 上支持预安装扩展。

按照以下步骤引导扩展

  1. 在 VS Code 安装目录中创建一个文件夹 bootstrap\extensions

  2. 下载您要预安装的扩展的 VSIX 文件,并将它们放在 bootstrap\extensions 文件夹中。

  3. 当用户首次启动 VS Code 时,bootstrap\extensions 文件夹中的所有扩展都将在后台静默安装。

用户仍然可以卸载预安装的扩展。卸载扩展后重新启动 VS Code 不会重新安装该扩展。

常见问题

VS Code 是否支持 macOS 或 Linux 上的配置文件?

目前,VS Code 仅支持 Windows 组策略。对 macOS 上的配置文件的支持即将推出(跟踪问题)。

Linux 的支持不在路线图上。如果您对 Linux 上的配置文件感兴趣,请在 VS Code GitHub 存储库中打开一个问题并分享有关您的场景的详细信息。