Приспособление WiX не имеет значения для сеанса. Свойство ["CustomActionData"] - PullRequest
0 голосов
/ 10 июля 2019

Я должен передать значение своему настраиваемому действию в выпуске патча для своей функции. Я провел небольшое исследование и сделал следующее:

<CustomAction Id="CustomAction1" Property="customaction2" Value="Value1" />

<CustomAction Id="customaction2" BinaryKey="Binary.dll" 
                  DllEntry="Functionname" Impersonate="no"
                  Execute="immediate" Return="check" />

Я также обновил installExecuteSequence, как показано ниже:

<Custom Action='CustomAction1' After="InstallFinalize"><![CDATA[PATCH]]></Custom>
<Custom Action='customaction2' After="CustomAction1"><![CDATA[PATCH]]></Custom>

Я также добавил componentrefs в файл patch.wxs.

<CustomActionRef Id="CustomAction1.PackageGuid"/>
<CustomActionRef Id="customaction2.PackageGuid"/>

Чтобы получить доступ к значению этого параметра, я попробовал следующий код в своем имени «Functionname»:

var value = session.Property["CustomActionData"];

«Значение» пусто. Я сделал некоторую отладку и обнаружил, что получаю значение из кода ниже:

var value = session.Property["customaction2.PackageGuid"];

Я не видел ни одного примера, который бы также обращался к свойствам с помощью packageGuids. Я не уверен, почему первый подход (с использованием «CustomActionData») не работает для меня. Ребята, дайте мне знать, что мне не хватает?

Кроме того, есть ли вред при использовании с packageGuids? Если нет, я планирую продолжать в том же духе. Пожалуйста, дайте мне знать, если вы хотите, чтобы я попробовал любой другой st

...