Compartir a través de


Cómo generar un archivo de plantilla para conversiones de línea de comandos

Con MSIX Packaging Tool, puede realizar la conversión de dos maneras: a través de la interfaz de usuario interactiva o a través de nuestra opción de línea de comandos. Al usar la línea de comandos, debe proporcionar un archivo de plantilla para que la conversión funcione con su configuración y necesidades específicas. Este artículo le ayudará a guiarle por el proceso de generación de un archivo de plantilla que le convenga.

Hay dos maneras de obtener un archivo de plantilla que funcione para usted:

  • Puede usar la interfaz de usuario de la MSIX Packaging Tool. En la configuración de la herramienta, puede especificar que desea generar un archivo de plantilla de conversión con cada paquete MSIX que cree.
  • Puede tomar una plantilla de ejemplo y escribir manualmente las configuraciones que necesita para cada conversión.

Generación de un archivo de plantilla de conversión a partir de la herramienta de empaquetado MSIX

  1. Inicie la herramienta de empaquetado MSIX.
  2. Vaya a la configuración en la esquina superior derecha de la aplicación.
  3. Asegúrese de que está seleccionada la opción "Generar un archivo de línea de comandos con cada paquete".
  4. Realice cualquier otro cambio o modificación en la configuración que necesite (por ejemplo, elementos de exclusión, códigos de salida).
  5. Guarde la configuración
  6. Recorra el flujo de trabajo del paquete de aplicación mediante un instalador.
    • Si no selecciona un instalador, no podrá generar un archivo de plantilla de conversión.
    • Si usa un exe, deberá pasar una marca silenciosa al instalador para generar el archivo de plantilla de conversión.
  7. Al final de la conversión, tendrá un archivo de plantilla configurado en función del instalador que eligió y la configuración actual que ahora puede volver a usar para futuras conversiones.
    • De forma predeterminada, el archivo de plantilla de conversión se guardará en la misma ubicación que el paquete MSIX, pero puede especificar una ubicación de guardado independiente para el archivo de plantilla en la página Crear paquete.
    • Todavía tendrá que realizar algunas modificaciones en función de qué MSIX desea generar al final de cada conversión.

Editar manualmente el archivo de plantilla de conversión

Puede editar manualmente los parámetros del archivo de plantilla de conversión para generar un archivo de plantilla que funcione para usted. Al generar el archivo de plantilla de conversión, preste atención a las características que agregue al archivo de plantilla, ya que algunas pueden requerir referencias de esquema adicionales para poder funcionar.

Referencia de parámetros de plantilla de conversión

Esta es la lista completa de parámetros que puede usar en el archivo de plantilla de conversión.

ConversionSettings Descripción
Configuración:: PermitirTelemetría [opcional] Habilita el registro de telemetría para esta invocación de la herramienta.
Settings:: ApplyAllPrepareComputerFixes [opcional] Aplica todas las correcciones recomendadas de preparación del ordenador. No se puede establecer cuando se usan otros atributos.
Configuración:: GenerarArchivoDeLíneaDeComandos [opcional] Copia la entrada del archivo de plantilla en el directorio SaveLocation para su uso futuro.
Settings:: PermitirSolicitarContraseña [opcional] Indica a la herramienta que pida al usuario que escriba contraseñas para la máquina virtual y para el certificado de firma si es necesario y no se especifica.
Configuración:: EnforceMicrosoftStoreVersioningRequirements [opcional] Indica a la herramienta que aplique el esquema de control de versiones de paquetes necesario para la implementación desde Microsoft Store y Microsoft Store para empresas.
Configuración:: ServerPortNumber [opcional] Se usa al conectarse a una máquina remota. Requiere la versión 2 del esquema de plantilla.
Configuración: AñadirIntegridadDelPaquete [opcional] Agrega integridad de paquete a todos los MSIX generados. Requiere la versión 5 del esquema de plantilla.
ValidInstallerExitCodes [opcional] 0 o más elementos ValidInstallerExitCode. Requiere la versión 2 del esquema de plantilla.
ValidInstallerExitCodes:: ValidInstallerExitCode [opcional] Especifique los códigos de salida del instalador con los que es posible que la herramienta no esté familiarizado o requiera un reinicio. Requiere la versión 2 del esquema de plantilla.
ValidInstallerExitCodes:: ValidInstallerExitCode:: Reiniciar [opcional] Especifique si un código de salida debe desencadenar un reinicio durante la conversión. Requiere la versión 3 del esquema de plantilla.
Elementos de Exclusión [opcional] 0 o más elementos FileExclusion o RegistryExclusion. Todos los elementos FileExclusion deben aparecer antes de los elementos RegistryExclusion.
ExclusionItems::FileExclusion [opcional] Un archivo que se va a excluir para el empaquetado.
ExclusionItems::FileExclusion::ExcludePath Ruta de acceso al archivo que se va a excluir para el empaquetado.
ElementosDeExclusión::ExclusiónDelRegistro [opcional] Una clave de registro a excluir para el empaquetado.
ExclusionItems::RegistryExclusion:: ExcludePath Ruta del registro que se debe excluir para el paquete.
PrepareComputer::DisableDefragService [opcional] Deshabilita desfragmentador de Windows mientras se convierte la aplicación. Si se establece en false, invalida ApplyAllPrepareComputerFixes.
PrepareComputer:: DeshabilitarServicioDeBúsquedaDeWindows [opcional] Deshabilita Windows Search mientras se convierte la aplicación. Si se establece en false, invalida ApplyAllPrepareComputerFixes.
PrepareComputer:: DesactivarServicioHostSms [opcional] Deshabilita el host de SMS mientras se convierte la aplicación. Si se establece en false, invalida ApplyAllPrepareComputerFixes.
PrepararEquipo:: DesactivarServicioDeActualizaciónDeWindows [opcional] Deshabilita Windows Update mientras se convierte la aplicación. Si se establece en false, invalida ApplyAllPrepareComputerFixes.
SaveLocation [opcional] Elemento para especificar la ubicación de guardado de la herramienta. Si no se especifica, el paquete se guardará en la carpeta Escritorio.
SaveLocation::PackagePath [opcional] Ruta de acceso al archivo o carpeta donde se guarda el paquete MSIX resultante.
SaveLocation::TemplatePath [opcional] Ruta de acceso al archivo o carpeta donde se guarda la plantilla de línea de comandos resultante.
Installer::Path Ruta de acceso al instalador de la aplicación.
Instalador::Argumentos [opcional] Argumentos que se van a pasar al instalador. La herramienta ejecutará automáticamente los instaladores MSI de forma silenciosa mediante el argumento "/qn /norestart INSTALLSTARTMENUSHORTCUTS=1 DISABLEADVTSHORTCUTS=1". NOTA: Debe pasar los argumentos para forzar que el instalador se ejecute silenciosamente si usa instaladores de .exe.
Instalador::UbicaciónDeInstalación [opcional] La ruta de acceso completa a la carpeta raíz de la aplicación para los archivos instalados si se instaló (por ejemplo, "C:\Archivos de programa (x86)\MyAppInstalllocation").
Installer::IsUnattendedInstallWithoutArgument [opcional] Este atributo se debe usar si la aplicación permite la instalación desatendida sin argumentos silenciosos. Este atributo solo se usa para los instaladores de .exe.
Máquina virtual [opcional] Elemento para especificar que la conversión se ejecutará en una máquina virtual local.
VirtualMachine::Name Nombre de la máquina virtual que se va a usar para el entorno de conversión.
VirtualMachine::Username Nombre de usuario de la máquina virtual que se va a usar para el entorno de conversión.
RemoteMachine [opcional] Elemento para especificar que la conversión se ejecutará en un equipo remoto. Requiere la versión 2 del esquema de plantilla.
RemoteMachine:: NombreDeEquipo Nombre de la máquina remota que se va a usar para el entorno de conversión. Requiere la versión 2 del esquema de plantilla.
RemoteMachine:: Nombre de usuario Nombre de usuario de la máquina remota que se va a usar para el entorno de conversión. Requiere la versión 2 del esquema de plantilla.
RemoteMachine:: EnableAutoLogon [opcional] Esto lo volverá a iniciar sesión automáticamente al realizar una conversión que requiere reiniciar en una máquina remota para que la conversión continúe de manera continua. Requiere la versión V3 del esquema de plantilla.
PackageInformation::PackageName Nombre del Paquete de tu paquete MSIX.
PackageInformation::PackageDisplayName Nombre visible del paquete MSIX.
PackageInformation::PublisherName El publicador del paquete MSIX.
PackageInformation::PublisherDisplayName Nombre para mostrar del publicador para el paquete MSIX.
PackageInformation::Version Número de versión del paquete MSIX.
PackageInformation::PackageDescription [opcional] Descripción del paquete MSIX. Requiere la versión 4 del esquema de plantilla.
InformaciónDePaquete:: NombrePrincipalDePaqueteParaPaqueteDeModificación [opcional] Nombre de identidad del paquete principal. Esto se usa al crear un paquete de modificación que toma una dependencia en una aplicación principal (primaria).
Información de Firma [opcional] Elemento para especificar información de firma para la firma de Device Guard. Requiere la versión 4 del esquema de plantilla.
SigningInformation:: DeviceGuardSigning [opcional] Elemento para especificar la información de firma de Device Guard. Requiere la versión 4 del esquema de plantilla.
DeviceGuardSigning:: TokenFile El token de acceso de Azure AD necesario para el inicio de sesión de Device Guard en formato JSON. Requiere esquema de plantilla v4.
DeviceGuardSigning:: TimestampUrl [opcional] Proporciona una marca de tiempo en el momento de la firma con Device Guard para asegurarse de que la aplicación se instalará más allá de la duración del certificado. Requiere la versión 4 del esquema de plantilla.
APLICACIONES [opcional] 0 o más elementos aplicación para configurar las entradas de aplicación en el paquete MSIX.
Aplicación::Id Id. de aplicación de la aplicación MSIX. Este ID se usará para la entrada de la aplicación detectada que coincide con el ExecutableName especificado. Puede tener varios valores de ID de aplicación para los ejecutables del paquete.

Este valor es el identificador único de la aplicación dentro del paquete. Este valor se conoce a veces como identificador de aplicación relativa al paquete (PRAID). El identificador debe ser único dentro del paquete (el mismo identificador no se puede usar más de una vez en el mismo paquete). Sin embargo, el identificador no debe ser único globalmente. Puede haber otro paquete en el sistema que use el mismo identificador.

Esta cadena contiene campos alfanuméricos separados por puntos. Cada campo debe comenzar con un carácter alfabético ASCII. No se pueden usar como valores de campo: "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8" y "LPT9".
Application::NombreDeLaAplicación Nombre visible de la aplicación para tu paquete MSIX. Este nombre para mostrar se usará para la entrada de la aplicación detectada que coincida con el nombre ejecutable especificado.
Application::ExecutableName Nombre ejecutable de la aplicación MSIX que se agregará al manifiesto del paquete. Si no se detecta ninguna aplicación con este nombre, se omitirá la entrada de aplicación correspondiente.
Application::Descripción [opcional] Descripción de la aplicación para la aplicación MSIX. Si no se usa, se usará el displayName de la aplicación. Esta descripción se usará para la entrada de la aplicación detectada que coincida con el valor de ExecutableName especificado.
Capacidades [opcional] 0 o más elementos de Capability para añadir capacidades personalizadas a tu paquete MSIX. La funcionalidad "runFullTrust" se agrega de forma predeterminada durante la conversión.
Capability::Name La capacidad de añadir elementos a tu paquete MSIX.

Archivo de plantilla de conversión de ejemplo

<MsixPackagingToolTemplate
    xmlns="http://schemas.microsoft.com/appx/msixpackagingtool/template/2018"
    xmlns:V2="http://schemas.microsoft.com/msix/msixpackagingtool/template/1904"
    xmlns:V3="http://schemas.microsoft.com/msix/msixpackagingtool/template/1907"
    xmlns:V4="http://schemas.microsoft.com/msix/msixpackagingtool/template/1910"
    xmlns:V5="http://schemas.microsoft.com/msix/msixpackagingtool/template/2001">
<!--Note: You only need to include xmlns:v2 - xmlns:v5 if you are using one of the features that use those schemas -->

    <Settings
        AllowTelemetry="true"
        ApplyAllPrepareComputerFixes="true"
        GenerateCommandLineFile="true"
        AllowPromptForPassword="false" 
	    EnforceMicrosoftStoreVersioningRequirements="false"
        v2:ServerPortNumber="1599"
        v5:AddPackageIntegrity="true">    

	<!--Note: Exclusion items are optional and if declared take precedence over the default tool exclusion items
        <ExclusionItems>
            <FileExclusion ExcludePath="[{CryptoKeys}]" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Crypto" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Search\Data" />
            <FileExclusion ExcludePath="[{Cookies}]" />
            <FileExclusion ExcludePath="[{History}]" />
            <FileExclusion ExcludePath="[{Cache}]" />
            <FileExclusion ExcludePath="[{Personal}]" />
            <FileExclusion ExcludePath="[{Profile}]\Local Settings" />
            <FileExclusion ExcludePath="[{Profile}]\NTUSER.DAT.LOG1" />
            <FileExclusion ExcludePath="[{Profile}]\ NTUSER.DAT.LOG2" />
            <FileExclusion ExcludePath="[{Recent}]" />
            <FileExclusion ExcludePath="[{Windows}]\debug" />
            <FileExclusion ExcludePath="[{Windows}]\Logs\CBS" />
            <FileExclusion ExcludePath="[{Windows}]\Temp" />
            <FileExclusion ExcludePath="[{Windows}]\WinSxS\ManifestCache" />
            <FileExclusion ExcludePath="[{Windows}]\WindowsUpdate.log" />
	    <FileExclusion ExcludePath="[{Windows}]\Installer" />
            <FileExclusion ExcludePath="[{AppVPackageDrive}]\$Recycle.Bin " />
            <FileExclusion ExcludePath="[{AppVPackageDrive}]\System Volume Information" />
	    <FileExclusion ExcludePath="[{AppVPackageDrive}]\Config.Msi" />
            <FileExclusion ExcludePath="[{AppData}]\Microsoft\AppV" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Microsoft Security Client" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Microsoft Antimalware" />
            <FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Windows Defender" />
            <FileExclusion ExcludePath="[{ProgramFiles}]\Microsoft Security Client" />
            <FileExclusion ExcludePath="[{ProgramFiles}]\Windows Defender" />
	    <FileExclusion ExcludePath="[{ProgramFiles}]\WindowsApps" />
            <FileExclusion ExcludePath="[{Local AppData}]\Temp" />
	    <FileExclusion ExcludePath="[{Local AppData}]\Microsoft\Windows" />
	    <FileExclusion ExcludePath="[{Local AppData}]\Packages" />

            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Cryptography" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware Setup" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Security Client" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Antimalware" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Streams" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\AppV" />
            <RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Wow6432Node\Microsoft\AppV" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\AppV" />
            <RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\AppV" />
        </ExclusionItems>
	-->
    
    <!--Note: Specifying an installer exit code will allow you to automatically trigger a reboot during your conversion
      <v2:ValidInstallerExitCodes>
        <V2:ValidInstallerExitCode ExitCode="3010" V3:Reboot="true"/>
        <V2:ValidInstallerExitCode ExitCode="1641"/>
      </v2:ValidInstallerExitCodes>
    -->
	    
    </Settings>

    <!--Note: this section takes precedence over the Settings::ApplyAllPrepareComputerFixes attribute and is optional
    <PrepareComputer
        DisableDefragService="true"
        DisableWindowsSearchService="true"
        DisableSmsHostService="true"
        DisableWindowsUpdateService="true"/>
    -->

    <SaveLocation
        PackagePath="C:\users\user\Desktop\MyPackage.msix" 
        TemplatePath="C:\users\user\Desktop\MyTemplate.xml" />

    <Installer
        Path="C:\MyAppInstaller.msi"
        InstallLocation="C:\Program Files\MyAppInstallLocation" />
	
    <!--NOTE: This section specifies that the conversion will be run on a local Virtual Machine. This is optional if you want to change your conversion environment from the default local machine.
    <VirtualMachine Name="vmname" Username="vmusername"/>
    -->

    <!--NOTE: This section specifies that the conversion will be run on a remote machine.This is optional if you want to change your conversion environment from the default local machine.
    <v2:RemoteMachine ComputerName="vmname" Username="vmusername" v3:EnableAutoLogon="true"/>
    -->

    <PackageInformation
        PackageName="MyAppPackageName"
        PackageDisplayName="MyApp Display Name"
        PublisherName="CN=MyPublisher"
        PublisherDisplayName="MyPublisher Display Name"
        Version="1.1.0.0"
        MainPackageNameForModificationPackage="MainPackageIdentityName">

    <!--Note: This is optional, if you want to sign your package with Device Guard signing
        <v4:SigningInformation>
            <v4:DeviceGuardSigning
                Tokenfile="tokenfile.json"
                TimestampUrl="https://mytimestamp.com"/>
        </v4:SigningInformation>
    -->
        
	<!--NOTE: This ID will be used if the Application entry detected matches the specified ExecutableName
        <Applications>
            <Application
                Id="MyApp1"
                Description="MyApp"
                DisplayName="My App"
                ExecutableName="MyApp.exe"/>
        </Applications>
	-->

	<!--NOTE: This is optional as “runFullTrust” capability is added by default during conversion
        <Capabilities>
            <Capability Name="runFullTrust" />
        </Capabilities>
	-->
	    
    </PackageInformation>
</MsixPackagingToolTemplate>