Миграция состояний компонентов вручную во время обновления
У нас есть продукт, для которого дерево функций значительно изменилось между версиями, поэтому MigrateFeatures="yes"
вариант на UpgradeVersion
Элемент, кажется, не работает.
Как бы я мог вручную преобразовать старые функции в новые? Нужно ли мне настраиваемое действие, и если да, то как я могу сделать это оттуда?
1 ответ
Насколько я знаю, структура дерева элементов не имеет значения - она соответствует имени в таблице объектов, поэтому, если они все совпадают, вы все равно получите некоторую миграцию. Обратите внимание, что это имя, а не заголовок, так что все в порядке, если имя совпадает, но заголовок в пользовательском интерфейсе отличается. Так что это зависит от того, что именно изменилось, если это просто макет или многие значения имени тоже.
В противном случае вам потребуются настраиваемые действия для установки ADDLOCAL для установки списка функций из установленного списка, который вам нужно будет запросить с помощью MsiEnumFeatures, а затем MsiQueryFeatureState. Или код может находиться во внешнем модуле запуска, который находит установленные функции и затем запускает MSI с командной строкой функций ADDLOCAL, предположительно не предлагая диалоговое окно функций. Я думаю, что это единственный способ.