2011-12-15 124 views
4

如何获取我的asp.net应用程序的运行网点版本。获取我的应用程序的当前网点版本

我试图解决从这里

Is there an easy way to check the .NET Framework version?

它给安装的最高版本,但我需要运行的版本。

+0

你看过项目的属性了吗?目标框架版本在那里可用。 – TheGeekYouNeed 2011-12-15 11:40:27

+0

`System.Environment.Version.ToString()`这是你感兴趣的吗?或者你的意思是这个http://stackoverflow.com/questions/420941/why-cant-i-display-the-asp-net-framework-version-as-3-5 – V4Vendetta 2011-12-15 11:45:19

回答

6

使用Environment.Version获取运行时版本。它会给出用于执行当前应用程序的.Net CLR的版本号。

这里你需要小心,它只会返回运行时版本而不是框架版本。 .NET 3.0和.NET 3.5的CLR与.NET 2.0的CLR相同。

+0

但是没有办法获得版本像3.5或4.0? – Paras 2011-12-15 11:44:52

-3

希望这一个帮助,

DirectoryEntry site = new DirectoryEntry(@"IIS://localhost/w3svc/1/Root"); 
PropertyValueCollection values = site.Properties["ScriptMaps"]; 
foreach (string val in values) 
{ 
    if (val.StartsWith(".aspx")) 
    { 
     string version = val.Substring(val.IndexOf("Framework") + 10, 9); 
     MessageBox.Show(String.Format("ASP.Net Version is {0}", version)); 
    } 
} 

脚本映射属性是字符串数组。如果应用程序支持asp.net,那么其中一个字符串将是aspx文件扩展名到asp.net处理程序的映射,该处理程序将成为DLL的完整路径。路径将类似于:

%windir%/ Microsoft.NET/Framework // aspnet_isapi.dll。

您可以通过一些简单的解析获得该字符串的版本。

相关问题