Как определить, установлен ли SCCM 2012? - PullRequest
1 голос
/ 26 августа 2011

Я пишу Wix C ++ Custom Action, чтобы определить, установлен ли SCCM 2012. Я делаю это, читая GUID продукта из реестра: SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\

Но это не сработало, поскольку в системе, в которой был установлен SCCM 2012, такой информации в реестре не было.

Может ли кто-нибудь указать мне правильное направление для достижения этой цели?

Я хотел бы установить свое программное обеспечение только после установки SCCM 2012.

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Вы не должны полагаться на недокументированные внутренние компоненты для обнаружения программного обеспечения - они могут изменяться без предупреждения.(Например, GUID кода продукта изменяется во время обновлений, поэтому, если команда SCCM не заявила, что не изменит его, скорее всего, это изменится для SCCM 2012 RTM и даже для 2012 обновлений.)

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

2 голосов
/ 26 августа 2011

Для этого вы должны воспользоваться элементом Condition . Если вы поместите его в «Продукт» или «Фрагмент», он будет работать как условие запуска. Подробнее об условиях запуска здесь .

Это условие, которое вы будете автором, проверяет свойство. Свойство должно быть установлено, если программное обеспечение, которое вы ищете, установлено, а не установлено иначе (это простейший случай). Для этого создайте элемент RegistrySearch , который определит свойство в случае, если найден правильный путь к реестру. Элемент RegistrySearch должен быть дочерним по отношению к элементу Property .

Как видите, здесь нет пользовательских действий, и это здорово! :)

...