msiexec не передает параметры пользовательскому действию

У меня есть пользовательское действие в установщике MSI, который вносит некоторые изменения в некоторый конфигурационный файл. мое требование состоит в том, чтобы выполнить установку в "тихом" режиме, таким образом, я использую msiexec. Вот команда:

msiexec /i myInstaller.msi /l* out.txt myContextParameter=value1

myContextParameter никогда не передается пользовательскому действию поэтому, когда я делаю context.Parameters["myContextParameter"] Я получаю a null значение.

Когда я выполняю свой MSI в режиме UI, параметр передается правильно. Я также удостоверился, что имя свойства правильно определяется в CustomActionData.

12
задан BartoszKP 5 January 2014 в 14:13
поделиться

2 ответа

Можете ли вы использовать API установщика через Java?

API является единственным поддерживаемым способом манипулирования файлами MSI. Если вы используете .NET или WIX, вы либо используете эти функции или функции, которые вызывают их.

Формат двоичного файла MSI недокументирован и может измениться между версиями, поэтому пытаясь прочитать / запись бинарного формата напрямую, просто собирается дать вам настоящую головную боль.

-121--5086225-

Свойства являются «частными» и не будут переданы в командной строке.

AllCaps Свойства являются «публичными» и могут быть переданы в командной строке.

Однако только безопасные свойства пропускаются на «сервер» (I.E. сохраняется во время возвышения UAC). См. Документация по свойствам SecurCustomProperties .

Предполагая, что вы пытаетесь получить доступ к этому свойству в отложенном CA, это происходит на стороне сервера, поэтому вам нужно использовать публичное свойство (все CAPS), которые также помечены как безопасные.

Вот пример с использованием WIX:

<Property Id="MYPUBLICPROPERTY" Secure="yes" Value="{}">
7
ответ дан 2 December 2019 в 19:54
поделиться

Если вы хотите иметь возможность пропускать параметры из-за снаружи, вам необходимо использовать Allcaps в именах ваших параметров. Я знаю, что это звучит странно, но попробуй! : -)

1
ответ дан 2 December 2019 в 19:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: