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