Подтвердить что ты не робот

Как я могу обнаружить, когда функция .NET Framework отключена в Windows 7/Vista?

Мое приложение требует .NET Framework версии 3.5. Недавно я столкнулся с клиентом, у которого была установлена ​​.NET Framework, но отключен в Windows Vista (также относится к Windows 7).

В этом случае мой установщик (InstallShield 2009) не запрашивает у пользователя установку Framework (потому что он уже установлен), и когда мое приложение запускается, он немедленно сбой. Я попробовал другое .NET-приложение, и оно также немедленно сработает.

Есть ли способ обнаружить эту ситуацию и обработать ее более изящно? Простое обнаружение этого во время установки не является идеальным, так как .NET Framework можно отключить в любое время. В идеале приложение сможет проверять и отображать дружественное сообщение пользователю, говорящему им, что нужно включить .NET Framework.

EDIT: "Отключение".NET Framework в Windows Vista или Windows 7 - это не то же самое, что удаление. Рамку можно просто вернуть без переустановки: http://windows.microsoft.com/en-US/windows-vista/Turn-Windows-features-on-or-off

4b9b3361

Ответ 1

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

Взгляните на: HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5

Ответ 2

Похоже, вы собираетесь написать не-управляемую пусковую установку для своего приложения. Сверните свои рукава и получите хорошее погружение на С++:)

Ответ 3

Woot, я думаю, что этот URL-адрес может иметь ваш ответ:

http://blogs.msdn.com/astebner/archive/2008/04/04/8358995.aspx

См. "Как установить компонент ОС .NET Framework 3.0 в сценарии развертывания". Он описывает использование ocsetup для запуска Windows для включения функции, насколько я могу судить. Удачи.

Кроме того, мне интересно, если установщики ClickOnce интеллектуальны, чтобы узнать, отключена ли функция (я думаю, они были бы). Но поскольку вы используете InstallShield, вам, вероятно, нужен более полнофункциональный установщик, чем clickonce; o)