Criar um atalho de aplicativo executando um script usando a estrutura de suporte do pacote

Este documento mostrará como criar atalhos de aplicativos usando o PSF (Package support Framework) que executam scripts por meio da ferramenta de empacotamento do MSIX e do aplicativo do WPF de despesas da Contoso .

despesas com a 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 do PSF.

Há algumas coisas a serem consideradas:

  1. Somente crie um atalho se eles forem absolutamente necessários. O objetivo é não obstruir a área de trabalho do usuário.
  2. O aplicativo MSIX deve ser instalado antes da criação do atalho, para que possamos especificar o caminho do aplicativo MSIX durante a criação do atalho.
  3. Ao mesmo tempo, o caminho do aplicativo MSIX pode ser alterado, uma vez que ele tem 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 Files\WindowsApps\ ContosoExpenses_ 1.0.0.0 _x86__3z09h3y28h0qg

Para evitar a alteração do atalho do aplicativo toda vez 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, para que não seja necessário especificar o caminho completo do aplicativo. Portanto, antes de criar o atalho, defina o alias no manifesto do aplicativo. caso contrário, Windows Explorer não reconhecerá o alias e ele 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:

abrir o manifesto msix

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 Desktop 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:

criar alias

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:

Iniciar usando alias

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 alias contosoexpenses.exe, da seguinte maneira:

novo atalho de aplicativo

Nomeie o atalho para as despesas da Contoso:

novo aplicativo concluindo criação de atalho

Por padrão, o atalho será um ícone genérico:

atalho de aplicativo genérico

A alteração do atalho é simples, mas o desafio aqui é evitar o uso do caminho completo do aplicativo que tem o número de versão e que pode ser alterado 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 um 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.

atalho de AppData

Agora, é possível alterar o ícone de atalho para o caminho% LocalAppData%:

novo atalho de caminho

Ainda nas propriedades de atalho, tire proveito e altere os valores do destino e inicie nas Propriedades para % LocalAppData% \Microsoft\WindowsApps\contosoexpenses.exe e %LocalAppData%\Microsoft\WindowsApps , respectivamente:

atalho de novos valores

Agora que o atalho está funcionando, a próxima etapa é adicioná-lo ao pacote e automatizar o processo de criação.

novo atalho

Obter os arquivos PSF

Baixe o PSFBinaries.zip do repositório GitHub PSF.

PSF de versões do github

Extraia os arquivos de 32 bits ou 64 bits necessários para a raiz do diretório do pacote, dependendo se seu aplicativo for 32 ou 64 bits. Use a tabela a seguir como guia.

O executável do aplicativo é x64 O executável do aplicativo é x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll

Incluir os arquivos PSF no pacote

Edite as despesas da Contoso por meio da ferramenta de empacotamento MSIX :

PSF da edição do GitHub MPT

Clique no item de menu arquivos de pacote , clique com o botão direito na pasta do pacote e selecione Adicionar arquivo...:

PSF do GitHub adicionar arquivos PSF

Como o ContosoExpense Build aqui é de 32 bits, ele foi adicionado os arquivos de PSF de 32 bits necessários. O conteúdo do pacote agora deve ser semelhante a este:

PSF do GitHub PSF adicionou arquivos

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:

PSF do manifesto de edição do github

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 config.jsno arquivo

Volte para a ferramenta de empacotamento MSIX, clique em arquivos de pacote, selecione a pasta pacote e adicione um novo config.jsno arquivo 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 config.jsno arquivo deve ser criado na raiz do pacote, da seguinte maneira:

PSF do github

O config.jsno arquivo está sendo usado para especificar que o script de createshortcut.ps1 deve ser executado apenas uma vez na primeira inicialização do aplicativo. Como o diretório de trabalho é definido como ContosoExpenses, o script de createshortcut.ps1 (que será criado posteriormente) e o script de StartingScriptWrapper.ps1 (de arquivos PSF) devem ser adicionados à pasta ContosoExpenses .

Criar o script do PowerShell

Crie o script de 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 de createshortcut.ps1 copiará o atalho "contoso despesas. 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:

  • Despesas com a contoso. 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 script de createshortcut.ps1 será executado e criará o atalho de despesa da Contoso na área de trabalho do usuário.