Configuración de WinGet

Con un archivo de configuración de WinGet, puede consolidar la instalación manual de la máquina y la incorporación de proyectos a un único comando confiable y repetible. Para lograrlo, WinGet utiliza lo siguiente:

  • Un archivo de configuración de WinGet con formato YAML que enumera todas las versiones de software, paquetes, herramientas, dependencias y configuraciones necesarias para configurar el estado deseado del entorno de desarrollo en la máquina Windows.
  • Desired State Configuration (DSC) de PowerShell para automatizar la configuración del sistema operativo Windows.
  • El comando winget configure del Administrador de paquetes de Windows para iniciar el proceso de configuración.

Ventajas para la instalación de máquinas y la incorporación de proyectos

Entre las ventajas de usar un archivo de configuración de WinGet se incluyen las siguientes:

  • Instalación desatendida: escriba el comando winget configure y deje que el Administrador de paquetes de Windows y DSC de PowerShell automaticen la instalación y establezcan todos los requisitos necesarios para configurar el entorno de desarrollo deseado en el equipo Windows.
  • Confiable y repetible: deje de preocuparse de encontrar las versiones adecuadas de software, paquetes, herramientas, marcos y de configurar los valores de máquina correctos para el entorno de desarrollo al incorporar a un nuevo equipo o proyecto porque ya se definen en el archivo de configuración de WinGet mediante un formato YAML (con un esquema JSON).
  • Admite la colaboración de código abierto: los archivos de configuración de WinGet se pueden hospedar en un repositorio de GitHub en el que se pueden guardar incidencias o contribuciones, o bien se pueden mantener de forma privada en una ubicación de almacenamiento segura (como OneDrive) y compartirse mediante correo electrónico privado u otros canales protegidos.

Advertencia

Los archivos de configuración de WinGet y los recursos de DSC de PowerShell asociados se deben comprobar para asegurarse de que son de confianza antes de aplicarlos.

Uso de un archivo de configuración de WinGet para configurar la máquina

Para configurar la máquina mediante un archivo de configuración de WinGet, puede hacer lo siguiente:

  1. Instale Inicio para desarrolladores, vaya a Configuración de la máquina, seleccione Archivo de configuración y elija el archivo de configuración de WinGet que quiera usar. (Para crear un archivo de configuración, vea Procedimiento para crear un archivo de configuración de WinGet).

  2. Use winget configure en la línea de comandos. Para usar el comando winget configure, debe ejecutar la versión de WinGet v1.6.2631 o posterior.

Preguntas más frecuentes sobre la configuración de WinGet

Encuentre respuestas a algunas de las preguntas más frecuentes sobre Configuración de WinGet.

¿Cómo funcionan los archivos de configuración de WinGet?

Los archivos de configuración de WinGet se escriben en YAML y definen lo que está instalado en el dispositivo para configurar el entorno de desarrollo, así como el estado de configuración de la máquina y las aplicaciones instaladas.

En lugar de una secuencia imperativa de pasos que se deben seguir, un archivo de configuración de WinGet es declarativo y define el resultado del estado de configuración deseado de la máquina. Mediante el Administrador de paquetes de Windows y recursos de DSC de PowerShell, el archivo de configuración declarativo de WinGet puede instalar, configurar y aplicar opciones al entorno, lo que da como resultado un estado listo para codificar.

WinGet analizará el archivo de configuración para asegurarse de que es válido y, después, descargará todos los módulos de PowerShell asociados (que contienen los recursos de DSC) necesarios para lograr el estado deseado. Una vez que se hayan descargado estos recursos y haya comprobado la confiabilidad del archivo de configuración de WinGet, aceptando que ha comprobado la seguridad del archivo, WinGet comenzará a probar todas las aserciones necesarias y aplicar el estado deseado.

La secuencia en la que se ordenan los recursos del archivo de configuración de WinGet es inconsecuente. Algunos procesos de instalación y configuración pueden incluso ejecutarse en paralelo. Las aserciones se corresponden directamente con el campo dependsOn definido en cada recurso. Si el recurso incluye una dependencia de una aserción, primero se comprobará la aserción. Si se produce un error en la aserción, también se producirá un error en el recurso dependiente. Pero el archivo de configuración seguirá en ejecución, y realizará tantas tareas como sea posible, incluso si se producen errores en algunas de las aserciones o dependencias de recursos, lo que lleva a la máquina lo más lejos posible en el proceso de configuración antes de la finalización. Una vez que se complete la configuración, tiene la responsabilidad de comprobar si hay errores.

Por ejemplo, después de ejecutar el archivo de configuración de WinGet, puede ver un resultado similar al siguiente:

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.

En este ejemplo, se ha producido un error en la comprobación de aserciones de la versión necesaria del sistema operativo, por lo que también se ha producido un error en los recursos DeveloperMode y WinGetPackage que incluían una dependencia de esa aserción para la versión del sistema operativo. Pero cualquier otra tarea de instalación y configuración que aparezca en el archivo de configuración seguirá avanzando.

Una ventaja de la naturaleza declarativa (no secuencial) de los archivos de configuración de WinGet es que la posición de los nuevos recursos que se agregan al archivo es irrelevante. Esto es especialmente útil para archivos de configuración largos, ya que le permite agregar recursos adicionales a la parte inferior del archivo. Mientras haya definido correctamente las aserciones y dependencias, no es necesario preocuparse por la secuencia, ni de qué pasos configurados se producen primero, en segundo lugar, etc.

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

¿Cómo se usa un archivo de configuración de WinGet?

Para ejecutar un archivo de configuración de WinGet, use el comando winget configure.

¿Cómo se crea una configuración de WinGet?

Para crear un archivo de configuración de WinGet, siga las instrucciones del documento Procedimiento para crear un archivo de configuración de WinGet.

¿Cómo puedo asegurarme de que un archivo de configuración de WinGet es de confianza?

Se recomienda validar SIEMPRE la integridad de un archivo de configuración de WinGet antes de ejecutarlo; para ello, revise su contenido y pruebe la configuración en un entorno aislado. Vea Procedimiento para comprobar la confiabilidad de un archivo de configuración de WinGet.

¿Dónde puedo encontrar archivos de configuración de WinGet de ejemplo?

Puede encontrar archivos de configuración de WinGet de ejemplo en el repositorio de inicio para desarrolladores de Windows: https://aka.ms/dsc.yaml.

¿Dónde puedo encontrar ejemplos de módulos de PowerShell que contengan recursos de DSC?

En la Galería de PowerShell se hospedan cientos de módulos de PowerShell que contienen recursos de Desired State Configuration (DSC). Puede filtrar los resultados de la búsqueda si aplica el filtro "Recurso DSC" en "Categorías".

Desired State Configuration PowerShell module search results from the PowerShell Gallery

¿Puedo configurar una directiva para bloquear el uso de archivos de configuración de WinGet en la organización?

Sí. Objetos de directiva de grupoEnableWindowsPackageManagerConfiguration y EnableWindowsPackageManagerConfigurationExplanation se puede usar para deshabilitar la característica configuración de WinGet en su organización.

¿Dónde puedo obtener más información sobre el uso de configuraciones de WinGet con el Inicio para desarrolladores y unidades de desarrollo?

Obtenga más información sobre el uso de la herramienta Inicio para desarrolladores de Windows 11 en el artículo Configurar el entorno de desarrollo de Windows con Dev Home. También puede estar interesado en aprender a usar los volúmenes de almacenamiento de unidades de desarrollo optimizadas para rendimiento, consulteConfigurar una unidad de desarrollo en Windows 11.

Solución de problemas de configuraciones de WinGet

La razón más común para que se produzca un error en la configuración de WinGet es debido a un recurso de DSC de PowerShell que necesita acceso administrativo para aplicar el estado deseado. No todos los recursos de DSC muestran motivos explícitos de error.

Pronto se agregará la solución a los problemas más comunes. Mientras tanto, compruebe las incidencias relacionadas almacenadas en el repositorio CLI de WinGet de GitHub.