Re: Innova FAIL list (ни дня без фейла)
Mad777, в основном из-за того, что игровым клиентам (и частично минилаунчерам / лаунчеру) необходимы такие компоненты как CRT / MFC / OpenMP и прочие. "Частично" (с поправкой на версионность) каждый из этих элементов может быть уже представлен в системе благодаря winsxs-хранилищу в windows (соответственно туда наверняка деплоились эти компоненты от инсталляций иных игр или developer-сред / по умолчанию).
Вообще, при всем многообразии api, которое поставляется разработчиком, нет строгой методологии проверки наличия в системе сборки VC++ redist конкретного релиза (ну или если хотите, то "года" - но это грубо будет сказано). Разработчики сами - используют одни техники, другие программисты - иные (видел множество примеров в бинарном коде). Так вот в Запускатре пошли по более-менее рекомендованному MS путем - проверкой существования определенного ключа / параметра в реестре windows, наличие которого часто соответствует наличию необходимой сборки.
С точки зрения... эм.., инженера - сей метод хоть и делает свое дело в большинстве случаев, но страдает неполнотой. Т.е. фактически игровой клиент может работать прекрасно, а регистрации соответствующей записи в реестре может и не быть. Да и более того, клиент может использовать иные версии компонентов (такое было с тем же vcomp.dll). Отсюда и получается казалось бы "ненужное" предложение установить компоненты.
Если Вас раздражает эта проверка, то, насколько я помню, она велась по ключу
HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\ Uninstall\{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}
и параметру в нем
UninstallString (тип REG_EXPAND_SZ)
так что можно проверить его наличие в реестре (и добавить если желаете параметр). Только стоит учесть, что и иное ПО иногда пользуется этим методом проверки, соответственно они также будут давать положительный результат (после добавления ключа). Править реестр не призываю, просто даю для информации, как это реализовано - вдруг кому то пригодится и навскидку не знает или же кто-то посоветует более интересный и правильный метод / подход.
|