FAQ
Preguntas que hacen primero los equipos de desarrollo y release.
Licencias, dependencias del agente de compilación, firma y en qué se diferencia de la ruta capture-first pensada para aplicaciones heredadas.
¿Es lo mismo que su captura de aplicaciones heredadas?
No, y la distinción importa. El empaquetado capture-first existe para aplicaciones cuyo instalador se ha perdido, de modo que la aplicación en ejecución se convierte en la fuente de verdad. Esta ruta asume lo contrario: usted tiene una carpeta de compilación sana y quiere empaquetarla, firmarla y validarla como un paso de la pipeline. Ambas comparten al final la misma vía de firma, validación y entrega por Intune, y por eso los entornos con software comprado y propio pueden usar una sola ruta para ambos.
¿Necesitamos licencia para usarlo en nuestra pipeline?
No para los comandos compatibles con makeappx. Empaquetar, desempaquetar, agrupar, desagrupar, validar e indexar recursos no requieren licencia, así que forge_msix funciona como verdadero reemplazo directo de makeappx.exe sin nada que comprar. Los flujos de valor añadido, es decir crear desde un manifiesto, firmar, probar, evaluar, gestionar certificados y los comandos de registro para desarrollo, requieren una licencia activa de EtherApps Forge.
¿El agente de compilación necesita el SDK de Windows instalado?
No. La CLI llama directamente a la API de empaquetado de Windows, y ese motor es un componente del sistema operativo en lugar de una dependencia del SDK, así que los paquetes obtienen la misma validación de esquema, block map y estructura que produce makeappx. El agente necesita Windows 10 versión 1709 o posterior, o Windows 11, en x64. El despliegue es una carpeta que se copia y se añade al PATH, sin instalador.
¿Cómo deberíamos gestionar la firma de código en CI?
Firme desde un almacén de certificados por huella digital o por sujeto en lugar de desde un PFX en disco, para que ninguna contraseña se escriba en una definición de compilación. Añada un servidor de marca de tiempo RFC 3161 para que las firmas sigan siendo válidas tras caducar el certificado. Ponga el publicador de su manifiesto exactamente igual al sujeto del certificado y deje el modo de publicador en estricto, para que una discrepancia detenga la compilación en lugar de cambiar en silencio la identidad que sus clientes ya tienen instalada.
¿Cómo hacemos fallar la compilación cuando el paquete está mal?
Ejecute el comando de validación con salida JSON y bifurque según el código de salida. Distingue un paquete analizado pero inválido de un fallo operativo, que es la diferencia entre un paquete roto y un agente roto. Mantenga fuera de las pipelines de release los parámetros que permiten continuar pese a errores de validación o semánticos; son herramientas de diagnóstico para averiguar por qué un paquete no se construye, no ajustes para dejar activados.
¿Podemos empaquetar nuestra propia build si necesita correcciones de contenedor?
Sí. Las aplicaciones escritas antes de MSIX a menudo asumen comportamientos que el contenedor no permite, como escribir junto a su propio ejecutable o esperar una ruta de instalación fija. Forge prepara el Package Support Framework para que esos casos se corrijan con redirección de archivos y de registro y ajustes del directorio de trabajo, sin cambiar su código fuente. Para software propio quizá prefiera corregir el comportamiento en origen, pero el framework evita que un release quede bloqueado mientras lo hace.
¿Y las actualizaciones para clientes que instalan por sideload en vez de una tienda?
Genere un manifiesto de app installer desde el paquete firmado, que deriva la identidad del propio paquete y es compatible con bundles. Publique el paquete y ese manifiesto en una ubicación HTTPS, y las copias instaladas podrán actualizarse solas desde allí. Eso da a los clientes sideload y corporativos una vía de actualización sin listado en tienda ni reinstalación manual.
¿Podemos corregir un paquete ya distribuido sin reconstruirlo?
Sí. Un paquete puede extraerse a un directorio de trabajo, editarse quirúrgicamente, validarse y volver a empaquetarse: valores del manifiesto, capacidades, archivos de payload y el registro virtual del paquete pueden cambiarse, y cada edición del manifiesto se valida antes de escribirse, de modo que un cambio malformado se rechaza en lugar de guardarse. Reempaquetar cambia el hash de contenido, así que el paquete debe firmarse de nuevo después.