Crie um Instalador de Windows "MSI" usando WiX parte2

Data de criação de página :

Inicialmente

Da última vez, preparamos os arquivos necessários e montamos o projeto. Desta vez, edite "Product.wxs" e faça várias configurações do instalador.

Editar configurações de instalação (Product.wxs)

O conteúdo do arquivo Product.wxs é descrito no formato XML. Existem uma série de parâmetros, mas primeiro faremos as configurações mínimas para garantir que o instalador possa ser criado. Se você quiser configurá-lo com mais detalhes, consulte outro artigo ou o site oficial.

No momento da criação do projeto, o código se parece com este:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="SetupLittleSaviorTrial_x86" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />

    <Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
    </Feature>
  </Product>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
      </Directory>
    </Directory>
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
      <!-- <Component Id="ProductComponent"> -->
      <!-- TODO: Insert files, registry keys, and other resources here. -->
      <!-- </Component> -->
    </ComponentGroup>
  </Fragment>
</Wix>

Aqui estão algumas coisas que você precisa mudar: Adicione tags e atributos que não existem.

Wix/Produto/@Id

Defina o GUID que identifica o aplicativo.

Existem muitas ferramentas para gerar GUID, mas é rápido usar as ferramentas que vêm com o Visual Studio. Selecione o menu "Ferramentas" e "Criar GUID".

image

Obtenha um código de 36 dígitos, incluindo um hífen, e configure-o para Wix/Product/@Id.

<Wix>
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />

Wix/Produto/@Name

Este é o nome do aplicativo exibido em cada parte da tela do instalador. Também pode ser o nome que aparece na lista Adicionar e Remover Programas.

<Wix>
  <Product Name="リトルセイバー 体験版" />

image

image

Wix/Produto/@Manufacturer

Digite o nome do fabricante. Aparece como o autor do instalador ou o editor da lista do programa.

<Wix>
  <Product Manufacturer="ソーサリーフォース">

image

image

Wix/Produto/UIRef/@Id

Digite um ID que identifique qual tela exibir no assistente de instalação. Desta vez, como é a configuração mínima para exibir e instalar apenas a licença, "WixUI_Minimal" é especificado.

<Wix>
  <Product>
    <UIRef Id="WixUI_Minimal" />

Eu acho que o seguinte site será útil em que tipo de designação pode ser feita.

Usando o conjunto de diálogo WixUI

Wix/Produto/WixVariable/*

Especifica o arquivo a ser usado na interface do usuário do assistente. A configuração mínima usa três arquivos: O valor do id é fixo e o Valor é o nome do arquivo.

<Wix>
  <Product>
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />

Ícone de aplicativo de instalação

É usado para ícones de aplicativos que aparecem em "Adicionar e Remover programas", etc.

No "SourceFile" do elemento Ícone, especifique o arquivo ico como um caminho relativo da pasta do projeto.

"Property Id="ARPPRODUCTICON" é a definição de associação do ícone.

<Wix>
  <Product>
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />

Wix/Fragmento (configuração da pasta de arquivo)

Define a configuração da pasta para instalar. Originalmente, você também colocará arquivos, mas criará apenas pastas primeiro.

O valor de "Nome" definido para "Id="ProgramMenuDir" é o nome da pasta colocada no atalho do menu iniciar. Definir guias também.

<Wix>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
          <Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>

Adicionar arquivos de instalação

Você também pode adicioná-lo a um arquivo Product.wxs manualmente. Uma vez que um GUID é necessário para um arquivo, é difícil trabalhar com mais arquivos. Então, para adicionar arquivos, use WixEdit para adicioná-los.

Lançar WixEdit.

image

Abra o arquivo Product.wxs.

image

image

Selecione Arquivos do ícone à esquerda. Exclua as pastas abaixo Do ProgramFilesPato.

image

Clique com o botão direito do mouse na pasta ProgramFilesFolder e selecione Pasta de Importação.

image

Selecione a pasta onde deseja instalar os arquivos.

image

Um conjunto de arquivos é adicionado à árvore.

image

Para se associar a outros parâmetros, selecione a pasta adicionada e defina "Id" de volta para "INSTALLFOLDER".

image

Crie um atalho para o menu Iniciar. selecione "Novo" e "Atalho" no menu com o botão direito do mouse do arquivo exe.

image

Quando o atalho for adicionado, selecione-o e clique com o botão direito do mouse em branco para adicionar a propriedade.

image

Adicione os seguintes parâmetros: (Alterar o nome exclusivo para combinar com o programa.)

Valor de atributo
Id LITTLESAVIORTRIAL. EXE_shortcut
Nome Pequeno Julgamento de Sabre
Diretório ProgramaMenuDir
WorkingDirectory INSTALLDIR
Ícone O LITTLESAVIOR. ICO
IconIndex 0
Anunciar Sim

image

Em seguida, selecione a guia "Recurso", clique com o botão direito do mouse em "ProductFeature" e selecione Selecionar componentes para adicionar.

image

Selecione tudo.

image

Adicionado.

image

Salvar.

image

Product.wxs deve ser algo assim:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Name="リトルセイバー 体験版" Language="1033" Version="1.0.0.0" Manufacturer="ソーサリーフォース" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />
    <UIRef Id="WixUI_Minimal" />
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
    <Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
      <ComponentRef Id="LITTLESAVIOR.ICO" />
      <ComponentRef Id="LITTLESAVIORTRIAL.EXE" />
      <ComponentRef Id="LITTLESAVIORTRIAL.EXE.CONFIG" />
      <ComponentRef Id="ProgramMenuDir" />
    </Feature>
    <UI />
  </Product>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="LittleSaviorTrial">
          <Component Id="LITTLESAVIOR.ICO" DiskId="1" Guid="0B4DD82C-C6EF-4299-8EAB-4F9BB35FD952">
            <File Id="LITTLESAVIOR.ICO" Name="LittleSavior.ico" Source="LittleSaviorTrial\LittleSavior.ico" />
          </Component>
          <Component Id="LITTLESAVIORTRIAL.EXE" DiskId="1" Guid="8D805936-A25E-4DA6-9A0A-A5BDB2AD768D">
            <File Id="LITTLESAVIORTRIAL.EXE" Name="LittleSaviorTrial.exe" Source="LittleSaviorTrial\LittleSaviorTrial.exe" KeyPath="yes">
              <Shortcut Id="LITTLESAVIORTRIAL.EXE_shortcut" Name="リトルセイバー 体験版" Directory="ProgramMenuDir" WorkingDirectory="INSTALLDIR" Icon="LITTLESAVIOR.ICO" IconIndex="0" Advertise="yes" />
            </File>
          </Component>
          <Component Id="LITTLESAVIORTRIAL.EXE.CONFIG" DiskId="1" Guid="790C427A-A72C-4444-ACD6-ECF32AA788AD">
            <File Id="LITTLESAVIORTRIAL.EXE.CONFIG" Name="LittleSaviorTrial.exe.config" Source="LittleSaviorTrial\LittleSaviorTrial.exe.config" />
          </Component>
        </Directory>
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
          <Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>
  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
    </ComponentGroup>
  </Fragment>
</Wix>

Construir e executar a confirmação

Faça a configuração da solução "Lançamento" no Visual Studio.

image

Comece a construir a partir da Build Solution.

image

Quando o edifício é bem sucedido, um arquivo MSI é gerado na pasta "bin\Release".

image

Se você tentar executá-lo, o instalador será inicial.

image

Quando a instalação estiver concluída, um atalho será criado no menu Iniciar.

image

O arquivo é colocado na pasta Arquivos do Programa (x86).

image

O aplicativo também aparece em "Programas e Funções".

image

Execute o aplicativo e certifique-se de que está funcionando corretamente.

image

Resumo

Aqui descrevemos os passos para criar um instalador MSI usando Visual Studio e WiX. Gostaria de explicar as configurações detalhadas em um artigo separado.