Как я могу получить WIX, чтобы вызвать метод в монтаже .NET в рамках процесса установки?
Вопрос
Я мигрирую некоторые существующие продукты для использования Wix 3.5 (я использую интеграцию VSEive VS). Некоторые из предметов, которые я устанавливаю, необходимо зарегистрироваться в сторонних рамках. Требование заключается в том, что я должен позвонить в систему () реестра () в третьей стороне .NET Abstase, чтобы сообщить об этом наличии элементов, которые я устанавливающих. Он ожидает, что COM Progid.
Я не могу понять, как получить Wix, чтобы сделать это. Я подумал о создании двоичного пользовательского действия, но я не могу найти способ передать параметр (строку, содержащую прог -прогид) в это пользовательское действие. Я не хочу жестко кодировать это, потому что мне нужно, чтобы это было многоразовое код. Я не вижу способа сделать это декларативно, потому что функция Register () - это «черный ящик».
Человек Это крутая кривая обучения. Какой мой лучший подход здесь?
Решение
Посмотрите на фонд инструментов развертывания (DTF) для WIX. Существует файл dtf.chm с установкой Wix с большим количеством информации.
Предполагая, что ваш процесс установки - это что-то вроде
- Установка установки, входные параметры/прогид, проверка и т. Д.
- Начать фактическую установку файлов
- Методы регистрации вызовов
Вам понадобится два пользовательских действиях (игнорирование отката и удаления)
- Setupregistration.
- Дорегистрация
SetuPregistration должен быть немедленным пользовательским действием, выпущенным либо из пользовательского интерфейса, либо поздно в фазе установки. Он захватывает Progid и любые другие необходимые данные, использует объект TazexaDaDATA и присвоит, что для свойства имени «Doregistration» (Важно, имя свойства должно быть таким же, как и второе пользовательское действие)
Дорегистрация является отложенным пользовательским действием и должна быть запланирована в InstallexeCuteSecence, вероятно, после файлов установки, но это зависит. Он вытягивает свойство Session.CustomActionData и вытаскивает прог -прогид, а затем вызывает любой метод регистрации, который вам нужен.
Другие советы
Я использую своего рода то, что вы описали.
Я использую, чтобы вызвать настройки (события) при необходимости. Как и нажав кнопку, вы можете позвонить на метод, который будет работать для вас.
Вызов настраиваемого действия как:
<Custom Action="ActionName" After="InstallFinalize">CONDITION = "1"</Custom>
Или вызов пользовательского действия на основе конкретной кнопки нажмите:
<CustomAction Id="TestConnection" BinaryKey="SetupCustomActions" DllEntry="TestConnection" Execute="immediate" Return="check" />