Проверьте версию .Net Framework из приложения WinForms - PullRequest
6 голосов
/ 23 сентября 2010

Как проверить версию .net framework при запуске приложения WinForms, написанного на .NET 3.5?Если .net 3.5 не установлен, приложение должно показать сообщение об этом (может быть с ссылкой на установщик .net или некоторые другие)Теперь он показывает какую-то ошибку, которая не понятна пользователю.

Ответы [ 4 ]

2 голосов
/ 23 сентября 2010

Проверьте этот проект C ++, который должен делать то, что вы просите.

http://www.codeproject.com/KB/mcpp/DotNetTester.aspx

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

Из описания проекта:

Например (протестируйте минимум FW 1.1 и запустите приложение):

dotNetTester.exe 1.1 C: \ Temp \ Myapp.exeC: \ Temp \ Myapp.exe

2 голосов
/ 23 сентября 2010

Делать это в приложении .NET 3.5 будет довольно сложно, так как вы никогда не доберетесь до точки запуска вашего приложения.

Обычно это делается в установщике приложения, добавляя условие запуска.См. http://support.microsoft.com/kb/315291

РЕДАКТИРОВАТЬ: я нашел статью, в которой объясняется, как написать неуправляемое приложение для запуска до запуска приложения .NET (как предложено в ответе ho1) http://blogs.msdn.com/b/astebner/archive/2009/01/31/9387659.aspx

2 голосов
/ 23 сентября 2010

Вы должны создать приложение starter , написанное либо в .Net 2.0, либо в качестве неуправляемого приложения (для покрытия, если версия .Net вообще не установлена) и запустить его сначала, а затем, если .Net3.5 установлен, он запустит реальное приложение, в противном случае он покажет приятное сообщение об ошибке.

Однако, еще лучшим решением будет установить установщик .Net 3.5, так что вы не будетенадо беспокоиться об этом (но это, очевидно, не сработает для развертывания XCopy и т. д.).

1 голос
/ 23 сентября 2010

Я перечитал ваш вопрос - вы не можете запустить приложение .NET x ver, если .NET x не установлен!Конец.

Если он у вас установлен, то для других целей -

Используйте System.Environment.Version, чтобы узнать, какую версию вы используете в данный момент.

Чтобы узнать обо всехверсии установлены, отметьте это .

Перечислите подразделы HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP.Каждый подраздел является .Net-версией.У него должно быть значение Install = 1, если оно присутствует на компьютере, значение SP, показывающее пакет обновления, и значение MSI = 1, если оно было установлено с использованием MSI.(.Net 2.0 в Vista не имеет, например, последнего, поскольку он является частью ОС)

Вы можете получить доступ к этому разделу реестра "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \"ПНР "и перебирать значения.

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