Очевидно, вы хотите создать приложение, которое может генерировать установщик заставки, который включает в себя несколько файлов изображений, выбранных пользователем & mdash; своего рода специализированное приложение InstallShield только для создания установщиков заставок.
Я бы сначала создал шаблон MSI-файла (с wix
или что-то еще), что делает большую часть
работа. Вы не знаете, какие файлы пользователь выберет позже, поэтому добавьте компонент-заполнитель с идентификатором «UserSelectedFiles». Распределите это
Шаблон MSI-файла с вашим приложением.
Затем, когда пользователь хочет сгенерировать
новый установщик, начните с копирования
шаблон. Отредактируйте скопированный файл MSI, чтобы он также устанавливал выбранные пользователем файлы. Вы можете сделать это с помощью классов .NET
вы можете найти в разделе «развертывание
"Основы инструментов" API. Это набор сборок, которые поставляются с wix; взгляните на
C:\program files\Windows Installer
XML v3\sdk
.
Я использовал DTF API только для некоторых простых вещей, таких как этот пример, который подсчитывает записи таблицы файлов в MSI:
var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);
Ваш случай будет немного сложнее. Вам, вероятно, придется
- создать CAB-архив, содержащий
файлы изображений с классами, которые вы
найти в
Microsoft.Deployment.Compression.Cab
Пространство имен.
- объединить архив CAB в MSI
с
Database.Merge
- Добавление новых записей в таблицу файлов
MSI
- Измените код продукта на что-то уникальное для каждого сгенерированного MSI
- 1026 * прочее *
Чтобы получить представление о содержимом файла MSI и о том, как его можно редактировать, я рекомендую сначала немного поиграться с инструментами orca и msidb .