Как передать строку с символом «;» из CustomActionData в CustomAction с помощью WiX?

#wix #custom-action

#wix #пользовательское действие

Вопрос:

Я отложил CustomAction в C # и еще один, чтобы передать ему некоторые свойства.

 <CustomAction Id="CustomAction1"
              Property="CustomAction2"
              Value="EncryptedString=[ENCRYPTEDSTRING]"
/>
  

Однако, если свойство содержит символ «;», то

 string encString=session.CustomActionData["EncryptedString"];
  

выводит только часть перед «;», потому что этот символ рассматривается как разделитель между свойствами.
Есть ли какой-либо обходной путь для передачи строк, содержащих «;» ?

например

 ENCRYPTEDSTRING="12;3474dsfgee"
  

и вывод

 encString="12"
  

Ответ №1:

Вы не можете использовать CustomActionData DTF; предполагается, что элементы пользовательского действия разделены точками с запятой. Вместо этого возьмите CustomActionData напрямую и не беспокойтесь о EncryptedString= префиксе.

Комментарии:

1. спасибо за ваш ответ, но как я могу получить CustomActionData из моего отложенного пользовательского действия?

2. Используйте индексатор сеанса: session["CustomActionData"]

Ответ №2:

Я просто добавлю в качестве ответа, чтобы получить правильные ссылки. Это может быть полезно для реализации того, что предлагает Боб Арнсон: