Configurazione di WinGet

Usando un file di configurazione WinGet, è possibile consolidare l'onboarding manuale del computer e l'onboarding del progetto in un singolo comando affidabile e ripetibile. A tale scopo, WinGet usa:

Vantaggi per la configurazione del computer e l'onboarding del progetto

I vantaggi dell'uso di un file di configurazione WinGet includono:

  • installazione automatica: immettere il comando winget configure e consentire a Gestione pacchetti Windows e PowerShell DSC di automatizzare l'installazione e configurare tutti i requisiti necessari per configurare l'ambiente di sviluppo desiderato nel computer Windows.
  • Affidabile e ripetibile: non ci si deve più preoccupare di trovare le versioni corrette di software, pacchetti, strumenti, framework e configurare le impostazioni del computer corrette per l'ambiente di sviluppo durante l'onboarding in un nuovo team o progetto perché sono predefinite nel file di configurazione WinGet usando un formato YAML (con uno schema JSON).
  • Supporta la collaborazione open source: i file di configurazione WinGet possono essere ospitati in un repository GitHub in cui possono essere inseriti problemi o contributi oppure possono essere mantenuti privati in una posizione di archiviazione sicura (ad esempio OneDrive) e condivisi tramite posta elettronica privata o altri canali protetti.

Avviso

È necessario controllare i file di configurazione WinGet e le risorse DSC di PowerShell associate per assicurarsi che siano attendibili prima di applicarle.

Usare un file di configurazione WinGet per configurare il computer

Per configurare il computer usando un file di configurazione WinGet, è possibile:

  1. installare Dev Home, passare a Configurazione macchine virtuali, selezionare File di configurazione e scegliere il file di configurazione WinGet da usare. (Per creare un file di configurazione, vedere Come creare un file di configurazione WinGet).

  2. Usare configurare winget nella riga di comando. Per usare il comando winget configure, è necessario eseguire WinGet versione 1.6.2631 o successiva.

Domande frequenti sulla configurazione di WinGet

Trovare le risposte ad alcune delle domande più frequenti sulla configurazione di WinGet.

Come funzionano i file di configurazione WinGet?

I file di configurazione WinGet vengono scritti in YAML e definiscono gli elementi installati nel dispositivo per creare l'ambiente di sviluppo, nonché lo stato di configurazione per il computer e le applicazioni installate.

Anziché una sequenza imperativa di passaggi da seguire, un file di configurazione WinGet è dichiarativo, definendo il risultato dello stato di configurazione della macchina desiderato. Usando Gestione pacchetti di Windows e le risorse DSC di PowerShell, il file di configurazione WinGet dichiarativo può installare, configurare e applicare le impostazioni all'ambiente in modo da ottenere uno stato pronto al codice.

WinGet analizzerà il file di configurazione per assicurarsi che sia valido, quindi scaricherà tutti i moduli di PowerShell associati (contenenti le risorse DSC) necessari per ottenere lo stato desiderato. Dopo che queste risorse sono state scaricate e si è controllata l'attendibilità del file di configurazione WinGet, accettando di aver verificato la sicurezza del file, WinGet inizierà a testare tutte le asserzioni necessarie e applicherà lo stato desiderato.

La sequenza in cui vengono ordinate le risorse del file di configurazione WinGet è inconsequenziale. Alcuni processi di installazione e configurazione possono anche essere eseguiti in parallelo. Le asserzioni corrispondono direttamente al campo dependsOn definito in ogni Risorsa. Se la risorsa include una dipendenza da un'asserzione, l'asserzione verrà verificata per prima. Se l'asserzione ha esito negativo, anche la risorsa dipendente avrà esito negativo. Tuttavia, il file di configurazione continuerà a essere eseguito, eseguendo il maggior numero possibile di attività, anche se alcune asserzioni o dipendenze delle risorse hanno esito negativo, portando il computer il più lontano possibile nel processo di configurazione prima del completamento. Una volta completata la configurazione, è responsabilità dell'utente verificare la presenza di errori.

Ad esempio, dopo aver eseguito il file di configurazione WinGet, è possibile che venga visualizzato un risultato simile al seguente:

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.

In questo esempio, il controllo dell'asserzione per la versione richiesta del sistema operativo non è riuscito, quindi anche le risorse DeveloperMode e WinGetPackage che includevano una dipendenza da tale asserzione per la versione del sistema operativo non sono riuscite. Tuttavia, qualsiasi altra attività di installazione e configurazione elencata nel file di configurazione continuerà a proseguire.

Un vantaggio per la natura dichiarativa (non sequenziale) dei file di configurazione WinGet è che la posizione delle nuove risorse da aggiungere al file non ha rilevanza. Ciò è particolarmente utile per i file di configurazione lunghi, perché è sufficiente aggiungere altre risorse alla fine del file. Se le asserzioni e le dipendenze sono state definite correttamente, non è necessario preoccuparsi della sequenza o della configurazione dei passaggi prima, seconda e così via.

Screenshot of a PowerShell terminal running a WinGet Configuration file with the OSVersion assertion and dependent resources failing.

Come si usa un file di configurazione WinGet?

Per eseguire un file di configurazione WinGet, usare il winget configurecomando.

Come si crea una configurazione WinGet?

Per creare un file di configurazione WinGet, seguire le indicazioni riportate nella documentazione Come creare un file di configurazione WinGet.

Come posso garantire che un file di configurazione WinGet sia attendibile?

È consigliabile sempre convalidare l'integrità di un file di configurazione WinGet prima di eseguirlo esaminando il contenuto e testando la configurazione in un ambiente isolato. Vedere Come controllare l'attendibilità di un file di configurazione WinGet.

Dove è possibile trovare i file di configurazione WinGet di esempio?

È possibile trovare i file di configurazione WinGet di esempio nel repository Windows Dev Home: https://aka.ms/dsc.yaml.

Dove è possibile trovare esempi di moduli di PowerShell contenenti risorse DSC?

Il PowerShell Gallery ospita centinaia di moduli di PowerShell contenenti risorse DSC (Desired State Configuration). È possibile filtrare i risultati della ricerca applicando il filtro "DSC Resource" in "Categories".

Desired State Configuration PowerShell module search results from the PowerShell Gallery

È possibile configurare un criterio per bloccare l'uso dei file di configurazione WinGet nell'organizzazione?

Sì. Gli oggetti Criteri di gruppo EnableWindowsPackageManagerConfiguration e EnableWindowsPackageManagerConfigurationExplanation possono essere utilizzati per disabilitare la funzionalità di configurazione WinGet nell'organizzazione.

Dove è possibile ottenere altre informazioni sull'uso delle configurazioni WinGet con Dev Home and Dev Drive?

Altre informazioni sull'uso dello strumento Configurazione macchina in Windows 11 Dev Home nell'articolo Configurare l'ambiente di sviluppo Windows con Dev Home. Per scoprire come usare i volumi di archiviazione di Dev Drive ottimizzati per le prestazioni, vedere Configurare Dev Drive in Windows 11.

Risoluzione dei problemi relativi alle configurazioni winGet

Il motivo più comune per cui una configurazione WinGet non riesce è dovuta a una risorsa DSC di PowerShell che richiede l'accesso amministrativo per applicare lo stato desiderato. Non tutte le risorse DSC hanno motivi espliciti per l'errore.

Presto verranno aggiunta documentazione per la risoluzione dei problemi più comuni. Nel frattempo, controllare i problemi correlati inseriti nel repository dell'interfaccia della riga di comando di WinGet in GitHub.