с помощью файлов элементов copyfile невозможно привязать их к пакету MSI

StackOverflow https://stackoverflow.com/questions/1802972

Вопрос

Я использую 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 и о том, как его можно редактировать, я рекомендую сначала немного поиграться с косатка и мсидб инструменты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top