еще раз я застрял в проблеме, которую, вероятно, легко решить.
Я хочу расширить настройки, созданные с помощью WiX, чтобы внести изменения в файл конфигурации установленной программы. Для этого я создал CustomAction . Чтобы иметь возможность изменить файл конфигурации, мне нужно знать (установить) его местоположение в моей CustomAction . Поэтому я пытаюсь передать INSTALLLOCATION и Имя файла на мой CustomAction . В этом и заключается проблема: CustomActionData -атрибут всегда пуст, и установка выдает исключение.
My CustomAction - это файл C # 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.
).
Вот как я пытаюсь передать свойства из моего скрипта установки в мое настраиваемое действие:
<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 в <Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>
. CustomActionData всегда равен нулю.
Я проверяю это с помощью: session.CustomActionData.Count
Еще раз я очень благодарен за любую помощь или подсказки, где я сделал что-то не так.