No Assistente de Soluções de Acesso, o campo de código do produto é um GUID que é a identificação principal de uma aplicação ou produto.
-
A atualização pode aumentar ou reduzir a árvore de componentes de funcionalidades, mas não pode reorganizar a hierarquia existente de funcionalidades e componentes descrita pelas tabelas Funcionalidade e FuncionalidadeComponentes. Pode adicionar uma nova funcionalidade à árvore de componentes de funcionalidades existente. Se remover uma funcionalidade principal, também tem de remover todas as funcionalidades subordinadas da funcionalidade removida.
-
A atualização pode adicionar um novo componente ou uma funcionalidade nova ou existente.
-
A atualização não pode alterar o código do componente de qualquer componente. Consequentemente, uma pequena atualização ou atualização secundária nunca deve alterar o nome do ficheiro de chave de um componente, uma vez que tal exigiria a alteração do código do componente.
-
A atualização não pode alterar o nome do ficheiro .msi do pacote de instalação. Em vez disso, uma vez que modifica o pacote, deve alterar o código do pacote. Tenha em atenção que isto significa que a atualização pode alterar as tabelas, as ações personalizadas e as caixas de diálogo no ficheiro .msi sem alterar o nome do ficheiro.
-
A atualização pode adicionar, remover ou modificar os ficheiros, chaves de registo ou atalhos de componentes que não são partilhados por duas ou mais funcionalidades. Se a atualização modificar um ficheiro com versões, a versão desse ficheiro tem de ser incrementada na tabela Ficheiro. Se a atualização remover recursos, também deverá atualizar as tabelas RemoveFile e RemoveRegistry para remover quaisquer ficheiros, chaves de registo ou atalhos não utilizados que já tenham sido instalados.
-
A atualização de um componente partilhado por duas ou mais funcionalidades tem de ser retrocompatível com todas as aplicações e funcionalidades que utilizam o componente. A atualização pode modificar o recurso de um componente partilhado, como ficheiros, entradas de registo e atalhos, desde que as alterações sejam retrocompatíveis. Não é recomendado que a atualização adicione ou remova ficheiros, entradas de registo ou atalhos de um componente partilhado.
-
Uma pequena atualização é enviada como um pacote do Windows Installer. (Normalmente, um CD-ROM de produto completo não é fornecido com uma pequena atualização.)
O código do produto tem de ser alterado se alguma das seguintes opções for verdadeira para a atualização:
-
As instalações coexistindo de produtos originais e atualizados no mesmo sistema têm de ser possíveis.
-
O nome do ficheiro .msi foi alterado.
-
O código de componente de um componente existente foi alterado.
-
Um componente é removido de uma funcionalidade existente.
-
Uma funcionalidade existente foi transformada num subordinado de uma funcionalidade existente.
-
Uma funcionalidade subordinada existente foi removida da respetiva funcionalidade principal.
-
Um componente pode ser adicionado a uma funcionalidade existente sem precisar de uma alteração do código do produto.
Observação: A adição de uma nova funcionalidade subordinada, composta inteiramente por novos componentes, a uma funcionalidade existente não requer a alteração do código do produto.
As novas funcionalidades subordinadas podem ser criadas ao incluir msidbFeatureAttributesFollowParent e msidbFeatureAttributesUIDisallowAbsent no campo Atributos da tabela Funcionalidade. Se a atualização secundária só adicionar novas funcionalidades subordinadas, REINSTALL=ALL é suficiente para forçar a instalação das novas funcionalidades subordinadas.
Uma nova funcionalidade subordinada pode estar ocultada do utilizador. Para sincronizar o estado de instalação de uma nova funcionalidade subordinada com a respetiva funcionalidade principal, defina os bits msidbFeatureAttributesFollowParent e msidbFeatureAttributesUIDisallowAbsent para a funcionalidade subordinada.