2.2 Desempaquetando Soluciones para Control de Versiones

Entiende cómo transformar archivos ZIP binarios en código de texto fusionable en Git.

Hemos llegado al núcleo del control de versiones en Power Platform. En este punto, dejaremos de tratar las soluciones como "cajas negras" ZIP y empezaremos a ver qué hay dentro de ellas.

Objetivos de aprendizaje

  • Comprender el propósito de desempaquetar una solución.
  • Usar pac solution unpack para extraer XML legibles.
  • Preparar tu código para Azure DevOps o GitHub.

 

El problema del archivo ZIP

Imagina que Carlos y María están trabajando en la misma solución. Carlos exporta la solución como un archivo ZIP. María exporta la suya. Ambos suben su archivo ZIP a GitHub. ¿Qué ocurre? Git ve dos archivos binarios completamente diferentes. No puede decirte qué líneas de código han cambiado, ni puede fusionar (merge) el trabajo de ambos.

Este es el mayor obstáculo para el ALM en Power Platform. No puedes hacer "control de versiones" real de un archivo ZIP.

Desempaquetando el misterio

La solución a este problema está integrada en PAC CLI mediante el Solution Packager. La idea es brillante: coger el archivo ZIP y descomponerlo en decenas de pequeños archivos XML individuales, uno para cada componente (una vista, un formulario, un campo de tabla).

Se hace así:

pac solution unpack --zipfile MiSolucion.zip --folder src\MiSolucion --packagetype Unmanaged

El resultado es una carpeta estructurada. Ahora, si abres el archivo XML de un formulario, verás su diseño en texto plano. Si subes esta carpeta a GitHub, Git podrá leer cada línea de XML. Cuando Carlos cambie un campo y María cambie otro, Git podrá fusionar ambos cambios automáticamente.

El camino inverso

Obviamente, Dataverse no sabe importar una carpeta llena de archivos XML. Por lo tanto, cuando tus pipelines en la nube descargan el código fusionado de GitHub, usan el comando inverso para reconstruir el ZIP antes de importarlo al entorno de pruebas:

pac solution pack --zipfile MiSolucion_compilada.zip --folder src\MiSolucion --packagetype Unmanaged
Experiencia real: Configurar esto a mano en tu máquina local es excelente para entender cómo funciona, pero en un entorno corporativo real, nunca ejecutarás "unpack" y "pack" manualmente. Dejarás que las GitHub Actions (que llaman a estos mismos comandos de PAC CLI) lo hagan por ti en la nube cada vez que envíes código.

 

Puntos clave

  • Los sistemas de control de versiones no entienden los archivos ZIP binarios.
  • pac solution unpack traduce tu personalización a archivos XML legibles y fusionables.
  • Esta herramienta es la piedra angular que hace posible el ALM profesional y el trabajo simultáneo de múltiples desarrolladores.
Inicia sesión e inscríbete para guardar tu progreso.