企业支持

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

网络:常见主机名

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

请参考网络常用主机名列表以获取所需的域名。

配置允许的扩展

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

Note

从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。目前不支持使用通配符。

Tip

您可以使用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中的扩展,请参考扩展文档

通过设备管理控制允许的扩展

您可以通过使用设备管理来控制extensions.allowed设置。使用AllowedExtensions VS Code策略,该策略会覆盖extensions.allowed设置。此策略的值是一个包含允许扩展的JSON字符串。

Important

如果策略值中存在语法错误,extensions.allowed设置将不会应用。您可以在VS Code中检查Window日志以查找错误(按下⇧⌘P(Windows,Linux Ctrl+Shift+P并输入显示窗口日志)。在设置编辑器(⌘,(Windows,Linux Ctrl+,)中,您可以看到Extensions: Allowed设置的警告消息,提示设置值未应用。

设置编辑器显示'扩展:允许'设置的警告信息。

配置自动更新

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

该设置有以下选项:

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

通过设备管理控制更新模式

您可以通过使用设备管理来控制update.mode设置。使用UpdateMode VS Code策略,该策略会覆盖update.mode设置。此策略的值是一个包含更新模式的字符串。

设备管理

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

管理员控制的功能

  • 自动更新 (update.mode)
  • 允许的扩展 (extensions.allowed)

Windows上的组策略

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

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

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

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

附加政策

目标是推广当前的VS Code设置作为策略,并紧密遵循现有设置,以确保命名和行为的一致性。如果有制定更多策略的请求,请在VS Code的GitHub仓库中提出问题。团队将确定是否已有对应行为的设置,或者是否需要创建新的设置来控制所需的行为。

使用预安装扩展设置VS Code

你可以使用一组预安装的扩展(bootstrap)来设置VS Code。这个功能在你准备一个预装了VS Code的机器镜像、虚拟机或云工作站时非常有用,用户可以立即使用特定的扩展。

Note

目前,预安装扩展的支持仅在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仓库中打开一个问题,并分享有关您场景的详细信息。