Как определить, присутствует ли .Net 3.5 в Системе? - PullRequest
0 голосов
/ 23 сентября 2011

Я знаю, что на этот вопрос ответили в другом посте, но это не решает мою проблему:

Senario:

я разработал приложение .net framework 3.5 sp1 с использованием WPF

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

, но если запустить приложение на компьютере, на котором нет .net framework или версия платформы ниже 3.5 .., он показывает экран сбоя Crash screen

Мой код, который я сейчас использую в App.Xaml.cs

//Check the registry entry for .NET Framework.
            RegistryKey frameworkRegistryKey =
                Registry.LocalMachine.OpenSubKey(DOT_NET_FRAMEWORK_KEY_PATH);
            if (frameworkRegistryKey != null)
            {
                //Check for the installed versions.
                string[] versionNames =
                    frameworkRegistryKey.GetSubKeyNames();
                double framework =
                    Convert.ToDouble(
                        versionNames[versionNames.Length - 1].Remove(0, 1));
                int servicePack = Convert.ToInt32(
                    frameworkRegistryKey.OpenSubKey(
                        versionNames[versionNames.Length - 1]).GetValue(
                            SERVICE_PACK, 0));
                //Check if the version is 3.5 Service Pack 1 or later.
                if ((framework < 3.5)
                    || ((framework == 3.5) && (servicePack < 1)))
                {
                    returnCode = ErrorCodesEnum.ERR_DOT_NET_FRAMEWORK;
                }
            }

Я также сомневаюсь, что, если это возможно, как без нужных библиотек, как будет работать мое приложение

Любая помощь или предложения будут gr8

1 Ответ

0 голосов
/ 23 сентября 2011

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

...