Tabela Feature

A tabela Feature define a estrutura de árvore lógica dos recursos e contém as colunas mostradas na tabela a seguir.

Coluna Tipo Chave Nullable
Recurso Identificador S N
Feature_Parent Identificador N S
Título Texto N S
Descrição Texto N S
Exibir Inteiro N S
Nível Inteiro N N
Directory_ Identificador N S
Atributos Inteiro N N

 

Colunas

Feature

A chave primária usada para identificar um registro de recurso específico. O valor desse campo não deve exceder um tamanho máximo de 38 caracteres.

Feature_Parent

Uma chave opcional de um registro pai na mesma tabela.

A chave aponta para a coluna Feature. Se o recurso pai não estiver selecionado, esse recurso não será instalado. Um valor nulo nesse campo indica que o recurso não tem um pai e é um item raiz. A coluna Feature_Parent não deve ser igual à coluna Feature do mesmo registro.

Observação

A profundidade máxima de qualquer recurso é 16. O resultado será um erro 2701 se houver um recurso que exceda essa profundidade máxima.

 

Title

Uma cadeia curta de texto que identifica um recurso.

Essa cadeia de caracteres é listada como um item pelo controle SelectionTree da caixa de diálogo Selection.

Description

Uma cadeia de texto mais longa que descreve um recurso.

Essa cadeia de caracteres localizável é exibida pelo controle Text da caixa de diálogo Selection.

Display

O número desse campo especifica a ordem na qual o recurso deve ser exibido na interface do usuário.

O valor também determina se o recurso é exibido expandido ou recolhido inicialmente. Se o valor for nulo ou zero (0), o registro não será exibido.

  • Se o valor for ímpar, o nó do recurso será expandido inicialmente.
  • Se o valor for par, o nó do recurso será recolhido inicialmente.

Level

O nível de instalação inicial do recurso. O processamento da tabela Condition pode modificar o valor do nível.

Um nível de instalação igual a zero (0) desabilita o item e impede que ele seja exibido. Um recurso com um nível de instalação igual a zero (0) não é instalado durante nenhuma instalação, incluindo instalações administrativas. Para obter mais informações, confira as informações de "Nível de instalação" na seção Comentários deste tópico.

Directory_

A coluna Directory_ especifica o nome de um diretório que pode ser configurado por uma caixa de diálogo Selection.

Como esse campo é uma chave da tabela Directory, o diretório especificado precisa ser listado na primeira coluna da tabela Directory. Insira uma propriedade pública nessa coluna para tornar o diretório configurável e exibir um botão Procurar na caixa de diálogo Selection.

Attributes

A opção de execução remota para recursos que não estão instalados e para os quais nenhuma solicitação de estado de recurso é feita usando uma das propriedades a seguir.

Adicione os bits indicados ao valor total dessa coluna para incluir uma opção de execução remota.

  • Se esse campo estiver em branco, o valor usará zero (0) como padrão, msidbFeatureAttributesFavorLocal.
  • Se o nível de instalação do recurso for zero (0) ou superior ou igual ao nível de instalação atual, nenhuma alteração será feita no estado do recurso.
Nome Decimal Hexadecimal Descrição
msidbFeatureAttributesFavorLocal 0 0x0000 Os componentes desse recurso que não estão marcados para instalação por meio da fonte são instalados localmente. Um componente compartilhado por dois ou mais recursos, alguns dos quais são definidos como msidbFeatureAttributesFavorLocal e outros como msidbFeatureAttributesFavorSource, é instalado localmente. Os componentes marcados como msidbComponentAttributesSourceOnly na tabela Component são sempre executados por meio do CD/do servidor de origem. Os bits msidbFeatureAttributesFavorLocal e msidbFeatureAttributesFavorSource funcionam com os recursos não listados pela propriedade ADVERTISE.
msidbFeatureAttributesFavorSource 1 0x0001 Os componentes desse recurso não marcados para instalação local são instalados para execução por meio do CD-ROM ou do servidor de origem. Um componente compartilhado por dois ou mais recursos, alguns dos quais são definidos como msidbFeatureAttributesFavorLocal e outros como msidbFeatureAttributesFavorSource, é instalado para execução local. Os componentes marcados como msidbComponentAttributesLocalOnly na tabela Component são sempre instalados localmente. Os bits msidbFeatureAttributesFavorLocal e msidbFeatureAttributesFavorSource funcionam com os recursos não listados pela propriedade ADVERTISE.
msidbFeatureAttributesFollowParent 2 0x0002 Defina esse atributo e o estado do recurso será igual ao do pai do recurso. Você não poderá usar essa opção se o recurso estiver localizado na raiz de uma árvore de recursos. A omissão desse atributo e do estado do recurso é determinada de acordo com msidbFeatureAttributesDisallowAdvertise, msidbFeatureAttributesFavorLocal e msidbFeatureAttributesFavorSource.
Para garantir que o estado do recurso filho sempre siga o estado do pai, mesmo quando o filho e o pai estiverem inicialmente definidos como ausentes no controle SelectionTree, você precisa incluir msidbFeatureAttributesFollowParent e msidbFeatureAttributesUIDisallowAbsent nos atributos do recurso filho.
Observe que, se você definir msidbFeatureAttributesFollowParent sem definir msidbFeatureAttributesUIDisallowAbsent, o instalador não poderá forçar o recurso filho para fora do estado ausente. Nesse caso, o recurso filho corresponderá ao estado de instalação do pai somente se o filho for definido como algo diferente de ausente.
Defina msidbFeatureAttributesFollowParent e msidbFeatureAttributesUIDisallowAbsent para garantir que um recurso filho siga o estado do recurso pai.
msidbFeatureAttributesFavorAdvertise 4 0x0004 Defina esse atributo e o estado do recurso será Anunciar. Se o recurso estiver listado pela propriedade ADDDEFAULT, esse bit será ignorado e o estado do recurso será determinado de acordo com msidbFeatureAttributesFavorLocal e msidbFeatureAttributesFavorSource. A omissão desse atributo e do estado do recurso é determinada de acordo com msidbFeatureAttributesDisallowAdvertise, msidbFeatureAttributesFavorLocal e msidbFeatureAttributesFavorSource.
msidbFeatureAttributesDisallowAdvertise 8 0x0008 Observe que esse bit só funciona com os recursos listados pela propriedade ADVERTISE. Defina esse atributo para impedir que o recurso seja anunciado.
Defina esse atributo e, se o recurso listado não for pai nem filho, o recurso será instalado de acordo com msidbFeatureAttributesFavorLocal e msidbFeatureAttributesFavorSource.
Defina esse atributo para o pai de um recurso listado e o pai será instalado.
Defina esse atributo para o filho de um recurso listado e o estado do filho será Ausente.
Omita esse atributo e, se o recurso listado não for pai nem filho, o estado do recurso será Anunciar.
Omita esse atributo e, se o recurso listado for pai ou filho, o estado dos dois recursos será Anunciar.
msidbFeatureAttributesUIDisallowAbsent 16 0x0010 Defina esse atributo e a interface do usuário não exibirá uma opção para alterar o estado do recurso para Ausente. A definição do atributo força o recurso para o estado de instalação, independentemente de o recurso estar visível na interface do usuário. Omita esse atributo e a interface do usuário exibirá uma opção para alterar o estado do recurso para Ausente.
Defina msidbFeatureAttributesFollowParent e msidbFeatureAttributesUIDisallowAbsent para garantir que um recurso filho siga o estado do recurso pai.
A definição desse atributo afeta a interface do usuário e força o recurso para o estado de instalação, independentemente de o recurso estar visível na interface do usuário.
msidbFeatureAttributesNoUnsupportedAdvertise 32 0x0020 Defina esse atributo e o anúncio será desabilitado para o recurso se o shell do sistema operacional não der suporte aos descritores do Windows Installer. Omita esse atributo e o anúncio não será desabilitado.

 

Alguns atributos são exclusivos uns dos outros. A tentativa de definir esses atributos juntos no mesmo recurso faz com que o pacote de instalação não seja aprovado na Validação de Pacote.

  • Não use msidbFeatureAttributesFavorAdvertise com msidbFeatureAttributesDisallowAdvertise.
  • Não use msidbFeatureAttributesNoUnsupportedAdvertise com msidbFeatureAttributesDisallowAdvertise juntos.
  • Não use msidbFeatureAttributesFollowParent com msidbFeatureAttributesFavorSource.
  • Observe que os valores msidbFeatureAttributesFollowParent e msidbFeatureAttributesFavorLocal são mutuamente exclusivos. Se o valor msidbFeatureAttributesFollowParent for usado, o valor msidbFeatureAttributesFavorLocal será considerado como não existente.

Observe que, se um recurso filho for instalado, o recurso pai também será instalado. Se um recurso pai for instalado, o recurso filho não será necessariamente instalado, a menos que os atributos msidbFeatureAttributesFollowParent e msidbFeatureAttributesUIDisallowAbsent estejam definidos. Essa relação hierárquica da instalação de recursos pai e filho também é usada para instalações de GUI e para instalações que usam as propriedades de linha de comando.

Comentários

Várias outras colunas temporárias são adicionadas a essa tabela quando ela é carregada na memória para cálculos usados pela avaliação de custos e pela seleção de interface do usuário.

Um componente pode ser compartilhado entre dois ou mais recursos ou aplicativos. Se dois ou mais recursos se referirem ao mesmo componente, esse componente será selecionado para instalação se um dos recursos associados for selecionado. Isso também pode ser o motivo pelo qual os recursos filho não são desinstalados quando um recurso pai é removido. Se o recurso filho consistir em componentes necessários para outros recursos ou aplicativos, o Windows Installer não removerá o recurso filho.

Para obter mais informações, confira Como controlar os estados de seleção de recursos.

Nível de instalação:

  • Para qualquer instalação, há um nível de instalação definido, que é um valor integral de 1 a 32.767. O valor inicial é determinado pela propriedade INSTALLLEVEL, que é definida na tabela Property.
  • Um recurso só será instalado se o valor do nível de recurso for inferior ou igual ao nível de instalação atual. A interface do usuário pode ser criada para que, quando a instalação for inicializada, o Installer permita que o usuário modifique o nível de instalação de qualquer recurso na Tabela Feature. Por exemplo, um autor pode definir valores de nível de instalação que representam opções de instalação específicas, como Personalizada, Típica ou Mínima, e, em seguida, criar uma caixa de diálogo que usa SetInstallLevel ControlEvents para permitir que o usuário selecione um desses estados.
  • Dependendo do estado selecionado pelo usuário, a caixa de diálogo define a propriedade de nível de instalação como o valor correspondente. Se o autor atribuir um nível 100 a Típica e o usuário selecionar Típica, somente os recursos com um nível 100 ou menos serão instalados. Além disso, a opção Personalizada pode levar a outra caixa de diálogo que contém um controle SelectionTree. O controle SelectionTree permite que o usuário altere individualmente se cada recurso é instalado.

Validação

ICE03
ICE06
ICE10
ICE14
ICE21
ICE32
ICE41
ICE45
ICE47
ICE50
ICE57
ICE59
ICE62
ICE67
ICE79
ICE86
ICE94