Невозможно передать параметры в MSI через Msiexec через командную строку - PullRequest
0 голосов
/ 20 декабря 2010

Hii ppl Я пытаюсь передать параметр через msiexec в командной строке.Проблема в том, что если параметр передается правильно, значение не отражается в OnBeforeInstallEvent.Поэтому msi не устанавливается.

OnBeforeInstall написан на C # .net framework 2.09 (VS 2005), а вызов события приведен ниже,

string serverName = Context.Parameters ["SERVERNAME"].

Например, в настраиваемом действии параметр правильно объявлен как / SERVERNAME = [SERVERNAME] для доступа к имени сервера.

При установке в обычном режиме пользовательского интерфейса не возникает проблемКогда я передаю параметр через Msiexec, значение не отражается в событии OnBeforeInstall.Я даже попытался зарегистрировать поток установки через MSIEXEC / Log, значение изменяется в журнале (показано ниже)

ИЗМЕНЕНИЕ СОБСТВЕННОСТИ: Добавление свойства SERVERNAME.Его значение равно 'machine1'.

Я дал ниже команду msiexec, которую я использую для передачи значений,

msiexec.exe / i "C: \ Server.msi" / l * v"C: \ Server.txt" ALLUSERS = 1 REBOOT = ReallySupress TARGETDIR = "C: \ Program Files \ Server" SERVERNAME = "machine1" PORT = "9090"

, но при достижении ONBeforeInstall значение пусто (показано ниже).

Ошибка 1001. Исключительная ситуация в обработчике события OnBeforeInstall Server.ServicesInstaller.-> Установка не может быть продолжена, так как некоторые параметры установки не указаны.Дополнительная информация Имя сервера не может быть пустым.ОТЛАДКА: Ошибка 2769: пользовательское действие _542E7AC5_7403_434A_874B_DE2872A4848D.install не закрывало 1 MSIHANDLE.Установщик обнаружил непредвиденную ошибку при установке этого пакета.Это может указывать на проблему с этим пакетом.Код ошибки - 2769.

Более того, операционная система - Win 2003.Я даже попробовал Msiexec в Win XP.SERVERNAME - это имя свойства одного из текстовых полей в диалоговом окне TextBox2 комплекта установки.При просмотре журнала установки событие изменения свойства распознает изменение значения для SERVERNAME, но становится недействительным при достижении события OnBeforeInstall.

Как уже говорилось ранее, он отлично работает в обычном режиме пользовательского интерфейса.Я даже пытался изменить таблицу свойств Server.msi через ORCA (как показано ниже).

Таблица: Ряд свойств: Свойство SecureCustomProperties -> SecureCustomProperties Изменено значение с NEWERPRODUCTFOUND на NEWERPRODUCTFOUND; SERVERNAME

По-прежнему нет

Пожалуйста, помогите.

Большое спасибо

byfour

1 Ответ

0 голосов
/ 21 декабря 2010

Hii PPl, Я сам исправил это, я удалил строки, такие как CustomTextA_SetProperty_EDIT1 из таблицы привязки и их ссылки в других таблицах, используя ORCA, и это решило проблему.

Большое спасибо,

byfour

...