Alterando o código do produto
O código do produto é um GUID, que é a principal identificação de um aplicativo ou produto. Confira Códigos do produto.
Uma atualização que atende às seguintes diretrizes, geralmente não requer uma alteração do código do produto e pode ser tratada como uma pequena atualização ou, se a versão for alterada, como uma atualização secundária:
- A atualização pode ampliar ou reduzir a árvore de componentes de recursos, mas não deve reorganizar a hierarquia existente de recursos e componentes descritos pelas tabelas Feature e FeatureComponents. Ela pode adicionar um novo recurso à árvore de componentes de recursos existente. Se ela remover um recurso pai, também deverá remover todos os recursos filho do recurso removido.
- A atualização pode adicionar um novo componente a um recurso novo ou existente.
- A atualização não deve alterar o código do componente de nenhum componente. Consequentemente, uma pequena atualização ou atualização secundária nunca deve alterar o nome do arquivo de chave de um componente, pois isso exigiria a alteração do código do componente.
- A atualização não deve alterar o nome do arquivo .msi do pacote de instalação. Em vez disso, como ele modifica o pacote, ele deve alterar o código do pacote. Observe que isso significa que a atualização pode alterar as tabelas, as ações personalizadas e as caixas de diálogo no arquivo .msi sem alterar o nome do arquivo.
- A atualização pode adicionar, remover ou modificar os arquivos, chaves do registro ou atalhos de componentes que não são compartilhados por dois ou mais recursos. Se a atualização modificar um arquivo com versão, a versão desse arquivo deverá ser incrementada na tabela File. Se a atualização remover recursos, ela também deverá atualizar as tabelas RemoveFile e RemoveRegistry para remover arquivos não utilizados, chaves do registro ou atalhos que já foram instalados.
- A atualização de um componente compartilhado por dois ou mais recursos deve ser compatível com versões anteriores com todos os aplicativos e recursos que usam o componente. A atualização pode modificar o recurso de um componente compartilhado, como arquivos, entradas de registro e atalhos, desde que as alterações sejam compatíveis com versões anteriores. Não é recomendável que a atualização adicione ou remova arquivos, entradas do registro ou atalhos de um componente compartilhado.
- Uma pequena atualização é enviada como um pacote de patch do Windows Installer. (Geralmente, um CD-ROM completo do produto não é fornecido com uma pequena atualização.)
O código do produto deverá ser alterado se qualquer um dos seguintes itens for verdadeiro para a atualização:
- Instalações de produtos originais e atualizados devem poder coexistir no mesmo sistema.
- O nome do arquivo .msi foi alterado.
- O código de componente de um componente existente foi alterado.
- Um componente é removido de um recurso existente.
- Um recurso existente foi transformado em um filho de um recurso existente.
- Um recurso filho existente foi removido de seu recurso pai.
Observe que adicionar um novo recurso filho, composto inteiramente por novos componentes, a um recurso existente não requer alterar o código do produto.
Novos recursos filho podem ser criados pela inclusão de msidbFeatureAttributesFollowParent e msidbFeatureAttributesUIDisallowAbsent no campo Attributes da tabela Feature. Se a atualização secundária adicionar apenas novos recursos filho, REINSTALL=ALL será suficiente para forçar a instalação dos novos recursos filho. Para obter mais informações, confira Como controlar os estados de seleção de recursos.
Um novo recurso filho pode estar oculto do usuário. Para sincronizar o estado de instalação de um novo recurso filho com seu recurso pai, defina os bits msidbFeatureAttributesFollowParent e msidbFeatureAttributesUIDisallowAbsent para o recurso filho.
Tópicos relacionados