Ошибка при получении свойства
Итак.. У меня есть этот CA
<CustomAction Id="InstallSetProp" Property="CustomActionData" Value="<some other data that's formatted exactly the same> /webconftmploc="[WEBCONFIGTMPLOC]"" />
Однако, когда этот CA вызывается, появляется сообщение с сообщением "Ошибка получения свойства", которое является поддельным, так как свойство правильно установлено и доступно позже. (И ничего не делает, кроме как испортить мои попытки полностью автоматизировать установку). Я запускаю.msi через загрузчик, который переключает /qr
чтобы помочь с этим.
Сообщение об ошибке не отображается, когда /webconftmploc="[WEBCONFIGTMPLOC]"
удаляется, для записи [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="[WEBCONFIGTMPLOC]"" />
Обратите внимание, что второе настраиваемое действие устанавливает свойство с тем же именем, что и отложенное настраиваемое действие: 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