No Assistente de Solução de Pacote de Acesso, o campo UpgradeCode é usado principalmente para dar suporte a atualizações importantes, embora atualizações pequenas e pequenas possam usar o UpgradeCode para validação do produto. Durante as principais atualizações, as ações FindRelatedProducts, MigrateFeatureStates e RemoveExistingProducts detectam, migram e removem versões anteriores do produto. A ação FindRelatedProducts procura produtos usando critérios baseados no UpgradeCode, ProductLanguage e ProductVersion. Esses critérios são especificados na tabela Atualizar.
Dado os critérios usados pela ação FindRelatedProducts , o UpgradeCode pode ser o mesmo para idiomas e versões diferentes de um único produto. Isso ocorre porque a tabela Atualização permite diferenciação entre produtos ao longo das linhas de versão e idioma.
Em versões diferentes do mesmo produto, talvez você nunca precise alterar o UpgradeCode. Cada produto autônomo deve ter seu próprio UpgradeCode. Um pacote de produtos também deve ter seu próprio UpgradeCode. Isso permite que o pacote atualize versões anteriores do pacote ou produtos autônomos usando várias linhas na tabela Atualizar.
Os dois cenários a seguir ilustram o uso do UpgradeCode.
-
O Produto A e o Produto B foram enviados com os mesmos ProductLanguage, ProductVersion e UpgradeCode. O Produto A e o Produto B têm ProductCodes diferentes. Como os produtos receberam o mesmo UpgradeCode, a tabela Upgrade não pode ser criada para diferenciar a versão mais antiga do Produto A da versão mais antiga do Produto B. Nesse caso, você não poderá ter uma instalação de atualização do Produto A que ignore o Produto B. Como eram produtos diferentes, cada um deles deveria ter recebido um UpgradeCode diferente.
-
As versões em inglês e francês do Produto A foram enviadas com o mesmo ProductVersion e UpgradeCode. As versões em inglês e francês do Produto A têm ProductLanguages e ProductCodes diferentes. Embora as versões em inglês e francês compartilhem o mesmo UpgradeCode, é possível criar a tabela Atualizar de modo que apenas a versão em inglês mais antiga seja detectada e atualizada e a versão mais antiga em francês ignorada. Versões de idioma diferentes de um produto podem usar o mesmo UpgradeCode.