Usando a tabela Diretório

A tabela Diretório especifica o layout de uma instalação. Quando os diretórios são resolvidos durante a ação CostFinalize, as chaves na tabela Diretório se tornam propriedades definidas como caminhos de diretório. Observe que o instalador define várias propriedades padrão para os caminhos de pasta do sistema. Confira a Referência de Propriedade para obter uma lista das propriedades definidas como pastas do sistema.

A melhor maneira de especificar o local de destino para um diretório é criando a tabela Diretório em seu pacote de instalação para fornecer o local correto, conforme discutido nesta seção. Se for necessário alterar o local do diretório no momento da instalação, confira também a seção: Como alterar o local de destino de um diretório

Confira a seguir um exemplo de uma tabela Diretório.

Diretório Directory_Parent DefaultDir
TARGETDIR SourceDir
EXEDIR TARGETDIR Aplicativo
DLLDIR EXEDIR Compartimento
DesktopFolder TARGETDIR Área de Trabalho

 

Cada linha da tabela Diretório indica um diretório na origem e no destino. Por exemplo, suponha que o pacote de instalação resida em \\applications\source\. Como o campo Directory_Parent da primeira linha é Null, esse registro indica os diretórios raiz para a origem e o destino. Para a origem, o valor desse diretório é fornecido pelo campo DefaultDir. A propriedade SourceDir usa como padrão o local do pacote de instalação. Portanto, a menos que a propriedade SourceDir seja substituída, o diretório de origem raiz será \\applications\source\.

O campo Diretório do primeiro registro indica o local do diretório de destino raiz. Nesse caso, o valor da propriedade TARGETDIR indica esse diretório. Normalmente, o valor da propriedade TARGETDIR é definido na linha de comando ou por meio de uma interface do usuário. Nesse caso, suponha que a propriedade TARGETDIR esteja definida como C:\Program Files\Target\.

Para o segundo registro, o campo Directory_Parent não é Null. Portanto, esse registro indica um diretório não raiz para a origem e o destino. Para um diretório de origem não raiz, o diretório de origem indicado pelo registro descrito no campo Directory_Parent é o diretório pai. Para o segundo registro, o campo Directory_Parent é TARGETDIR. Conforme mostrado anteriormente, o diretório de origem indicado pelo registro TARGETDIR foi resolvido para \\applications\source\. Portanto, o diretório de origem indicado pelo segundo registro é \\applications\source\App\.

Um processo semelhante funciona para o diretório de destino. O valor do diretório pai para o diretório de destino descrito no segundo registro é o diretório de destino resolvido pelo campo Directory_Parent. Novamente, o campo Directory_Parent contém o valor TARGETDIR. Isso indica o primeiro registro que é resolvido para um diretório de destino de C:\Program Files\Target\. O campo Diretório contém uma propriedade definida pelo autor chamada EXEDIR. Se essa propriedade estiver definida, seu valor fornecerá o caminho completo do diretório. Portanto, se essa propriedade for definida como C:\Data\Common\, o valor do diretório de destino indicado pelo segundo registro será C:\Data\Common\. Se não estiver definido, o diretório de destino usará o nome fornecido pelo campo DefaultDir. Nesse caso, o diretório de destino é C:\Program Files\Target\App\.

O mesmo processo funciona para o terceiro registro. Se EXEDIR e DLLDIR não estiverem definidos, o diretório de destino será C:\Program Files\Target\App\Bin e o diretório de origem será \\applications\source\App\Bin\.

O quarto registro usa a propriedade DesktopFolder. Se o local da área de trabalho do usuário for C:\Winnt\Profiles\User\Desktop\, o diretório de destino será resolvido para C:\Winnt\Profiles\User\Desktop\. O diretório de origem é resolvido para \\applications\source\Desktop\.

Há dois recursos de sintaxe adicionais que podem ser usados na coluna DefaultDir da tabela Diretório. Para um diretório de origem não raiz, um período (.) inserido na coluna DefaultDir indica que o diretório deve estar localizado em seu diretório pai sem um subdiretório. Para especificar caminhos de diretório de origem e de destino diferentes, separe os caminhos de destino e de origem na coluna DefaultDir com dois-pontos da seguinte maneira: [targetpath]:[sourcepath]. Esses recursos podem ser usados juntos para adicionar níveis aos caminhos de origem ou de destino para um único diretório. Confira o exemplo a seguir de uma tabela Diretório.

Diretório Directory_Parent DefaultDir
TARGETDIR SourceDir
MyAppDir TARGETDIR MyApp
BinDir MyAppDir Compartimento
Binx86Dir BinDir .:x86
BinAlphaDir BinDir .:Alpha

 

Os caminhos de origem e destino são resolvidos para as linhas MyAppDir, BinDir, Binx86Dir e BinAlphaDir da seguinte maneira.

Record Caminhos de destino Caminhos de origem
MyAppDir: [TARGETDIR]MyApp [SourceDir]MyApp
BinDir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin
Binx86Dir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin\x86
BinAlphaDir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin\Alpha

 

Observação

A plataforma Alpha não tem suporte do Windows Installer.