企業支援
Visual Studio Code 可以作為各種規模企業團隊的開發工具。作為 IT 管理員,您可以配置 VS Code,以在整個組織內實現一致性和相容性。
網路:常用主機名
VS Code 中的一些功能需要網路通訊才能工作,例如自動更新機制、查詢和安裝擴充套件以及遙測。為了讓這些功能在代理環境中正常工作,您必須正確配置產品。
有關所需域名,請參閱網路常用主機名列表。
配置允許的擴充套件
從 VS Code 1.96 版本開始,支援配置允許的擴充套件。
VS Code 中的 extensions.allowed
應用級設定使您能夠控制可以在使用者計算機上安裝哪些擴充套件。如果未配置該設定,則允許所有擴充套件。如果配置了該設定,則所有未列出的擴充套件都將被阻止安裝。如果您阻止了已安裝的擴充套件或版本,該擴充套件將被停用。
要為您的組織集中管理允許的擴充套件,請使用您的裝置管理解決方案配置 AllowedExtensions
策略。此策略會覆蓋使用者裝置上的 extensions.allowed
設定。此策略的值是一個包含允許的擴充套件的 JSON 字串。
{
"github": true,
"microsoft": true
}
以下是管理員如何使用本地組策略編輯器在本地配置 AllowedExtensions
策略的示例。
如果策略值中存在語法錯誤,extensions.allowed
設定將不會被應用。您可以在 VS Code 中檢查視窗日誌以查詢錯誤(按 ⇧⌘P (Windows, Linux Ctrl+Shift+P) 並輸入顯示視窗日誌 (Show Window Log))。
允許的擴充套件設定值
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 container tools extension
"ms-azuretools.vscode-containers": 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 擴充套件的更多資訊,請參閱擴充套件文件。
配置自動更新
update.mode
VS Code 設定控制 VS Code 在新版本釋出時是否自動更新。更新從 Microsoft 線上服務獲取。
該設定有以下選項:
none
- 停用更新manual
- 停用自動檢查更新,但使用者可以手動檢查更新start
- 僅在 VS Code 啟動時檢查更新,停用自動檢查更新default
- 啟用自動檢查更新,並定期在後臺執行
要為您的組織集中管理自動更新,請使用您的裝置管理解決方案配置 UpdateMode
策略。此策略會覆蓋使用者裝置上的 update.mode
設定。此策略的值是一個包含更新模式的字串。
配置遙測級別
VS Code 的 telemetry.telemetryLevel 設定控制 VS Code 的遙測、第一方擴充套件的遙測以及參與的第三方擴充套件的遙測。一些第三方擴充套件可能不遵循此設定。閱讀更多關於我們收集的資料的資訊。
all
- 傳送使用資料、錯誤和崩潰報告error
- 傳送一般錯誤遙測和崩潰報告crash
- 傳送作業系統級別的崩潰報告off
- 停用所有產品遙測
要為您的組織集中管理遙測,請使用您的裝置管理解決方案配置 TelemetryLevel
策略。此策略會覆蓋使用者裝置上的 telemetry.telemetryLevel
設定。此策略的值是一個包含遙測級別的字串。
集中管理 VS Code 設定
您可以透過裝置管理解決方案集中管理 VS Code 的特定功能,以確保其滿足您組織的需求。當您指定一個 VS Code 策略時,其值會覆蓋使用者裝置上相應的 VS Code 設定。
VS Code 目前提供以下策略來控制管理員控制的功能:
策略 | 描述 | VS Code 設定 | 可用版本 |
---|---|---|---|
AllowedExtensions |
指定可以安裝哪些擴充套件。 | extensions.allowed |
1.96 |
UpdateMode |
啟用 VS Code 更新的自動安裝。 | update.mode |
1.67 |
TelemetryLevel |
指定遙測資料級別。 | telemetry.telemetryLevel |
1.99 |
EnableFeedback |
配置反饋機制(問題報告器和調查)。 | telemetry.feedback.enabled |
1.99 |
ChatAgentMode |
啟用代理模式。 | chat.agent.enabled |
1.99 |
ChatAgentExtensionTools |
啟用使用第三方擴充套件提供的工具。 | chat.extensionTools.enabled |
1.99 |
ChatPromptFiles |
在聊天中啟用提示和指令檔案。 | chat.promptFiles |
1.99 |
ChatMCP |
啟用對模型上下文協議 (MCP) 伺服器的支援。 | chat.mcp.access |
1.99 |
ChatToolsAutoApprove |
為代理模式工具啟用全域性自動批准。 | chat.tools.global.autoApprove |
1.99 |
CopilotReviewSelection |
為編輯器中的選定內容啟用程式碼審查。 | github.copilot.chat.reviewSelection.enabled |
1.104 |
CopilotReviewAgent |
為拉取請求和已更改的檔案啟用 Copilot 程式碼審查。 | github.copilot.chat.reviewAgent.enabled |
1.104 |
ChatToolsTerminalEnableAutoApprove |
為終端工具啟用基於規則的自動批准。 | chat.tools.terminal.autoApprove |
1.104 |
Windows 上的組策略
VS Code 支援基於 Windows 登錄檔的組策略。從 VS Code 1.69 版本開始,每個版本都附帶一個 policies
目錄,其中包含可以新增到以下路徑的 ADMX 模板檔案:C:\Windows\PolicyDefinitions
。請確保同時將相應的 adml
檔案複製到 C:\Windows\PolicyDefinitions\<your-locale>
目錄。
安裝策略定義後,管理員可以使用本地組策略編輯器來管理策略值。
諸如 Microsoft Intune 之類的產品可用於大規模集中管理裝置策略。
策略可以在計算機級別和使用者級別設定。如果兩者都設定了,計算機級別將優先。當策略值被設定時,該值會覆蓋在任何級別(預設、使用者、工作區等)配置的 VS Code 設定值。
macOS 上的配置檔案
配置檔案用於管理 macOS 裝置上的設定。配置檔案是一個 XML 檔案,包含與可用策略相對應的鍵/值對。這些配置檔案可以使用移動裝置管理 (MDM) 解決方案進行部署,也可以手動安裝。
從 VS Code 1.99 版本開始,每個版本都附帶一個示例 .mobileconfig
檔案。該檔案位於 .app
包內的 Contents/Resources/app/policies
路徑下。使用文字編輯器手動編輯或刪除策略,以匹配您組織的要求。
要檢視 .app
包的內容,請在 Finder 中右鍵單擊應用程式(例如 /Applications/Visual Studio Code.app
)並選擇顯示包內容。
字串策略
下面的示例演示瞭如何配置 AllowedExtensions
策略。在示例檔案中,策略值開始時為空(不允許任何擴充套件)。
<key>AllowedExtensions</key>
<string></string>
在 <string>
標籤之間新增定義您策略的相應 JSON 字串。
<key>AllowedExtensions</key>
<string>{"microsoft": true, "github": true}</string>
其他策略,如 UpdateMode
,接受一組預定義值中的一個字串。
<key>UpdateMode</key>
<string>start</string>
布林策略
布林策略值用 <true/>
或 <false/>
表示。
<key>EnableFeedback</key>
<true/>
要省略某個策略,請從 .mobileconfig
檔案中刪除其鍵/值對。例如,要不強制執行更新模式策略,請刪除 UpdateMode
鍵及其後的 <string></string>
標籤。
提供的 .mobileconfig
檔案會初始化該版本 VS Code 中可用的所有策略。請刪除任何不需要的策略。
如果您不編輯或刪除示例 .mobileconfig
中的某個策略,該策略將以其預設的(限制性)策略值被強制執行。
透過在 Finder 中雙擊 .mobileconfig
配置檔案,然後在系統偏好設定的通用 > 裝置管理中啟用它來手動安裝配置檔案。從系統偏好設定中刪除該配置檔案將從 VS Code 中移除這些策略。
有關配置檔案的更多資訊,請參閱 Apple 的文件。
附加策略
我們的目標是將當前的 VS Code 設定提升為策略,並緊密遵循現有設定,以便命名和行為保持一致。如果有更多策略的制定請求,請在 VS Code 的 GitHub 倉庫中提交一個 issue。團隊將確定是否已有相應的設定來控制該行為,或者是否應建立一個新設定來控制期望的行為。
設定帶有預裝擴充套件的 VS Code
您可以設定帶有預裝擴充套件集(引導)的 VS Code。當您準備一個預裝了 VS Code 的機器映象、虛擬機器或雲工作站,並希望特定擴充套件能立即對使用者可用時,此功能非常有用。
預裝擴充套件的功能目前僅在 Windows 上可用。
按照以下步驟引導擴充套件:
-
在 VS Code 安裝目錄中建立一個名為
bootstrap\extensions
的資料夾。 -
下載您想要預裝的擴充套件的 VSIX 檔案,並將它們放入
bootstrap\extensions
資料夾中。 -
當用戶首次啟動 VS Code 時,
bootstrap\extensions
資料夾中的所有擴充套件都將在後臺靜默安裝。
使用者仍然可以解除安裝預裝的擴充套件。解除安裝擴充套件後重啟 VS Code 不會重新安裝該擴充套件。
常見問題
VS Code 是否支援 Linux 上的配置檔案?
目前沒有支援 Linux 的計劃。如果您對 Linux 上的配置檔案感興趣,請在 VS Code 的 GitHub 倉庫中提交一個 issue,並分享您場景的詳細資訊。