Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta guía se explica cómo empaquetar un archivo ejecutable de línea de comandos existente como un paquete MSIX para su distribución a través de Windows Administrador de paquetes (winget), Microsoft Store o distribución directa.
Prerrequisitos
- Un ejecutable de la CLI existente (
.exe) que desea empaquetar - Windows 10 versión 1809 o posterior
Pasos
1. Organizar la aplicación de la CLI
Coloque el ejecutable de la CLI y las dependencias en una carpeta dedicada. Esta carpeta contendrá todos los archivos que se deben incluir en el paquete MSIX.
mkdir MyCliPackage
cd MyCliPackage
# Copy your CLI executable and dependencies here
2. Instalación de la CLI de winapp
Instale la CLI de winapp a través de Windows Administrador de paquetes o actualice a la versión más reciente si ya la tiene:
# Install (or update if already installed)
winget install microsoft.winappcli --source winget
3. Generar el Package.appxmanifest
Genere un Package.appxmanifest base y los recursos necesarios para el ejecutable de CLI.
winapp manifest generate --executable .\yourcli.exe
Este comando crea un Package.appxmanifest archivo en el directorio actual con valores predeterminados rellenados desde el archivo ejecutable.
4. Configurar el manifiesto
Edite el Package.appxmanifest generado para personalizar el paquete. Cada subproceso siguiente explica qué cambiar y por qué.
4.1 Agregar espacio de nombres necesario
Agregue el espacio de nombres uap5 al elemento Package si aún no está presente. Esto es necesario para el alias de ejecución en el paso 4.3:
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
...
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap uap5 rescap">
4.2 Configurar el elemento Application
En el <uap:VisualElements> elemento , agregue AppListEntry="none" para ocultar la aplicación en el menú Inicio. Las herramientas de la CLI se invocan desde el terminal, por lo que no necesitan una entrada de menú Inicio:
<uap:VisualElements
DisplayName="YourApp"
Description="My Application"
BackgroundColor="transparent"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png"
AppListEntry="none">
</uap:VisualElements>
4.3 Agregar extensión de alias de ejecución
Agregue un alias de ejecución para que los usuarios puedan ejecutar la CLI por su nombre desde cualquier ventana de terminal. Agregue esto dentro del elemento <Application> (después de <uap:VisualElements>):
<Extensions>
<uap5:Extension Category="windows.appExecutionAlias">
<uap5:AppExecutionAlias>
<uap5:ExecutionAlias Alias="yourcli.exe" />
</uap5:AppExecutionAlias>
</uap5:Extension>
</Extensions>
Reemplace por yourcli.exe el nombre del comando deseado para la CLI. Una vez que un usuario instala MSIX, podrá invocar la CLI con este comando.
4.4 Actualizar metadatos de aplicación
Actualice los siguientes campos para que coincidan con la aplicación de la CLI.
Importante
El valor Publisher del manifiesto debe coincidir con el editor del certificado de firma. Si genera un certificado más adelante (paso 5), usará el editor del manifiesto. Si cambia el publicador después de generar un certificado, deberá volver a generar el certificado para que coincida.
Identity: Actualizar
Name,PublisheryVersion<Identity Name="YourCompany.YourCLI" Publisher="CN=Your Company" Version="1.0.0.0" />Propiedades: actualizar el nombre para mostrar, el nombre para mostrar del publicador y la descripción
<Properties> <DisplayName>Your CLI Tool</DisplayName> <PublisherDisplayName>Your Company</PublisherDisplayName> <Description>Description of your CLI tool</Description> <Logo>Assets\StoreLogo.png</Logo> </Properties>VisualElements: actualización del nombre para mostrar y las referencias de recursos
<uap:VisualElements DisplayName="Your CLI Tool" Description="Description of your CLI tool" BackgroundColor="transparent" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png"> <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" /> <uap:SplashScreen Image="Assets\SplashScreen.png" /> </uap:VisualElements>
Nota: También debe agregar los recursos de icono adecuados a una Assets carpeta del directorio del paquete. Aunque la aplicación no aparecerá en el menú Inicio, los iconos siguen siendo necesarios para el envío en la Tienda de Windows y pueden aparecer en otros contextos.
5. (Opcional) Generar un certificado de desarrollo
Para las pruebas y la distribución locales fuera del Microsoft Store, deberá firmar el paquete MSIX con un certificado.
Genere un certificado de desarrollo. Manténgalo fuera de la carpeta de la CLI para evitar incluirlo accidentalmente en el paquete:
# Navigate to a location outside your CLI folder (e.g., your home directory)
cd ~
winapp cert generate
Esto crea un devcert.pfx archivo en el directorio principal (por ejemplo, C:\Users\yourname\devcert.pfx).
Para confiar en este certificado en la máquina de desarrollo, instálelo (requiere privilegios de administrador):
# Run PowerShell as Administrator
winapp cert install ~\devcert.pfx
6. Empaquetar la CLI
Ahora está listo para crear el paquete MSIX:
# Navigate back outside of your project folder
# Package with dev certificate (for local testing/distribution)
winapp pack .\path\to\MyCliPackage --cert .\path\to\devcert.pfx
Esto crea un .msix archivo en el directorio actual.
7. Instalar y comprobar
Instale el paquete MSIX para comprobar que todo funciona:
Add-AppxPackage .\MyCliPackage.msix
Si agregó un alias de ejecución en el paso 4.3, ahora puede ejecutar la CLI desde cualquier terminal:
yourcli --help
Para desinstalarlo más adelante:
Get-AppxPackage *YourCLI* | Remove-AppxPackage
Tips
- Una vez que esté listo para su distribución, puede firmar su MSIX con un certificado de firma de código de una entidad de certificación para que los usuarios no tengan que instalar un certificado autofirmado.
- El Microsoft Store firmará el MSIX por usted, no es necesario firmar antes del envío.
- Es posible que tenga que crear varios paquetes MSIX, uno para cada arquitectura que admita (x64, Arm64)
Pasos siguientes
- Distribute a través de winget: Envíe su MSIX al repositorio Windows Administrador de paquetes Community
-
Publicar en Microsoft Store: Utilice
winapp storepara enviar su paquete - Configurar CI/CD: Usa la acción de GitHub para automatizar el empaquetado en la tubería
Windows developer