Миграция состояний компонентов вручную во время обновления

У нас есть продукт, для которого дерево функций значительно изменилось между версиями, поэтому MigrateFeatures="yes" вариант на UpgradeVersion Элемент, кажется, не работает.

Как бы я мог вручную преобразовать старые функции в новые? Нужно ли мне настраиваемое действие, и если да, то как я могу сделать это оттуда?

1 ответ

Решение

Насколько я знаю, структура дерева элементов не имеет значения - она ​​соответствует имени в таблице объектов, поэтому, если они все совпадают, вы все равно получите некоторую миграцию. Обратите внимание, что это имя, а не заголовок, так что все в порядке, если имя совпадает, но заголовок в пользовательском интерфейсе отличается. Так что это зависит от того, что именно изменилось, если это просто макет или многие значения имени тоже.

В противном случае вам потребуются настраиваемые действия для установки ADDLOCAL для установки списка функций из установленного списка, который вам нужно будет запросить с помощью MsiEnumFeatures, а затем MsiQueryFeatureState. Или код может находиться во внешнем модуле запуска, который находит установленные функции и затем запускает MSI с командной строкой функций ADDLOCAL, предположительно не предлагая диалоговое окно функций. Я думаю, что это единственный способ.

Другие вопросы по тегам