Подтвердить что ты не робот

WiX CustomActionData пуст в названии CustomAction

еще раз я застрял в проблеме, что, вероятно, легко решить.
Я хочу расширить настройки, созданные с помощью WiX, для внесения изменений в файл конфигурации установленной программы. Для этого я создал CustomAction. Чтобы изменить конфигурационный файл, мне нужно знать его (install-) в моем CustomAction. Поэтому я пытаюсь передать INSTALLLOCATION и имя файла в CustomAction. Здесь лежит проблема: CustomActionData​​strong > -Атрибут всегда пуст, и установка генерирует исключение.

My CustomAction - это DLL файл С#: DemoDatumErzeugen.CA.dll. Он содержит метод DatumEintragen, который изменяет файл конфигурации. Я пытаюсь получить доступ к данным следующим образом:

string path = session.CustomActionData["LOCATION"];

Здесь вызывается исключение. Я получил сообщение об ошибке в Германии, но он говорит что-то по строкам: The supplied key was not found in the dictionary (Der angegebene Schlüssel war nicht im Wörterbuch angegeben.).

Вот как я пытаюсь передать свойства из моей setup- script в свое настраиваемое действие:

<Binary Id="DemoDatumEinrichtenCA" SourceFile="DemoDatumErzeugen.CA.dll"/>

<CustomAction Id="DemoDatum.SetProperty" Return="check" Property="DatumEintragen" Value="LOCATION=[INSTALLLOCATION];NAME=StrategieplanConfig.xml;"/>
<CustomAction Id="DemoDatum" BinaryKey="DemoDatumEinrichtenCA" DllEntry="DatumEintragen" Execute="deferred" Return="check" HideTarget="no"/>

<InstallExecuteSequence>
  <Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>
  <Custom Action="DemoDatum" After="DemoDatum.SetProperty"/>
</InstallExecuteSequence>

Я видел много примеров, где это было сделано так же или, по крайней мере, очень похоже. Я пробовал много вещей, но ничего не помогает, как изменить значение After in <Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>. CustomActionData всегда равен нулю.
Я проверяю его: session.CustomActionData.Count
Еще раз благодарю за любую помощь или подсказки, где я сделал что-то не так.

4b9b3361

Ответ 1

Значение атрибута Property DemoDatum.SetProperty должно быть равно значению атрибута Id отложенного действия. Итак, измените имя свойства на DemoDatum или измените Id отложенного действия на DatumEintragen.