Distribuir um aplicativo Windows de um servidor IIS

Aviso

O ms-appinstaller: protocolo URI usado nesses tutoriais de instalação da Web é desabilitado por padrão a partir de dezembro de 2023. Os usuários na maioria dos dispositivos não poderão usar o fluxo de instalação disparado pelo navegador com um clique. Para distribuição ampla, publique na Microsoft Store em vez disso. Para dispositivos gerenciados por empresas nos quais a TI pode reativar o protocolo por meio da Diretiva de Grupo, consulte Instalando aplicativos do Windows a partir de uma página da web.

Este tutorial demonstra como configurar um servidor IIS, verificar se seu aplicativo Web pode hospedar pacotes de aplicativos e invocar e usar o Instalador de Aplicativos com eficiência.

O aplicativo Instalador de Aplicativos permite que desenvolvedores e profissionais de TI distribuam Windows 10 aplicativos hospedando-os em sua própria CDN (Rede de Distribuição de Conteúdo). Isso é útil para empresas que não querem ou precisam publicar seus aplicativos no Microsoft Store, mas ainda querem aproveitar o Windows 10 plataforma de empacotamento e implantação.

Configuração

Para seguir com êxito com este tutorial, você precisará do seguinte:

  1. Visual Studio 2017
  2. Ferramentas de desenvolvimento da Web e IIS
  3. Windows 10 pacote do aplicativo – O pacote do aplicativo que você distribuirá

Opcional: Starter Project no GitHub. Isso é útil se você não tiver pacotes de aplicativos com os quais trabalhar, mas ainda quiser saber como usar esse recurso.

Etapa 1 – Instalar o IIS e ASP.NET

Serviços de Informações da Internet é um recurso Windows que pode ser instalado por meio do menu Iniciar. No menu Start, procure por Ativar ou desativar recursos do Windows.

Localize e selecione Serviços de Informações da Internet para instalar o IIS.

Observação

Você não precisa selecionar todas as caixas de seleção em Serviços de Informações da Internet. Somente os selecionados quando você marca Serviços de Informações da Internet são suficientes.

Você também precisará instalar ASP.NET 4.5 ou superior. Para instalá-lo, localize Serviços de Informações da Internet -> World Wide Web Services -> Application Development Features. Selecione uma versão de ASP.NET maior ou igual a ASP.NET 4.5.

Screenshot da instalação do recurso ASP.NET

Etapa 2 – Instalar Visual Studio 2017 e ferramentas de desenvolvimento na Web

Instalar Visual Studio 2017 se ainda não o instalou. Se você já tiver Visual Studio 2017, verifique se as cargas de trabalho a seguir estão instaladas. Se as cargas de trabalho não estiverem presentes em sua instalação, siga com o Visual Studio Installer (encontrado no menu Iniciar).

Durante a instalação, selecione ASP.NET e desenvolvimento web e quaisquer outras cargas de trabalho em que você esteja interessado.

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

Etapa 3 – Criar um aplicativo Web

Inicie Visual Studio 2017 como Administrator e crie um novo projeto Visual C# Web Application com um modelo de projeto empty.

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

Etapa 4 – Configurar o IIS com nosso aplicativo Web

No Gerenciador de Soluções, clique com o botão direito do mouse no projeto raiz e selecione Properties.

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

Captura de tela da guia Web nas propriedades do projeto

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

Adicione o pacote de aplicativos que você vai distribuir no aplicativo Web. Você pode usar o pacote do aplicativo que faz parte dos pacotes de projeto starter fornecidos em GitHub se você não tiver um pacote de aplicativo disponível. O certificado (MySampleApp.cer) com o qual o pacote foi assinado também está com o exemplo em GitHub. Você deve ter o certificado instalado em seu dispositivo antes de instalar o aplicativo (Etapa 9).

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

Captura de tela da 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 da Web .

Depois que a página HTML for criada, clique com o botão direito do mouse na página HTML no Gerenciador de Soluções e selecione Set As Start Page.

Clique duas vezes no arquivo HTML para abri-lo na janela do editor de código. Neste tutorial, somente os elementos necessários na página da Web para invocar o aplicativo Instalador de Aplicativos com êxito para instalar um aplicativo Windows 10 serão usados.

Inclua o código HTML a seguir em sua página da Web. A chave para invocar com êxito o Instalador de Aplicativos é usar o esquema personalizado que o Instalador de Aplicativos registra com o sistema operacional: ms-appinstaller:?source=. Confira o exemplo de código abaixo para obter mais detalhes.

Observação

Verifique se o caminho de URL especificado após o esquema personalizado corresponde à URL do Project na guia 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 de aplicativos

Abra o arquivo Web.config do gerenciador de soluções e adicione as linhas a seguir 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 usa mapeamentos MIME web.config para conteúdo estático. Se o aplicativo de hospedagem for criado com ASP.NET Core, configure os tipos de conteúdo necessários para .appx, .msix, .appxbundle, .msixbundle e .appinstaller no middleware de arquivo estático, normalmente no método Startup.Configure. Para obter mais informações, consulte a documentação do .NET Core.

Etapa 8 – Adicionar isenção de loopback para o Instalador de Aplicativos

Devido ao isolamento de rede, Windows 10 aplicativos como o Instalador de Aplicativos são restritos a usar endereços de loopback IP como http://localhost/. Ao usar o servidor IIS local, o Instalador de Aplicativos deve ser adicionado à lista de isenção de loopback.

Para fazer isso, abra o Prompt de Comando como Administrador e insira o seguinte:

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

Para verificar se o aplicativo foi adicionado à lista de isentos, 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.

Depois que a validação local da instalação do aplicativo por meio do Instalador de Aplicativos for concluída, você poderá remover a isenção de loopback que você adicionou 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:

Screenshot da execução do aplicativo Web em Visual Studio

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

Captura de tela da instalação do aplicativo na página da Web

Clique no link na página da Web para iniciar o aplicativo Instalador de Aplicativos e instalar seu pacote de aplicativos Windows 10.

Solução de problemas

Privilégio não suficiente

Se a execução do aplicativo Web no Visual Studio exibir um erro como "Você não tem privilégio suficiente para acessar sites do IIS em seu computador", precisará executar Visual Studio como administrador. Feche a instância atual do Visual Studio e reabra-a como administrador.

Definir página inicial

Se a execução do aplicativo Web faz com que o navegador seja carregado 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.