使用回應檔設定安裝預設設定
在本文中,您將瞭解如何建立響應檔,以協助您自動化 Visual Studio 安裝。 最常見的用法是當您從 版面配置安裝 Visual Studio 時。
Visual Studio 回應檔是一個 JSON 檔案,其內容包含 Visual Studio 初始安裝至客戶端期間所使用的自定義專案。 其內容會複製 命令列中的引數和參數。 請使用回應檔以設定以下的設定選項。
- 設定初始安裝期間,預設應選取哪些工作負載、元件或語言。
- 參考小組已標準化的 安裝組態
*.vsconfig
檔案。 - 指定 客戶端應該從接收更新的位置。 範例包括因特網上的預設 Microsoft 託管伺服器,或由系統管理員控制的網路佈局位置。
- 在更新期間,自動移除不再支援的元件 。
建立回應檔
當系統管理員 response.json
時,通常會建立 檔案,而且可以在版面配置的根資料夾中找到。 不過,您可以使用下列其中一個範例來建立自己的響應檔。
指定回應檔
如果系統管理員 從配置叫用啟動載入器來部署Visual Studio,則會自動使用配置根目錄中找到的回應檔。 系統管理員也可以選擇使用 --in
參數明確指定不同的響應檔,如下列範例所示:
\\server\share\layoutdirectory\vs_enterprise.exe --in custom_response_file.json
回應檔內容
回應檔會封裝 Visual Studio 安裝程式所使用的命令行參數,並遵循下列一般規則:
- 如果命令行參數不接受自變數(例如,
--quiet
、--passive
、includeRecommended
、removeOos
、useLatestInstaller
、allowUnsignedExtensions
等),回應檔中的值應該是 true/false。 - 如果參數接受自變數(例如,
--installPath <dir>
、--config <*.vsconfig file>
),則響應檔中的值應該是字串。 - 如果參數接受自變數,而且可以多次出現在命令行上(例如,
--add <id>
),回應檔中的值應該是字串陣列。
命令行上指定的參數會覆寫響應檔中包含的設定,但參數接受多個輸入時除外(例如,--add
)。 當您有多個輸入時,命令行上提供的輸入會與回應檔中的設定合併。
設定從佈局安裝時所使用的回應檔
如果您使用 --layout
命令建立版面配置,則會在版面配置資料夾的根目錄中建立預設 response.json
檔案。 系統管理員應該先適當地修改和自定義回應檔 ,再 安裝到用戶端電腦上。 如此一來,他們就可以控制用戶端的初始組態設定。
只有在執行 response.json
時,才會參考 檔案中的組態設定(例如,vs_enterprise.exe)。 啟動載入器通常用來在用戶端上執行初始安裝,但有時也會用來更新用戶端。 當您在用戶端本機啟動安裝程式時,永遠不會使用 response.json
。
如果系統管理員建立了部分版面配置,則版面配置中的預設 response.json
檔案只會指定部分版面配置中包含的工作負載和語言。
如果版面是藉由傳入 --config *.vsconfig
檔案來建立,則會將 *.vsconfig
檔案複製到版面目錄中做為 layout.vsconfig
,並在 response.json
檔案中參考此設定檔。 如此一來,您可以使用設定檔來初始化源自配置的用戶端安裝。
務必特別注意 channelUri 設定,因為這個設定會影響用戶端在 尋找更新的位置。 默認組態是讓用戶端查看因特網上Microsoft裝載的伺服器以進行更新。 如果您想要用戶端從配置取得其更新,您必須變更 channelUri 的值,並將它指向您的配置。 以下是執行此操作的範例 詳述於下方。 您可以隨時變更用戶端在未來尋找更新的來源,方法是 在用戶端上執行安裝程式,並叫用 modifySettings
命令。
如果用戶端安裝 未 使用 --quiet
或 --passive
模式完成,使用者可以覆寫 response.json
中指定的預設值,並進一步選取或取消選取要安裝的其他工作負載和元件。
警告
建立版面配置時定義的 response.json
屬性在編輯時請務必小心,因為安裝需要其中的一些項目。
配置中的基底 response.json
檔案看起來應該類似下列範例,不同之處在於 productID 會反映版面配置中的版本。
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "https://aka.ms/vs/16/release/channel",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.16.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise"
}
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "https://aka.ms/vs/17/release/channel",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.17.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise"
}
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "https://aka.ms/vs/17/release.ltsc.17.0/channel",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.17.Release.LTSC.17.0",
"productId": "Microsoft.VisualStudio.Product.Enterprise"
}
當您建立或更新版面配置時,也會建立 response.template.json 檔案。 此檔案包含所有可使用的工作負載、元件和語言標識碼。 此檔案是以範本的形式提供,以了解自訂安裝中可能包含的所有內容。 系統管理員可以使用此檔案作為自定義回應檔的起點。 只要移除您不想安裝之專案的標識碼,並將其儲存在 response.json
檔案或您自己的響應檔中即可。 請勿自定義 response.template.json 檔案,或每當更新版面配置時,您的變更就會遺失。
自定義版面配置回應檔內容的範例
下列 response.json
檔案範例會初始化 Visual Studio Enterprise 用戶端安裝,以選取數個常見的工作負載和元件、選取英文和法文 UI 語言,以及將更新位置設定為尋找網路託管配置中的來源。 針對 Visual Studio 2019,更新位置 (channelUri) 只能在初始安裝期間設定,除非 您使用最新安裝程式中的功能,否則無法在事實 之後變更。 請參閱 設定 Visual Studio 企業部署的原則,以及 設定配置以一律包含並提供最新的安裝程式,以取得如何設定這項功能的相關信息。
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "\\\\server\\share\\layoutdirectory\\ChannelManifest.json",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.16.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise",
"installPath": "C:\\VS2019",
"quiet": false,
"passive": false,
"includeRecommended": true,
"norestart": false,
"useLatestInstaller": true,
"removeOos": true,
"addProductLang": [
"en-US",
"fr-FR"
],
"add": [
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.Data",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.Office",
"Microsoft.VisualStudio.Workload.Universal",
"Component.GitHub.VisualStudio"
]
}
下列 response.json
檔案範例會初始化 Visual Studio Enterprise 用戶端安裝,以選取數個常見的工作負載和元件、選取英文和法文 UI 語言,以及將更新位置設定為尋找網路託管配置中的來源。 請參閱 設定 Visual Studio 企業部署的原則,以及 設定配置以一律包含並提供最新的安裝程式,以取得如何設定這項功能的相關信息。
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "\\\\server\\share\\layoutdirectory\\ChannelManifest.json",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.17.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise",
"installPath": "C:\\VS2022",
"quiet": false,
"passive": false,
"includeRecommended": true,
"norestart": false,
"useLatestInstaller": true,
"removeOos": true,
"addProductLang": [
"en-US",
"fr-FR"
],
"add": [
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.Data",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.Office",
"Microsoft.VisualStudio.Workload.Universal",
"Component.GitHub.VisualStudio"
]
}
在下列範例中,response.json
檔案會初始化 Visual Studio Enterprise 用戶端安裝:
- 使用元件 、.vsconfig 檔案來定義要安裝 的工作負載、元件和擴充功能
- 同時選取英文和法文 UI 語言
- 設定 更新位置,在 HTTP 裝載的配置中尋找來源
- 允許 以程式設計方式載入未簽署的延伸模組
- 移除在更新用戶端時轉換為不支援狀態的元件。 於此查看不再支援元件的清單 。
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "http://MyCompanyIntranetSite/VS2022Enterprise/ChannelManifest.json",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.17.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise",
"arch": "x64",
"config": ".\\Layout.vsconfig"
"installPath": "C:\\VS2022",
"quiet": false,
"passive": false,
"includeRecommended": true,
"norestart": false,
"useLatestInstaller": true,
"removeOos": true,
"allowUnsignedExtensions": true,
"addProductLang": [
"en-US",
"fr-FR"
]
}
警告
如果您使用內部網路的網頁託管版面配置,則無法在 response.json 中設定「noWeb」:true,並預期它能運作。 這會停用 HTTP 通訊協定,並防止用戶端存取網站。
故障排除
如果您在與 response.json
檔案配對時遇到 Visual Studio 啟動載入器擲回錯誤的問題,請參閱安裝或使用 Visual Studio 頁面時針對網路相關錯誤進行疑難解答。
支援或疑難解答
有時候,事情可能會出錯。 如果您的 Visual Studio 安裝失敗,請參閱 針對 Visual Studio 安裝和升級問題進行疑難解答, 以取得逐步指引。
以下是一些更多支援選項:
- 針對安裝相關問題,請使用 安裝聊天(僅限英文)支持選項。
- 使用 「回報問題」工具,向我們回報產品問題,該工具出現在 Visual Studio 安裝程式及 Visual Studio IDE。 如果您是 IT 系統管理員且未安裝 Visual Studio,則可以提交 IT 系統管理員意見反應。
- 建議功能、追蹤產品問題,並在 Visual Studio 開發人員社群中找到答案。