Мне просто интересно, что использовать для этой функции, поскольку MSIEXEC, вероятно, даже не знал бы, что это есть. Есть ли какой-нибудь код пользовательских действий, который мог бы получить к ним доступ, возможно?Зачем добавлять пользовательские таблицы в MSI?
ответ
Суть заключается в том, чтобы написать свои пользовательские действия, чтобы вести себя так же, как стандартные действия. Действие (действия) и таблица (таблицы) определяют шаблон, в котором действие выполняет работу, а таблица (таблицы) определяет выполняемую работу. Это является основой декларативного программирования, управляемого данными. Противоположность заключается в том, что вы плотно соединяете их вместе в императивном подходе.
Предлагаемый материал для чтения:
Как Крис Painter утверждает MSI файлы прозрачны в том смысле, что вы можете увидеть, что будет происходить во время установки на основе содержимого таблиц MSI. This is one of the key benefits of MSI that you can find described here. Пользовательские таблицы расширят эту встроенную прозрачность, включив в нее пользовательские действия, указанные в действиях, указанных в них. Они также позволяют повторно использовать код пользовательских действий, поскольку действия не жестко закодированы, но указаны в таблицах.
Во время работы в крупной корпорации, я написал пользовательский DLL действий, способных сделать несколько нестандартных задач, таких как MSI создавать локальных пользователей и групп, создают акций и набор пользовательских разрешений среди других вещей. Определив, что должно быть сделано в пользовательских таблицах, мы могли бы выполнить то, что нам нужно было сделать без жесткого кодирования в пользовательских действиях. После создания пользовательских действий для создания пользователя можно создать любого пользователя, указанного в пользовательской таблице.
Пользовательские таблицы определены в _Validation table, чтобы установить допустимые диапазоны значений и типы для каждого столбца в таблице. Также можно подключить пользовательские правила проверки ICE для обнаружения ошибок в пользовательских таблицах. Пользовательские действия, требующие разрешения каталогов, могут добавить внешний ключ из пользовательской таблицы в таблицу Directory, чтобы иметь возможность разрешить каталог установки. Вы также можете добавить внешние ключи к другим таблицам, включая другие пользовательские таблицы.
Вкратце пользовательские таблицы используются пользовательскими действиями и являются чрезвычайно эффективными, когда используются для обеспечения гибкости и повторного использования ваших пользовательских действий. Однако реализация является основным усилием. The WiX toolkit использует несколько пользовательских таблиц для выполнения нестандартных задач MSI, таких как установки IIS. Их исходный код является открытым исходным кодом и покажет вам, как писать пользовательские действия, которые подаются пользовательскими таблицами. Это включает в себя довольно много волосатых технологий MSI, таких как последовательность и передача значений от клиентского к серверному процессу (повышенные, отложенные пользовательские действия в режиме), но все это должно быть возможно «заимствовать» у WiX - или еще лучше, использовать собственный WiX готовые пользовательские действия.
Если у вас есть навыки для создания этого, я думаю, было бы очень полезно разделить ваше творение с сообществом WiS. Это также даст вам множество талантливых разработчиков, которые помогут вам отслеживать любые ошибки в вашем коде и реализации.
- 1. Зачем добавлять суффикс контроллера в угловые пользовательские контроллеры?
- 2. Зачем добавлять пользовательские JQuery имя плагина к области
- 3. Зачем мне добавлять мои пользовательские атрибуты с помощью «data-»?
- 4. Зачем мне добавлять состояние?
- 5. Codeigniter - Зачем добавлять в корзину?
- 6. Qt - Зачем добавлять '&' в строку?
- 7. Зачем добавлять претензии в OAuthAuthorizationServerProvider.GrantRefreshToken?
- 8. MSI Installer и пользовательские папки
- 9. Условия запуска MSI Пользовательские действия
- 10. JQuery Selectors Зачем добавлять пробел?
- 11. Зачем добавлять «_» перед списком параметров
- 12. Включение таблицы CustomAction в msi
- 13. Зачем добавлять ссылку на DLL?
- 14. Зачем создавать пользовательские исключения?
- 15. Зачем добавлять элементы не перетаскиваемые?
- 16. Зачем добавлять void до методов?
- 17. MvcFileUploader добавлять/редактировать пользовательские поля
- 18. Как добавлять пользовательские URL-адреса
- 19. Зачем добавлять несколько проектов в одно решение?
- 20. Зачем добавлять слова в сервлет, апплет, командлет?
- 21. Зачем добавлять xmlns = "" в атрибут узла?
- 22. Зачем кому-то добавлять ноль в __STDC_VERSION__?
- 23. Зачем добавлять «()» после закрытия корпуса в Голанге?
- 24. Зачем добавлять super() в класс Entity?
- 25. Зачем нужно добавлять const в аргумент?
- 26. Зачем добавлять параметры по умолчанию в C++?
- 27. Зачем добавлять в свой проект entitlements.plist?
- 28. Зачем добавлять CommandType в метод Query?
- 29. Зачем добавлять значки в файл info.plist?
- 30. Зачем нужно добавлять '!' в суффиксом кода
Ницца. И в C# тоже. – Patrick