Partilhar via


Criar pacotes de bootstrapper

O programa de instalação é um instalador genérico que pode ser configurado para detetar e instalar componentes redistribuíveis, como arquivos do Windows Installer (.msi) e programas executáveis. O instalador também é conhecido como bootstrapper. Ele é programado através de 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 para ClickOnce é um pacote 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 detecta primeiro se algum dos pré-requisitos já está instalado. Se os pré-requisitos não estiverem instalados, primeiro o bootstrapper mostrará os contratos de licença. Em segundo lugar, depois que o usuário final aceita os contratos de licença, a instalação começa para os pré-requisitos. Caso contrário, se todos os pré-requisitos forem detetados, o bootstrapper limita-se a iniciar o instalador da aplicação.

Criar pacotes de bootstrapper personalizados

Você pode gerar os manifestos do bootstrapper usando o Editor de XML no Visual Studio. Para ver um exemplo de criação de um pacote de bootstrapper, consulte Passo a passo: Criar um bootstrapper personalizado com um prompt de privacidade.

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

  • O manifesto do produto, product.xml, contém quaisquer metadados com neutralidade de idioma para o pacote. Isso 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 do idioma; normalmente contém mensagens de erro localizadas. Um componente deve ter pelo menos um manifesto de pacote para cada versão localizada desse componente. Para criar esse arquivo, consulte Como criar um manifesto de pacote.

Depois que esses arquivos forem criados, coloque o arquivo de manifesto do produto em uma pasta nomeada para o bootstrapper personalizado. O arquivo de manifesto do pacote vai para uma pasta nomeada para o local. 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 de bootstrapper personalizado final pode ter a seguinte estrutura de pastas.

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 bootstrapper. Para obter mais informações, consulte Como criar um pacote de inicialização 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 Update 7.

Você também pode encontrar o local da pasta bootstrapper a partir do 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 packages. O manifesto do produto e os arquivos redistribuíveis devem ser colocados nessa subpasta. As versões localizadas dos manifestos do componente e do pacote devem ser colocadas em subpastas nomeadas de acordo com o Nome da Cultura.

Depois que esses arquivos são copiados para a pasta bootstrapper, o pacote bootstrapper aparece automaticamente na caixa de diálogo Pré-requisitos do Visual Studio. Se o seu pacote de bootstrapper personalizado não aparecer, feche a janela e depois 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
Nome do aplicativo O nome do aplicativo.
Arquitetura do Processador O processador e os bits por palavra da plataforma alvo de um executável. Os valores incluem o seguinte:

- Intel
- IA64
- AMD64
Versão NT O número da versão para os sistemas operacionais Windows. A sintaxe da versão é Major.Minor.ServicePack.
VersãoMSI A versão do assembly do Windows Installer (msi.dll) a ser executada durante a instalação.
AdminUser Essa propriedade é definida se o usuário tiver privilégios de administrador. Os valores são verdadeiros ou falsos.
Modo de instalação 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 a partir do site do fornecedor.
- SpecificSite - os pré-requisitos são instalados a partir do local que você selecionar.
- SameSite - os pré-requisitos são instalados a partir do mesmo local que o aplicativo.

Separe os redistribuíveis das instalações de aplicativos

Você pode impedir que seus arquivos redistribuíveis sejam implantados em projetos de instalação. Para fazer isso, crie uma lista redistribuível na pasta RedistList no diretório do .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 é chamado DataWidgets feito pela Acme, use Acme.DataWidgets.RedistList.xml. Um exemplo do conteúdo da lista redistribuível pode ser semelhante a este:

<?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>