В мастере решения для доступа поле кода продукта является ИДЕНТИФИКАТОРом GUID, который является основным идентификатором приложения или продукта.
-
Обновление может увеличить или уменьшить дерево компонентов компонентов, но оно не должно реорганизовать существующую иерархию компонентов и компонентов, описанных в таблицах Feature и FeatureComponents. Он может добавить новую функцию в существующее дерево компонентов компонентов. Если удаляется родительская функция, она также должна удалить все дочерние функции удаленного компонента.
-
Обновление может добавить новый компонент или новый или существующий компонент.
-
Обновление не должно изменять код компонента какого-либо компонента. Следовательно, небольшое или незначительное обновление никогда не должно изменять имя файла ключа компонента, так как для этого потребуется изменить код компонента.
-
Обновление не должно изменять имя .msi файла пакета установки. Вместо этого, так как он изменяет пакет, он должен изменить код пакета. Обратите внимание, что это означает, что обновление может изменять таблицы, пользовательские действия и диалоговые окна в файле .msi без изменения имени файла.
-
Обновление может добавлять, удалять или изменять файлы, разделы реестра или ярлыки компонентов, которые не используются двумя или более функциями. Если обновление изменяет файл с версиями, версия этого файла должна быть увеличена в таблице File. Если обновление удаляет ресурсы, оно также должно обновить таблицы RemoveFile и RemoveRegistry, чтобы удалить все неиспользуемые файлы, разделы реестра или ярлыки, которые уже были установлены.
-
Обновление компонента, совместно используемого двумя или более функциями, должно быть обратно совместимо со всеми приложениями и компонентами, которые используют этот компонент. Обновление может изменять ресурс общего компонента, например файлы, записи реестра и ярлыки, при условии обратной совместимости изменений. Не рекомендуется добавлять или удалять файлы, записи реестра или ярлыки из общего компонента.
-
Небольшое обновление поставляется в виде пакета установщика Windows. (Полный компакт-диск продукта обычно не предоставляется с небольшим обновлением.)
Код продукта необходимо изменить, если для обновления верно одно из следующих действий:
-
Должна быть возможна сосуществующая установка как исходных, так и обновленных продуктов в одной системе.
-
Имя файла .msi изменено.
-
Изменен код компонента существующего компонента.
-
Компонент удаляется из существующей функции.
-
Существующая функция была преобразована в дочерний элемент существующего компонента.
-
Существующая дочерняя функция удалена из родительской функции.
-
Компонент может быть добавлен в существующую функцию без необходимости изменения кода продукта.
Примечание: Добавление новой дочерней функции, состоящей полностью из новых компонентов, к существующей функции не требует изменения кода продукта.
Новые дочерние функции можно создать, включив msidbFeatureAttributesFollowParent и msidbFeatureAttributesUIDisallowAbsent в поле Атрибуты таблицы Компонентов. Если при дополнительном обновлении добавляются только новые дочерние функции, то для принудительной установки новых дочерних компонентов достаточно установить параметр REINSTALL=ALL.
Новая дочерняя функция может быть скрыта от пользователя. Чтобы синхронизировать состояние установки нового дочернего компонента с его родительским компонентом, задайте биты msidbFeatureAttributesFollowParent и msidbFeatureAttributesUIDisallowAbsent для дочернего компонента.