Como gerar um arquivo de modelo para conversões de linha de comando
Com a MSIX Packaging Tool, você pode realizar a conversão de duas maneiras: através da interface interativa ou através da nossa opção de linha de comando. Ao usar a linha de comando, você precisa fornecer um arquivo de modelo para que a conversão funcione com suas configurações e necessidades específicas. Este artigo ajudará a guiá-lo pelo processo de geração de um arquivo de modelo que funciona para você.
Há duas maneiras de obter um arquivo de modelo que funcione para você:
- Você pode usar a interface do usuário da MSIX Packaging Tool. Nas configurações da ferramenta, você pode especificar que deseja gerar um arquivo de modelo de conversão com cada pacote MSIX criado.
- Você pode pegar um modelo de exemplo e inserir manualmente as configurações necessárias para cada conversão.
Gerar um arquivo de modelo de conversão a partir da MSIX Packaging Tool
- Inicie a ferramenta de empacotamento MSIX.
- Vá para as configurações no canto superior direito do aplicativo.
- Certifique-se de que a opção 'Gerar um arquivo de linha de comando com cada pacote' esteja selecionada.
- Faça quaisquer outras alterações ou modificações em suas configurações que você precisa (por exemplo, itens de exclusão, códigos de saída).
- Salve as configurações
- Percorra o fluxo de trabalho do Pacote de Aplicativos usando um instalador.
- Se você não selecionar um instalador, não poderá gerar um arquivo de modelo de conversão.
- Se você estiver usando um exe, você precisará passar um sinalizador silencioso para o instalador para gerar o arquivo de modelo de conversão.
- No final da conversão, você terá um arquivo de modelo configurado com base no instalador que você escolheu e suas configurações atuais que agora você pode reutilizar para conversões futuras.
- Por padrão, o arquivo de modelo de conversão será salvo no mesmo local que o pacote MSIX, mas você pode especificar um local de salvamento separado para o arquivo de modelo na página Criar pacote.
- Você ainda precisará fazer algumas modificações com base no MSIX que deseja produzir no final de cada conversão.
Editar manualmente o arquivo de modelo de conversão
Você pode editar manualmente os parâmetros de modelo para o arquivo de modelo de conversão para gerar um arquivo de modelo que funcione para você. Ao gerar o arquivo de modelo de conversão, preste atenção a quais recursos você adiciona ao arquivo de modelo, pois alguns podem exigir referências de esquema adicionais para funcionar.
Referência de parâmetros do modelo de conversão
Esta é a lista completa de parâmetros que você pode usar no arquivo de modelo de conversão.
ConversionSettings | Descrição |
---|---|
Configurações:: AllowTelemetry | [opcional] Habilita o log de telemetria para essa invocação da ferramenta. |
Configurações:: ApplyAllPrepareComputerFixes | [opcional] Aplica todas as correções de preparação do computador recomendadas. Não pode ser definida quando outros atributos são usados. |
Configurações:: GenerateCommandLineFile | [opcional] Copia a entrada do arquivo de modelo para o diretório SaveLocation para uso futuro. |
Configurações:: AllowPromptForPassword | [opcional] Instrui a ferramenta a solicitar que o usuário insira senhas para a Máquina Virtual e o certificado de autenticação, caso ele seja necessário e não especificado. |
Configurações:: EnforceMicrosoftStoreVersioningRequirements | [opcional] Instrui a ferramenta a impor o esquema de controle de versão do pacote necessário para a implantação por meio da Microsoft Store e da Microsoft Store para Empresas. |
Configurações:: ServerPortNumber | [opcional] Usado ao se conectar a uma máquina remota. Requer v2 do esquema de modelo. |
Configurações:: AddPackageIntegrity | [opcional] Adiciona integridade de pacote a cada MSIX gerado. Requer v5 do esquema de modelo. |
ValidInstallerExitCodes | [opcional] 0 ou mais elementos ValidInstallerExitCode. Requer v2 do esquema de modelo. |
ValidInstallerExitCodes:: ValidInstallerExitCode | [opcional] Especifique os códigos de saída do instalador com os quais a ferramenta pode não estar familiarizada ou exigir uma reinicialização. Requer v2 do esquema de modelo. |
ValidInstallerExitCodes:: ValidInstallerExitCode:: Reinicialização | [opcional] Especifique se um código de saída deve disparar uma reinicialização durante a conversão. Requer v3 do esquema de modelo. |
ExclusionItems | [opcional] 0 ou mais elementos FileExclusion ou RegistryExclusion. Todos os elementos FileExclusion precisam aparecer antes dos elementos RegistryExclusion. |
ExclusionItems::FileExclusion | [opcional] Um arquivo a ser excluído para o empacotamento. |
ExclusionItems::FileExclusion::ExcludePath | Caminho do arquivo a ser excluído para o empacotamento. |
ExclusionItems::RegistryExclusion | [opcional] Uma chave do Registro a ser excluído para o empacotamento. |
ExclusionItems::RegistryExclusion:: ExcludePath | Caminho do Registro a ser excluído para o empacotamento. |
PrepareComputer::DisableDefragService | [opcional] Desabilita o Desfragmentador do Windows enquanto o aplicativo está sendo convertido. Se for definido como false, substituirá ApplyAllPrepareComputerFixes. |
PrepareComputer:: DisableWindowsSearchService | [opcional] Desabilita o Windows Search enquanto o aplicativo está sendo convertido. Se for definido como false, substituirá ApplyAllPrepareComputerFixes. |
PrepareComputer:: DisableSmsHostService | [opcional] Desabilita o Host do SMS enquanto o aplicativo está sendo convertido. Se for definido como false, substituirá ApplyAllPrepareComputerFixes. |
PrepareComputer:: DisableWindowsUpdateService | [opcional] Desabilita o Windows Update enquanto o aplicativo está sendo convertido. Se for definido como false, substituirá ApplyAllPrepareComputerFixes. |
SaveLocation | [opcional] Um elemento para especificar a localização de salvamento da ferramenta. Se não for especificado, o pacote será salvo na pasta Área de Trabalho. |
SaveLocation::PackagePath | [opcional] O caminho para o arquivo ou a pasta em que o pacote MSIX resultante é salvo. |
SaveLocation::TemplatePath | [opcional] O caminho para o arquivo ou pasta onde o modelo de linha de comando resultante é salvo. |
Installer::Path | O caminho para o Instalador de Aplicativo. |
Installer::Arguments | [opcional] Os argumentos a serem passados para o instalador. A ferramenta executará de forma automática os instaladores MSI silenciosamente usando o argumento "/qn /norestart INSTALLSTARTMENUSHORTCUTS=1 DISABLEADVTSHORTCUTS=1". Observação : você deve passar os argumentos para forçar o instalador a executar silenciosamente se você estiver usando instaladores .exe. |
Installer::InstallLocation | [opcional] O caminho completo para a pasta raiz do aplicativo para os arquivos instalados, se ele foi instalado (por exemplo, "C:\Program Files (x86)\MyAppInstalllocation"). |
Instalador::IsUnattendedInstallWithoutArgument | [opcional] Esse atributo deve ser usado se o aplicativo permitir a instalação 'autônoma' sem argumentos silenciosos. Esse atributo é usado apenas para instaladores .exe. |
VirtualMachine | [opcional] Um elemento para especificar que a conversão será executada em uma Máquina Virtual local. |
VirtualMachine::Nome | O nome da máquina virtual a ser usada para o ambiente de conversão. |
VirtualMachine::Username | O nome de usuário da máquina virtual a ser usada para o ambiente de conversão. |
RemoteMachine | [opcional] Um elemento para especificar que a conversão será executada em uma máquina remota. Requer v2 do esquema de modelo. |
RemoteMachine:: NomeDoComputador | O nome da máquina remota a ser usada para o ambiente de conversão. Requer v2 do esquema de modelo. |
RemoteMachine:: Nome de usuário | O nome de usuário da máquina remota a ser usada para o ambiente de conversão. Requer v2 do esquema de modelo. |
RemoteMachine:: EnableAutoLogon | [opcional] Isso fará login automático novamente ao executar uma conversão que exija uma reinicialização em uma máquina remota para que a conversão continue perfeitamente. Requer V3 do esquema de modelo. |
PackageInformation::PackageName | O nome do pacote MSIX. |
PackageInformation::PackageDisplayName | O nome de exibição do pacote MSIX. |
PackageInformation::PublisherName | O fornecedor do pacote MSIX. |
PackageInformation::PublisherDisplayName | O nome de exibição do fornecedor do pacote MSIX. |
PackageInformation::Version | O número de versão do pacote MSIX. |
PackageInformation::P ackageDescription | [opcional] A descrição do pacote MSIX. Requer v4 do esquema do modelo. |
PackageInformation:: MainPackageNameForModificationPackage | [opcional] O nome da identidade do pacote do nome do pacote principal. Isso é usado durante a criação de um pacote de modificação que tem uma dependência de um aplicativo principal (pai). |
AssinaturaInformações | [opcional] Um elemento para especificar informações de assinatura para assinatura do Device Guard. Requer v4 do esquema do modelo. |
SigningInformation:: DeviceGuardSigning | [opcional] Um elemento para especificar informações de assinatura do Device Guard. Requer v4 do esquema do modelo. |
DeviceGuardSigning:: TokenFile | O token de acesso do Azure AD necessário para a assinatura do Device Guard no formato JSON. Requer esquema de modelo v4. |
DeviceGuardSigning:: TimestampUrl | [opcional] Fornece um carimbo de data/hora no momento da assinatura com o Device Guard para garantir que seu aplicativo será instalado além do tempo de vida do certificado. Requer v4 do esquema do modelo. |
Aplicativos | [opcional] 0 ou mais elementos Application para configurar as entradas de Application no pacote MSIX. |
Application::Id | A ID do Aplicativo MSIX. Essa ID será usada para a entrada Application detectada que corresponde ao ExecutableName especificado. Você pode ter vários valores da ID do Aplicativo para executáveis no pacote. Esse valor é o identificador exclusivo do aplicativo no pacote. Às vezes, esse valor é denominado PRAID (identificador do aplicativo relativo do pacote). A ID precisa ser exclusiva no pacote (a mesma ID não pode ser usada mais de uma vez no mesmo pacote). No entanto, a ID não precisa ser globalmente exclusiva. Pode haver outro pacote no sistema que usa a mesma ID. Essa cadeia de caracteres contém campos alfanuméricos separados por pontos. Cada campo precisa começar com um caractere alfabético ASCII. Você não pode usá-los 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" e "LPT9". |
Application::DisplayName | O nome de exibição do aplicativo para o pacote MSIX. Esse nome de exibição será usado para a entrada do aplicativo detectada que corresponde ao ExecutableName especificado |
Application::ExecutableName | O nome do executável do aplicativo MSIX que será adicionado ao manifesto do pacote. A entrada de aplicativo correspondente será ignorada se nenhum aplicativo com esse nome for detectado. |
Application::Description | [opcional] A descrição do aplicativo MSIX. Se não for usado, o Application DisplayName será usado. Essa descrição será usada para a entrada do aplicativo detectada que corresponde ao ExecutableName especificado |
Funcionalidades | [opcional] 0 ou mais elementos Capability para adicionar funcionalidades personalizadas ao pacote MSIX. A funcionalidade “runFullTrust” é adicionada por padrão durante a conversão. |
Capability::Name | A capacidade a ser adicionada ao pacote MSIX. |
Arquivo de modelo de conversão de exemplo
<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>