Здравствуйте, Ignoramus, Вы писали:
I>О! Это уже близко. Но при этом нужно писать внешнюю по отношению к базе MSI программу (custom action). А есть какой-нибудь эквивалент внутри самой базы? Типа standard action или property?
I>Кстати, по соседству заметил MsiGetFeatureCost. Меня это тоже интересует, аналогичным образом.
В самой базе можно употреблять выражения вида !feature-state, ?component-state, &feature-action, $component-action
(т.е. имена фич и компонентов с префиксами). Они действительны после выполнения CostFinalize. Первые два возвращают целое число (INSTALLSTATE_xxx), вторые два, судя по всему, строку типа "ADDLOCAL"
Мне понадобилось анализировать, что решил пользователь по отношению к той или иной фиче — устанавливать или не устанавливать. В зависимости от этого я хочу предпринять те или иные действия.
Вопрос — как узнать, какое состояние указал пользователь для фичи по ее идентификатору? Среди Properties не нашел...
Заранее спасибо.
Re: MSI: Как в runtime узнать, выбрал ли пользователь Featur
Ну, для начала — каким средством создания инсталяции Вы пользуетесь?
I>Подскажите, плз.
I>Мне понадобилось анализировать, что решил пользователь по отношению к той или иной фиче — устанавливать или не устанавливать. В зависимости от этого я хочу предпринять те или иные действия.
I>Вопрос — как узнать, какое состояние указал пользователь для фичи по ее идентификатору? Среди Properties не нашел...
I>Заранее спасибо.
Re[2]: MSI: Как в runtime узнать, выбрал ли пользователь Fea
Здравствуйте, Ignoramus, Вы писали:
I>Подскажите, плз.
I>Мне понадобилось анализировать, что решил пользователь по отношению к той или иной фиче — устанавливать или не устанавливать. В зависимости от этого я хочу предпринять те или иные действия.
I>Вопрос — как узнать, какое состояние указал пользователь для фичи по ее идентификатору? Среди Properties не нашел...
I>Заранее спасибо.
может MsiGetFeatureState поможет.
Re[2]: MSI: Как в runtime узнать, выбрал ли пользователь Fea
Здравствуйте, 3tone, Вы писали:
3>может MsiGetFeatureState поможет.
О! Это уже близко. Но при этом нужно писать внешнюю по отношению к базе MSI программу (custom action). А есть какой-нибудь эквивалент внутри самой базы? Типа standard action или property?
Кстати, по соседству заметил MsiGetFeatureCost. Меня это тоже интересует, аналогичным образом.
Re[4]: MSI: Как в runtime узнать, выбрал ли пользователь Fea
Здравствуйте, Sergei I. Gorelkin, Вы писали:
SIG>В самой базе можно употреблять выражения вида !feature-state, ?component-state, &feature-action, $component-action SIG>(т.е. имена фич и компонентов с префиксами). Они действительны после выполнения CostFinalize. Первые два возвращают целое число (INSTALLSTATE_xxx), вторые два, судя по всему, строку типа "ADDLOCAL"
Спасибо! Это именно то, что нужно.
Еще хотелось бы подобным образом узнать суммарный размер всех файлов на диске. В MSI для этого предусмотрен специальный контрол, который отображает размер каждой фичи. У меня есть parent-feature которая включает в себя все остальные фичи, так что если я получу размер этой parent-feature, то задача была бы решена. Но я не хочу использовать специальный контрол.
Есть ли способ узнать размер фичи, подобным образом, как ее состояние (!feature-state)?