с помощью файлов элемента copyfile нельзя связать в MSI-пакет - PullRequest
1 голос
/ 26 ноября 2009

Я использую wix 3.0. У меня есть имя папки «images». Поэтому я хочу скопировать все файлы из изображений в MSI-пакет. Когда я копирую весь файл и устанавливаю MSI на другой компьютер, он не привязывается изображений. И когда я использую простой элемент File, тогда файлы связываются с пакетом MSI. так что мне делать,

Ответить мне в ближайшее время

Благодарю вас Самир

1 Ответ

1 голос
/ 26 ноября 2009

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

...