с помощью файлов элементов copyfile невозможно привязать их к пакету MSI
-
05-07-2019 - |
Вопрос
Я использую Wix 3.0. У меня есть имя папки «images». Поэтому я хочу скопировать все файлы из изображений в пакет MSI. Когда я копирую все файлы и устанавливаю MSI на другой компьютер, изображения не привязываются.И когда я использую простой элемент файла, файлы привязываются к пакету MSI.И что же мне делать,
Ответь мне скорее
Благодарю вас Самир
Решение
Очевидно, вы хотите создать приложение, которое может генерировать установщик заставок, включающий в себя ряд файлов изображений, выбранных пользователем — своего рода специализированное приложение 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);
Ваш случай будет немного сложнее.Вам, вероятно, придется
- генерировать архив кабины, который содержит файлы изображений с классами, которые вы найдете в
Microsoft.Deployment.Compression.Cab
пространство имен. - объединить архив кабины в MSI с
Database.Merge
- Добавить новые записи в таблицу файлов MSI
- Измените код продукта на что-то уникальное для каждого сгенерированного MSI.
- и так далее
Чтобы получить представление о содержимом файла MSI и о том, как его можно редактировать, я рекомендую сначала немного поиграться с косатка и мсидб инструменты.