Я написал сообщение в блоге около 11 лет назад, в котором описывается это:
http://blog.iswix.com/2008/07/dynamic-windows-installer-ui.html
В основном MSI имеет понятие временных данных, как обсуждалось здесь.
https://docs.microsoft.com/en-us/windows/desktop/msi/sql-syntax
Я не проверял это, но похоже, что UPDATE не поддерживает TEMPORARY, но INSERT INTO поддерживает.
Идея состоит в том, что вы создаете свой MSI и помещаете шаблон RTF в элемент управления ScrollableText. Определите условие элемента управления, чтобы оно было невидимым, если установлено свойство.
Затем в настраиваемом действии, запланированном перед WelcomeDlg, вы загружаете RTF-замену из веб-службы и динамически определяете элемент управления в диалоговом окне с RTF-заменой и условием condtrol, чтобы этот элемент управления отображался, если установлено свойство. Наконец, установите свойство для переопределения одного элемента управления другим.
Но, честно говоря ... Я не уверен, что потрудился бы сделать это. Во-первых, есть способы использования HyperLink для отключения EULA от установщика и / или удаления EULA из установщика, чтобы приложение показывало его при первом запуске, как предложил Stain.
Наконец, существуют такие соображения, как автоматическая установка и автономная установка, которые вызывают другие проблемы с этой конструкцией.
Тем не менее ... если вы действительно хотите это сделать ... вот как это будет сделано.