WinGet 設定
使用 WinGet 設定檔,您可以將手動機器設定和專案上線合併到可靠且可重複的單一命令。 為了達成此目的,WinGet 會利用:
- 一個 YAML 格式的設定檔,列出在 Windows 電腦上設定開發環境所需的所有軟體版本、封裝、工具和設定。
- PowerShell Desired State Configuration (DSC) 以自動化 Windows 作業系統的設定。
- Windows 封裝管理員
winget configure
命令 起始設定流程。
機器設定和專案上線的優點
使用 WinGet 設定檔的優點包括:
- 自動安裝: 輸入
winget configure
命令,讓 Windows 封裝管理員和 PowerShell DSC 自動安裝並設定在 Windows 電腦上設定所需開發環境所需的所有需求。 - 可靠且可重複的: 在上線至新的小組或專案時,請放心尋找正確的軟體、封裝、工具、架構,以及為您的開發環境設定正確的電腦設定,因為它們在 WinGet 設定檔中使用 YAML 格式預先定義 (使用 JSON 結構描述)。
- 支援開放原始碼共同作業: WinGet 設定檔可以裝載在 GitHub 存放庫中,其中可以在安全存儲位置 (例如 OneDrive) 中提交問題或貢獻或將其保密,並透過私人電子郵件或其他安全通道共用。
警告
應檢查 WinGet 設定檔和任何相關聯的 PowerShell DSC 資源,以確保它們在套用之前是值得信任的。
使用 WinGet 設定檔來設定您的電機器
若要使用 WinGet 設定檔設定您的機器,您可以:
安裝 [開發人員首頁],移至 [機器設定],選取 [設定檔],然後選擇您想要使用的 WinGet 設定檔。 (若要建立設定檔,請參閱 如何撰寫 WinGet 設定檔)。
在命令列中使用 winget 設定。 若要使用
winget configure
命令,您必須執行 WinGet v1.6.2631 版或更新版本。
WinGet 設定常見問題集
尋找關於 WinGet 設定一些常見問題的解答。
WinGet 設定檔如何運作?
WinGet 設定檔是以 YAML 撰寫,並定義裝置上安裝的專案,以組成您的開發環境,以及您機器和已安裝應用程式的設定狀態。
WinGet 設定檔不是要遵循命令式的步驟順序,而是宣告式,可定義所需的機器設定狀態結果。 藉由使用 Windows 封裝管理員和 PowerShell DSC 資源,宣告式 WinGet 設定檔可以安裝、設定及套用設定至您的環境,進而產生現成的程式碼狀態。
WinGet 會剖析設定檔以確保其有效,然後下載所有相關聯的 PowerShell 模組 (包含 DSC 資源),以達到您想要的狀態。 下載這些資源且檢查 WinGet 設定檔的可信度後,同意您已驗證檔案的安全性,WinGet 就會開始測試所有必要的判斷提示,並套用所需的狀態。
WinGet 設定檔資源的排序順序並不重要。 某些安裝和設定流程甚至可以平行執行。 判斷提示會直接對應至每個資源中所定義的 dependsOn
欄位。 如果資源包含判斷提示的相依性,則會先檢查判斷提示。 如果判斷提示失敗,相依資源也會失敗。 不過,設定檔會繼續執行,盡可能完成最多的工作,即使某些判斷提示或資源相依性失敗,好在完成之前,讓您的機器盡可能執行最多的設定流程。 設定完成後,您必須負責檢查是否有任何失敗。
例如,在執行 WinGet 設定檔之後,您可能會看到如下的結果:
Assert:: OsVersion
The configuration unit could not be found.
Apply :: DeveloperMode
This configuration unity was not run because an assert failed or was false.
Apply :: WinGetPackage [vsPackage]
This configuration unity was not run because an assert failed or was false.
在此範例中,作業系統所需版本的判斷提示檢查失敗,因此相依於該作業系統版本之判斷提示的 DeveloperMode 和 WinGetPackage 資源也失敗了。 不過,設定檔中列出的任何其他安裝和設定工作都會繼續執行。
WinGet 設定檔的宣告式 (非循序) 本質的優點是,要新增至檔案的新資源位置並不重要。 這特別適用於長設定檔,因為您可以直接將其他資源新增至檔案底部。 只要您已正確定義判斷提示和相依性,就不需要關注順序,或設定步驟會發生的順序等等。
如何使用 WinGet 設定檔?
若要執行設定檔,請使用 winget configure
命令。
如何撰寫 WinGet 設定檔?
若要建立 WinGet 設定檔,請遵循 如何撰寫 WinGet 設定檔 文件中的指引。
如何確保 WinGet 設定檔值得信任?
建議您在執行設定檔前,先檢查 WinGet 設定檔的內容,並在隔離的環境中測試設定,以驗證 WinGet 設定檔的完整性。 請參閱 如何檢查 WinGet 設定檔的可信度。
哪裡可以找到範例 WinGet 設定檔?
您可以在 Windows 開發人員首頁存放庫中找到範例 WinGet 設定檔: https://aka.ms/dsc.yaml。
哪裡可以找到包含 DSC 資源的 PowerShell 模組範例?
PowerShell 資源庫 裝載數百個包含 Desired State Configuration (DSC) 資源的 PowerShell 模組。 您可以在「類別」底下套用「DSC 資源」篩選條件,以篩選搜尋結果。
我可以設定原則來封鎖組織中 WinGet 設定檔的使用嗎?
是。 組策略物件 EnableWindowsPackageManagerConfiguration 和 EnableWindowsPackageManagerConfigurationExplanation 可用於停用組織中的 WinGet 組態功能。
我可以在哪裡深入了解如何搭配開發人員首頁和開發人員磁碟機使用 WinGet 設定?
若要深入了解如何在 Windows 11 開發人員首頁中使用機器設定工具,請參閱使用開發人員首頁設定 Windows 開發環境一文。 您可能也有興趣了解如何使用效能最佳化的開發人員磁碟機儲存磁碟機,請參閱 在 Windows 11 上設定開發人員磁碟機。
針對 WinGet 設定進行疑難排解
WinGet 設定失敗最常見的原因是 PowerShell DSC 資源需要系統管理存取權才能套用所需的狀態。 並非所有 DSC 資源都會呈現失敗的明確原因。
即將新增更常見的疑難排解問題。 與此同時,請檢查 GitHub 上 WinGet CLI 存放庫 中所提交的相關問題。