Criar pacotes de bootstrapper

O programa de instalação é um instalador genérico que pode ser configurado para detectar e instalar componentes redistribuíveis como arquivos do Windows Installer (.msi) e programas executáveis. O instalador também é conhecido como bootstrapper. Ele é programado por um conjunto de manifestos XML que especificam os metadados para gerenciar a instalação do componente. Cada componente redistribuível, ou pré-requisito, que aparece na caixa de diálogo Pré-requisitos do ClickOnce é um pacote de bootstrapper. Um pacote de bootstrapper é um grupo de diretórios e arquivos que contém arquivos de manifesto que descrevem como o pré-requisito deve ser instalado.

O bootstrapper primeiro detecta se qualquer um dos pré-requisitos já está instalado. Se os pré-requisitos não estiverem instalados, primeiro o bootstrapper mostra os contratos de licença. Em segundo lugar, depois que o usuário final aceita os contratos de licença, a instalação dos pré-requisitos começa. Caso contrário, se forem detectados todos os pré-requisitos, o bootstrapper apenas inicia o instalador do aplicativo.

Criar pacotes de bootstrapper personalizados

É possível gerar manifestos de bootstrapper usando o Editor de XML no Visual Studio. Para ver um exemplo de criação de um pacote de bootstrapper, consulte Instruções passo a passo: criar um bootstrapper personalizado com um prompt de privacidade.

Para criar um pacote de bootstrapper, crie um manifesto do produto e, para cada versão localizada de um componente, um manifesto de pacote também.

  • O manifesto do produto, product.xml, contém todos os metadados de linguagem neutra para o pacote. Esse manifesto contém metadados comuns a todas as versões localizadas do componente redistribuível. Para criar esse arquivo, consulte Como: criar um manifesto do produto.

  • O manifesto do pacote, package.xml, contém metadados específicos da linguagem. Geralmente, contém mensagens de erro localizadas. Um componente deve ter, pelo menos, um pacote de manifesto para cada versão localizada desse componente. Para criar esse arquivo, consulte Como: criar um manifesto de pacote.

Depois que esses arquivos são criados, coloque o arquivo de manifesto do produto em uma pasta indicada para o bootstrapper personalizado. O arquivo de manifesto do pacote vai para uma pasta nomeada de acordo com a localidade. Por exemplo, se o arquivo de manifesto do pacote for para redistribuição em inglês, coloque o arquivo em uma pasta chamada en. Repita esse processo para cada localidade, como ja para japonês e de para alemão. O pacote final de bootstrapper personalizado pode ter estrutura de pastas a seguir.

CustomBootstrapperPackage
  product.xml
  CustomBootstrapper.msi
  de
    eula.rtf
    package.xml
  en
    eula.rtf
    package.xml
  ja
    eula.rtf
    package.xml

Em seguida, copie os arquivos redistribuíveis para o local da pasta do bootstrapper. Para obter mais informações, consulte Como criar um pacote de bootstrapper localizado.

*\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages*

ou

*<VS Install Path>\MSBuild\Microsoft\VisualStudio\BootstrapperPackages*

Observação

O caminho listado acima no caminho de instalação do Visual Studio funciona a partir da versão do Visual Studio 2019 Atualização 7.

Você também pode encontrar a localização da pasta do bootstrapper no valor Path na seguinte chave do Registro:

*HKLM\Software\Microsoft\GenericBootstrapper*

Em sistemas de 64 bits, use a seguinte chave do Registro:

*HKLM\Software\Wow6432Node\Microsoft\GenericBootstrapper*

Cada componente redistribuível aparece em sua própria subpasta no diretório de pacotes. Os arquivos redistribuíveis e o manifesto do produto devem ser colocados nessa subpasta. As versões localizadas do componente e dos manifestos do pacote devem ser colocadas em subpastas nomeadas de acordo com o nome da cultura.

Após esses arquivos serem copiados na pasta do bootstrapper, o pacote de bootstrapper aparece automaticamente na caixa de diálogo de Pré-requisitos do Visual Studio. Se o pacote personalizado de bootstrapper não aparecer, feche e reabra a caixa de diálogo Pré-requisitos. Para obter mais informações, consulte Caixa de diálogo Pré-requisitos.

A tabela a seguir mostra as propriedades que são preenchidas automaticamente pelo bootstrapper.

Propriedade Descrição
ApplicationName O nome do aplicativo.
ProcessorArchitecture O processador e bits por palavra da plataforma de destino de um executável. Os valores incluem o seguinte:

- Intel
- IA64
- AMD64
VersionNT O número de versão dos sistemas operacionais do Windows. A sintaxe da versão é Major.Minor.ServicePack.
VersionMSI A versão do assembly do Windows Installer (msi.dll) para executar durante a instalação.
AdminUser Essa propriedade será definida se o usuário tiver privilégios de administrador. Os valores são verdadeiro ou falso.
InstallMode O modo de instalação indica de onde o componente precisa ser instalado. Os valores incluem o seguinte:

– HomeSite – os pré-requisitos são instalados do site do fornecedor.
– SpecificSite – os pré-requisitos são instalados da localização selecionada.
– SameSite – os pré-requisitos são instalados da mesma localização do aplicativo.

Separar redistribuíveis das instalações do aplicativo

Você pode evitar que seus arquivos redistribuíveis sejam implantados em projetos de instalação. Para fazer isso, crie uma lista redistribuível na pasta RedistList em seu diretório NET Framework:

%ProgramFiles%\Microsoft.NET\RedistList

A lista redistribuível é um arquivo XML que você deve nomear usando o seguinte formato: <Nome da Empresa>.<Nome do Componente>.RedistList.xml. Assim, por exemplo, se o componente for chamado de DataWidgets feito por Acme, use Acme.DataWidgets.RedistList.xml. Um exemplo de conteúdo da lista redistribuível pode ser semelhante a:

<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>