如何检测系统中是否存在.Net 3.5?

时间:2011-09-23 08:40:53

标签: .net wpf startup

我知道这个问题已经在其他帖子中得到了回答,但它解决了我的问题:

塞纳里奥:

我使用WPF开发了一个应用程序.net framework 3.5 sp1

当我通过单击可执行文件运行应用程序时,我希望检查是否安装了所需的.net版本,或者向用户发送消息.....我尝试在网络上提供所有解决方案.... / p>

但是如果在没有.net框架的机器上运行应用程序或者框架版本低于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 :(得分:0)

无论你做什么,如果系统上没有安装最低要求的.NET版本,你就无法使用面向.NET的程序检测它,因为它根本不会运行!您需要在安装程序中使用引导程序来检测框架安装并根据需要进行安装。