После более подробного изучения пользовательских действий, я думаю, я все понял.Я добавил тег в файл .wxs, чтобы определить, где находится настраиваемое действие.Затем я сослался на идентификатор двоичного тега в CustomAction.Наконец, я добавил пользовательский тег в раздел InstallExecuteSequence, который ссылался на тег CustomAction по идентификатору.
Последний упомянутый выше конечный пользовательский тег должен идти в раздел InstallUISequence, а не в раздел InstallExecuteSequence, поскольку пользовательское действие должновызываться до отображения диалогового окна.
Что касается реализации самого пользовательского действия, я добавил в решение новый проект библиотеки пользовательских действий C #.Там я реализовал метод, украшенный атрибутом [CustomAction].Этот метод использует значения свойств, хранящиеся в объекте Session, переданные методу в качестве параметра, и определяет путь к исполняемому файлу текущей версии.Затем он выполняет работу, необходимую для поиска значений в файле конфигурации программы, которые необходимо сохранить в разных версиях, и записывает их в другие свойства для сценария обновления.