Можно ли узнать, установлен ли .NET Framework из приложения .NET? - PullRequest
2 голосов
/ 27 февраля 2009

Вот в чем дело. Мое приложение .NET аварийно завершает работу с довольно неприятной ошибкой общего характера, когда я пытаюсь запустить его на компьютере, на котором не установлена ​​платформа .NET.

Это нормально? Если это так ... есть ли способ проверить, чтобы .NET Framework мог корректно завершить работу?

Ответы [ 5 ]

7 голосов
/ 27 февраля 2009

Вы не можете проверить номер версии .NET Framework с помощью управляемого кода, так как он не может быть выполнен до загрузки среды выполнения .NET. Для этого можно использовать неуправляемый API CLR, но лучший способ решить эту проблему - предоставить механизм установки, который проверяет, загружает и устанавливает .NET Framework, если он не установлен на компьютере.

2 голосов
/ 27 февраля 2009

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

1 голос
/ 27 февраля 2009

Посмотрите профиль клиента .NET Framework (http://msdn.microsoft.com/en-us/library/cc656912.aspx):

.NET Framework Client Profile предоставляет общую настройку загрузчика, которую вы можете использовать для своих клиентских приложений. Это гарантирует, что все требования для запуска вашего приложения установлены, независимо от того, какая версия .NET Framework, если таковая имеется, присутствует. Процесс установки обеспечивает согласованный пользовательский интерфейс (UI) и простую установку, независимо от того, является ли целевая операционная система Windows XP или Windows Vista.

0 голосов
/ 27 февраля 2009

Если он упакован в установщик, вы можете установить условия установки для проверки .NET и версии платформы.

Другой способ проверить структуру:

System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory;
System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion;

Из поваренной книги О'Рейли.

Но оба они потерпели поражение из-за того, что .NET необходимо установить еще до того, как код сможет начать проверку.

0 голосов
/ 27 февраля 2009

Вы должны сделать эту проверку в сценарии установщика, я полагаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...