Использование UpgradeCode
UpgradeCode в основном используется для поддержки основных обновлений, хотя небольшие и незначительные обновления могут использовать UpgradeCode для проверки продукта. Во время основных обновлений действия FindRelatedProducts, MigrateFeatureStates и RemoveExistingProducts обнаруживают, переносят и удаляют предыдущие версии продукта. Действие FindRelatedProducts выполняет поиск продуктов, используя условия на основе UpgradeCode, ProductLanguage и ProductVersion. Эти критерии указаны в таблице Upgrade .
Учитывая критерии, используемые действием FindRelatedProducts , UpgradeCode может быть одинаковым для разных языков и версий одного продукта. Это связано с тем, что таблица Upgrade позволяет различать продукты по версиям и языкам.
В разных версиях одного и того же продукта может никогда не потребоваться изменять UpgradeCode. Каждый автономный продукт должен иметь собственный Код обновления. Набор продуктов также должен иметь собственный Код обновления. Это позволит набору обновить предыдущие версии набора или автономных продуктов, используя несколько строк в таблице Upgrade.
Следующие два сценария иллюстрируют использование UpgradeCode.
- Продукты A и B поставлялись с одинаковыми ProductLanguage, ProductVersion и UpgradeCode. У продуктов A и B разные коды продукта. Так как продуктам был назначен один и тот же UpgradeCode, невозможно создать таблицу Upgrade , чтобы отличить старую версию продукта А от предыдущей версии продукта B. В этом случае вы не сможете установить обновление продукта A, которое игнорирует продукт B. Так как это были разные продукты, каждому из них должен быть назначен отдельный Код обновления.
- Версия продукта А на английском и французском языках поставлялась с одинаковыми версиями ProductVersion и UpgradeCode. В версиях Product A на английском и французском языках имеются разные ProductLanguages и ProductCodes. Несмотря на то, что для версий на английском и французском языках используется один и тот же Код Обновления, можно создать таблицу Upgrade таким образом, чтобы обнаруживать и обновлять только более раннюю версию на английском языке, а старую версию на французском языке игнорировать. Версии продукта на разных языках могут использовать один и тот же Код обновления.