Criar um atalho de aplicativo executando um script usando a Estrutura de Suporte de Pacote
Este documento mostrará como criar atalhos de aplicativo usando o PSF (Package Support Framework) que executa scripts por meio da Ferramenta de Empacotamento MSIX e do aplicativo WPF de Despesas da Contoso .
A ideia é copiar o atalho do aplicativo, que estará disponível dentro do pacote, para a Área de Trabalho do usuário por meio dos scripts PSF.
Há algumas coisas para ter em mente:
- Crie apenas um atalho se for absolutamente necessário. A meta é não bagunçar a área de trabalho do usuário.
- O aplicativo MSIX deve ser instalado antes de criar o atalho, para que possamos especificar o caminho do aplicativo MSIX durante a criação do atalho.
- Ao mesmo tempo, o caminho do aplicativo MSIX pode ser alterado, uma vez que ele tenha o número de versão especificado na pasta de instalação. Exemplo do caminho de instalação de Despesas da Contoso :
C:\Arquivos de Programas\WindowsApps\ContosoExpenses_1.0.0.0
_x86__3z09h3y28h0qg
Para evitar a necessidade de alterar o atalho do aplicativo sempre que o aplicativo for atualizado, crie o atalho apontando para o AppExecutionAlias. O AppExecutionAlias permite que ele inicie o aplicativo com o valor definido na sessão de alias do manifesto do aplicativo, portanto, não é necessário especificar o caminho completo do aplicativo. Portanto, antes de criar o atalho, defina o alias no manifesto do aplicativo. Caso contrário, o Windows Explorer não reconhecerá o alias e não nos permitirá criar o atalho.
Criar o alias do aplicativo
Clique no item de menu Informações do pacote e clique em Abrir Arquivo, disponível na parte inferior da interface do usuário, para editar o manifesto do aplicativo:
Inclua os seguintes namespaces, que serão usados para criar o alias, da seguinte maneira:
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
Inclua o valor uap3 e a área de trabalho no elemento IgnorableNamespaces :
IgnorableNamespaces="uap uap3 desktop rescap build"
Inclua o alias de execução do aplicativo após o <elemento /uap:VisualElements> :
<Extensions>
<uap3:Extension Category="windows.appExecutionAlias"
Executable="ContosoExpenses\ContosoExpenses.exe"
EntryPoint="Windows.FullTrustApplication">
<uap3:AppExecutionAlias>
<desktop:ExecutionAlias Alias="contosoexpenses.exe" />
</uap3:AppExecutionAlias>
</uap3:Extension>
</Extensions>
Segue o manifesto com as modificações:
Salve e feche o arquivo de manifesto.
Volte para a Ferramenta de Empacotamento MSIX e gere um novo pacote. Depois que o pacote for criado, instale o pacote e inicie o aplicativo por meio do alias, por exemplo, pressionando Win+R e digitando contosoexpenses:
Agora que o alias foi criado, é possível prosseguir para as próximas etapas.
Criar o atalho do aplicativo
Crie um novo atalho de aplicativo em uma pasta de sua preferência usando o aliascontosoexpenses.exe, da seguinte maneira:
Nomeie o atalho para Despesas da Contoso:
Por padrão, o atalho será um ícone genérico:
Alterar o atalho é simples, mas o desafio aqui é evitar usar o caminho completo do aplicativo que tem o número da versão e que pode mudar em uma atualização futura. Uma maneira de resolver isso é copiar o ícone do pacote para o %appdata% usado pelo aplicativo MSIX, ou seja, a pasta %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ que não tem número de versão.
Para alterar o atalho do aplicativo, por enquanto, é necessário copiar manualmente o ícone para essa pasta. Isso será automatizado posteriormente usando scripts PSF.
Agora, é possível alterar o ícone de atalho para o caminho %localappdata%:
Ainda nas propriedades de atalho, aproveite e altere os valores do destino e inicie em propriedades para %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe e %localappdata%\Microsoft\WindowsApps , respectivamente:
Agora que o atalho está funcionando, a próxima etapa é adicioná-lo ao pacote e automatizar o processo de criação.
Obter os arquivos PSF
Baixe o PSFBinaries.zip do repositório Github do PSF.
Extraia os arquivos necessários de 32 bits ou 64 bits para a raiz do diretório do pacote, dependendo se o aplicativo tiver 32 ou 64 bits. Use a tabela a seguir como guia.
Executável de aplicativo é x64 | O executável do aplicativo é x86 |
---|---|
PSFLauncher64.exe | PSFLauncher32.exe |
PSFRuntime64.dll | PSFRuntime32.dll |
Incluir os arquivos PSF no pacote
Editar a Despesa da Contoso por meio da Ferramenta de Empacotamento MSIX :
Clique no item de menu Arquivos de Pacote , clique com o botão direito na pasta Pacote e selecione Adicionar Arquivo...:
Como o build contosoExpense aqui é de 32 bits, ele foi adicionado aos arquivos necessários de 32 bits PSF. O conteúdo do pacote agora deve ser semelhante a este:
Atualizar o manifesto do pacote para PSF
Clique no item de menu Informações do pacote e clique em Abrir Arquivo, disponível na parte inferior da interface do usuário, para editar o manifesto do aplicativo:
Nesta etapa, é necessário alterar o ponto de entrada do aplicativo (ContosoExpenses\ContosoExpenses.exe) pelo PSFLauncher32.exe.
<Application Id="App" Executable="PSFLauncher32.exe" EntryPoint="Windows.FullTrustApplication">
Salve e feche o arquivo de manifesto.
Criar o arquivo config.json
Volte para a Ferramenta de Empacotamento MSIX, clique em Arquivos de Pacote, selecione a pasta Pacote e adicione um novo arquivo config.json com o conteúdo a seguir.
{
"applications": [
{
"id": "App",
"executable": "ContosoExpenses\\ContosoExpenses.exe",
"workingDirectory": "ContosoExpenses\\",
"startScript":
{
"scriptPath": "createshortcut.ps1",
"runInVirtualEnvironment": false,
"waitForScriptToFinish": true,
"showWindow": false,
"runOnce": true
}
}
]
}
👀 Observe que a ID do aplicativo é a mesma do manifesto:
O arquivo config.json deve ser criado na raiz do pacote, da seguinte maneira:
O arquivo config.json está sendo usado para especificar que o script createshortcut.ps1 deve ser executado apenas uma vez na primeira inicialização do aplicativo. Como o diretório de trabalho é definido como ContosoExpenses, o scriptcreateshortcut.ps1 (que será criado posteriormente) e o script StartingScriptWrapper.ps1 (de arquivos PSF) devem ser adicionados à pasta ContosoExpenses .
Criar o script do PowerShell
Crie o script createshortcut.ps1 com o seguinte conteúdo:
Copy-Item "Contoso Expenses.lnk" "$env:USERPROFILE\desktop\Contoso Expenses.lnk"
Copy-Item "contoso.ico" $env:APPDATA\contoso.ico
O script createshortcut.ps1 copiará o atalho "Contoso Expenses.lnk", criado anteriormente e que estará disponível dentro do pacote, para a área de trabalho do usuário. A segunda instrução copia o contoso.icon para a pasta MSIX APPDATA (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming).
A próxima etapa é copiar os seguintes arquivos para a pasta ContosoExpenses do pacote:
- Contoso Expenses.lnk
- Contoso.ico
- StartingScriptWrapper.ps1
- createshortcut.ps1
Por fim, a última etapa é criar e instalar a nova versão do pacote de aplicativos. Durante a primeira inicialização do aplicativo, o scriptcreateshortcut.ps1 será executado e criará o atalho Despesas da Contoso na Área de Trabalho do usuário.