No Assistente de Soluções do Pacote de Acesso, o campo UpgradeCode é utilizado principalmente para suportar atualizações principais, embora as atualizações pequenas e secundárias possam utilizar o UpgradeCode para validação do produto. Durante as atualizações principais, as ações FindRelatedProducts, MigrateFeatureStates e RemoveExistingProducts detetam , migram e removem versões anteriores do produto. A ação FindRelatedProducts procura produtos com base nos critérios UpgradeCode, ProductLanguage e ProductVersion. Estes critérios são especificados na tabela Atualizar.
Tendo em conta os critérios utilizados pela ação FindRelatedProducts , o UpgradeCode pode ser o mesmo para diferentes idiomas e versões de um único produto. Isto deve-se ao facto de a tabela Atualizar permitir a diferenciação entre produtos ao longo das linhas de versão e idioma.
Em diferentes versões do mesmo produto, poderá nunca ter de alterar o UpgradeCode. Cada produto autónomo deve ter o seu próprio UpgradeCode. Um conjunto de produtos também deve ter o seu próprio UpgradeCode. Ao fazê-lo, o conjunto de aplicações pode atualizar versões anteriores do conjunto de aplicações ou produtos autónomos ao utilizar várias linhas na tabela Atualizar.
Os dois cenários seguintes ilustram a utilização do UpgradeCode.
-
O Produto A e o Produto B foram enviados com o mesmo ProductLanguage, ProductVersion e UpgradeCode. O Produto A e o Produto B têm Códigos de Produto diferentes. Uma vez que os produtos foram atribuídos ao mesmo UpgradeCode, a tabela Atualizar não pode ser criada para diferenciar a versão mais antiga do Produto A da versão mais antiga do Produto B. Neste caso, não poderá ter uma instalação de atualização do Produto A que ignore o Produto B. Uma vez que estes eram produtos diferentes, cada um deles deveria ter-lhes sido atribuído um UpgradeCode diferente.
-
As versões em inglês e francês do Produto A foram enviadas com os mesmos ProductVersion e UpgradeCode. As versões em inglês e francês do Produto A têm productLanguages e Códigos deProduto diferentes. Embora as versões de idioma inglês e francês partilhem o mesmo UpgradeCode, é possível criar a tabela Atualizar de modo a que apenas a versão mais antiga do idioma inglês seja detetada e atualizada e a versão francesa mais antiga seja ignorada. Diferentes versões de idioma de um produto podem utilizar o mesmo UpgradeCode.