Distribuir uma aplicação Windows a partir de um servidor IIS

Advertência

O ms-appinstaller: protocolo URI utilizado nestes tutoriais de instalação web está desativado por defeito desde dezembro de 2023. Os utilizadores na maioria dos dispositivos não poderão usar o fluxo de instalação acionado pelo navegador com um clique. Para uma distribuição ampla, publicar para o Microsoft Store em vez disso. Para dispositivos geridos pela empresa onde o TI pode reativar o protocolo via Group Policy, consulte Instalação de aplicações Windows a partir de uma página web.

Este tutorial demonstra como configurar um servidor IIS, verificar se seu aplicativo Web pode hospedar pacotes de aplicativos e invocar e usar o App Installer de forma eficaz.

A aplicação App Installer permite que programadores e profissionais de TI distribuam aplicações com Windows 10, alojando-as na sua própria Rede de Distribuição de Conteúdos (CDN). Isto é útil para empresas que não querem ou não precisam de publicar as suas aplicações na Microsoft Store, mas que ainda assim querem tirar partido da plataforma de empacotamento e implementação do Windows 10.

Configuração

Para prosseguir com sucesso com este tutorial, você precisará do seguinte:

  1. Visual Studio 2017
  2. Ferramentas de desenvolvimento Web e IIS
  3. Pacote de aplicações Windows 10 - O pacote de aplicações que irá distribuir

Opcional: Starter Project no GitHub. Isso é útil se você não tiver pacotes de aplicativos para trabalhar, mas ainda assim quiser aprender a usar esse recurso.

Passo 1 - Instalar IIS e ASP.NET

Serviços de Informação Internet é uma funcionalidade Windows que pode ser instalada através do menu Iniciar. No menu Start procure por Ativar ou desativar as funcionalidades Windows.

Encontre e selecione Serviços de Informação Internet para instalar o IIS.

Observação

Não precisa de assinalar todas as caixas de seleção em Serviços de Informação Internet. Só os selecionados quando verificares Serviços de Informação Internet são suficientes.

Também terá de instalar o ASP.NET 4.5 ou superior. Para o instalar, localize Serviços de Informação Internet -> World Wide Web Services -> Application Development Features. Selecione uma versão do ASP.NET que seja maior ou igual ao ASP.NET 4.5.

Captura de ecrã da instalação da funcionalidade ASP.NET

Passo 2 - Instalar o Visual Studio 2017 e ferramentas de Desenvolvimento Web

Instala Visual Studio 2017 se ainda não o instalaste. Se já tem o Visual Studio 2017, certifique-se de que as seguintes cargas de trabalho estão instaladas. Se as cargas de trabalho não estiverem presentes na sua instalação, acompanhe usando o Instalador do Visual Studio (disponível no menu Iniciar).

Durante a instalação, selecione ASP.NET desenvolvimento web e quaisquer outras cargas de trabalho que lhe interessem.

Quando a instalação estiver concluída, inicie Visual Studio e crie um novo project (File ->New Project).

Etapa 3 - Criar um aplicativo Web

Lance Visual Studio 2017 como Administrador e crie um novo projeto Visual C# Web Application com um modelo de projeto vazio.

Captura de tela da criação de um novo projeto Web

Etapa 4 - Configurar o IIS com nosso aplicativo Web

A partir da Explorador de Soluções, clique com o botão direito no projeto raiz e selecione Properties.

Nas propriedades do aplicativo Web, selecione a guia Web . Na seção Servidores , escolha IIS Local no menu suspenso e clique em Criar Diretório Virtual.

Captura de ecrã do separador Web nas propriedades do projeto

Etapa 5 - Adicionar um pacote de aplicativo a um aplicativo Web

Adicione o pacote do aplicativo que você vai distribuir no aplicativo Web. Podes usar o pacote de aplicações que faz parte dos pacotes de projetos starter fornecidos no GitHub se não tiveres um pacote de aplicações disponível. O certificado (MySampleApp.cer) com que o pacote foi assinado também tem o exemplo em GitHub. Você deve ter o certificado instalado no seu dispositivo antes de instalar o aplicativo (Etapa 9).

No aplicativo Web do projeto inicial, uma nova pasta foi adicionada ao aplicativo Web chamada pacotes que contém os pacotes do aplicativo a serem distribuídos. Para criar a pasta no Visual Studio, clique com o botão direito no nó do projeto no Explorador de Soluções, selecione Adicionar ->Nova Pasta e nomee-a packages. Para adicionar pacotes de aplicativos à pasta, clique com o botão direito do mouse na pasta de pacotes , selecione Adicionar ->Item Existente... e navegue até o local do pacote do aplicativo.

Captura de ecrã a mostrar a adição de um pacote

Etapa 6 - Criar uma página da Web

Este aplicativo Web de exemplo usa HTML simples. Você é livre para criar seu aplicativo Web conforme necessário de acordo com suas necessidades.

Clique com o botão direito do mouse no projeto raiz do Gerenciador de soluções, selecione Adicionar ->Novo Item e adicione uma nova Página HTML na seção Web .

Depois de criada a página HTML, clique com o botão direito na página HTML no Explorador de Soluções e selecione Definir como Página Inicial.

Clique duas vezes no arquivo HTML para abri-lo na janela do editor de código. Neste tutorial, apenas os elementos necessários na página web para invocar com sucesso a aplicação Instalador de Aplicações para instalar uma aplicação Windows 10 serão utilizados.

Inclua o seguinte código HTML na sua página Web. A chave para invocar com êxito o App Installer é usar o esquema personalizado que o App Installer registra com o sistema operacional: ms-appinstaller:?source=. Consulte o exemplo de código abaixo para obter mais detalhes.

Observação

Certifique-se de que o caminho URL especificado após o esquema personalizado corresponde ao Project Url no separador web da sua solução VS.

<html>
<head>
    <meta charset="utf-8" />
    <title> Install Page </title>
</head>
<body>
    <a href="ms-appinstaller:?source=http://localhost/SampleWebApp/packages/MySampleApp.msixbundle"> Install My Sample App</a>
</body>
</html>

Etapa 7 - Configurar o aplicativo Web para tipos MIME do pacote do aplicativo

Abra o arquivo Web.config do gerenciador de soluções e adicione as seguintes linhas dentro do <configuration> elemento .

<system.webServer>
    <!--This is to allow the web server to serve resources with the appropriate file extension-->
    <staticContent>
      <mimeMap fileExtension=".appx" mimeType="application/appx" />
      <mimeMap fileExtension=".msix" mimeType="application/msix" />
      <mimeMap fileExtension=".appxbundle" mimeType="application/appxbundle" />
      <mimeMap fileExtension=".msixbundle" mimeType="application/msixbundle" />
      <mimeMap fileExtension=".appinstaller" mimeType="application/appinstaller" />
    </staticContent>
</system.webServer>

Observação

ASP.NET Core não utiliza mapeamentos web.config MIME para conteúdo estático. Se a sua aplicação de alojamento for construída com ASP.NET Core, configure os tipos de conteúdo necessários para .appx, .msix, .appxbundle, .msixbundle e .appinstaller no middleware de ficheiros estáticos, normalmente no método Startup.Configure. Para mais informações, consulte a documentação .NET Core .

Etapa 8 - Adicionar isenção de loopback para o App Installer

Devido ao isolamento da rede, Windows 10 aplicações como o App Installer estão restritas a usar endereços IP de loopback como http://localhost/. Ao usar o Servidor IIS local, o App Installer deve ser adicionado à lista de isenção de loopback.

Para fazer isso, abra o prompt de comando como administrador e digite o seguinte:

CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.desktopappinstaller_8wekyb3d8bbwe

Para verificar se o aplicativo foi adicionado à lista de isenção, use o seguinte comando para exibir os aplicativos na lista de isenção de loopback:

CheckNetIsolation.exe LoopbackExempt -s

Você deve encontrar microsoft.desktopappinstaller_8wekyb3d8bbwe na lista.

Quando a validação local da instalação do aplicativo por meio do App Installer estiver concluída, você poderá remover a isenção de loopback adicionada nesta etapa:

CheckNetIsolation.exe LoopbackExempt -d -n=microsoft.desktopappinstaller_8wekyb3d8bbwe

Etapa 9 - Executar o aplicativo Web

Crie e execute o aplicativo Web clicando no botão Executar na Faixa de Opções do VS, conforme mostrado na imagem abaixo:

Captura de ecrã da aplicação web a correr em Visual Studio

Uma página da Web será aberta no seu navegador:

Captura de ecrã a mostrar a instalação da aplicação a partir da página Web

Clique no link na página web para iniciar a aplicação App Installer e instalar o seu pacote de aplicações para Windows 10.

Solução de problemas

Privilégio insuficiente

Se executar a aplicação web no Visual Studio apresentar um erro como "Não tem privilégio suficiente para aceder aos sites do IIS na sua máquina", terá de executar o Visual Studio como administrador. Fecha a instância atual do Visual Studio e reabra-a como administrador.

Definir página inicial

Se a execução do aplicativo Web fizer com que o navegador carregue com um erro HTTP 403.14 - Proibido, é porque o aplicativo Web não tem uma página inicial definida. Consulte a Etapa 6 neste tutorial para saber como definir uma página inicial.