Ошибка при получении свойства

Итак.. У меня есть этот CA

<CustomAction Id="InstallSetProp" Property="CustomActionData" Value="<some other data that's formatted exactly the same> /webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;" />

Однако, когда этот CA вызывается, появляется сообщение с сообщением "Ошибка получения свойства", которое является поддельным, так как свойство правильно установлено и доступно позже. (И ничего не делает, кроме как испортить мои попытки полностью автоматизировать установку). Я запускаю.msi через загрузчик, который переключает /qr чтобы помочь с этим.

Сообщение об ошибке не отображается, когда /webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot; удаляется, для записи [WEBCONFIGTMPLOC] это либо абсолютный путь к файлу, либо "Not Set", и мне интересно, есть ли какая-либо особая причина, по которой такое поведение может возникнуть.

Тем не менее, я гораздо больше заинтересован в любом возможном способе подавления или исправления этого действия, конечно.

1 ответ

Решение

Тот CustomAction только устанавливает свойство. Невозможно показать сообщение об ошибке. Если какое-либо из свойств не было определено, они просто преобразуются в пустые. Что-то еще должно показывать сообщение об ошибке.

Тем не менее, похоже, что вы пытаетесь передать данные отложенному настраиваемому действию из-за использования специально названного CustomActionData, Это не совсем способ использовать CustomActionData хоть. Вместо этого Property атрибут должен быть установлен в Id из CustomAction что вы тоже хотите передать данные. Скажем, пользовательское действие, которое использует это значение свойства, выглядит примерно так:

<CustomAction Id='MyDeferredCustomAction' Execute='deferred' ... />

Чтобы передать строку, которую вы пытаетесь отправить, вы можете написать:

<CustomAction Id="InstallSetProp"
              Property="MyDeferredCustomAction"
              Value="<some other data that's formatted exactly the same> /webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;" />

Обратите внимание, что второе настраиваемое действие устанавливает свойство с тем же именем, что и отложенное настраиваемое действие: MyDeferredCustomAction, MyDeferredCustomAction может получить доступ к значению <some other data that's formatted exactly the same> /webconftmploc="value_of_WEBCONFIGIMPLOC_goes_here" через волшебный CustomActionData имущество. Вы можете узнать больше об этом здесь: http://msdn.microsoft.com/en-US/library/2w2fhwzz(v=VS.80).aspx

Другие вопросы по тегам