2011-09-23 69 views
0

我知道这个问题已经在其他后得到答复,但它dosent解决我的问题:如何检测.net 3.5是否存在于系统中?

塞纳里奥:

我已经开发了一个应用程序的.NET Framework使用WPF

3.5 SP1当我运行应用程序通过点击可执行文件,我希望检查是否安装了所需的.net版本,或者给用户留言.....我试过所有的解决方案在网上...

但如果运行应用程序在没有.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

+2

您编写了需要安装.NET的代码。您可以通过向您的解决方案添加一个安装和部署项目来避免鸡与鸡蛋问题。十分简单。 –

回答

0

不管你做什么,如果系统上未安装所需的最小.NET版本则无法使用程序针对.NET检测到它因为它不会运行!您需要在安装程序中使用引导程序来检测框架安装并根据需要进行安装。

+0

好吧,我得到了这种感谢...你能否详细说明Bootstrapper以及如何将它与应用程序连接... – Ankesh

+0

这取决于你正在使用的安装程序,但看看[ClickOnce](http://msdn.microsoft .COM/EN-US /库/ t71a733d%28V = VS.100%29.aspx)。它会为您的安装程序设置一个引导程序。 –

相关问题