【问题标题】:How to check ASP.NET Version loaded on a system?如何检查系统上加载的 ASP.NET 版本?
【发布时间】:2020-07-03 19:59:36
【问题描述】:

如何查看我系统上安装的ASP.NET 的版本?

【问题讨论】:

  • 以编程方式或只是您在 Windows 中安装的内容?
  • 我相信这可能是stackoverflow.com/questions/5161529/…的副本
  • @aceinthehole 不,这个问题是关于项目是针对哪个版本进行编码的。这是关于机器上安装了哪个版本。
  • 下面一半的答案是关于查看您正在运行的 .net 版本。另一半是关于机器的。我需要查看我正在编码的 .net 版本,因为我不想检查 asp.net 源代码中的某些内容。

标签: asp.net


【解决方案1】:

你可以使用

<%
Response.Write("Version: " + System.Environment.Version.ToString());
%>

这将获得当前运行的版本。您可以在注册表中检查所有已安装的版本:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET 框架设置\NDP

【讨论】:

  • 太棒了。非常感谢你们这么快的反应。堆栈溢出岩石。
  • 但是给 Keyboardp 一个问题。我应该在哪里运行您发送的命令
  • 您可以创建一个新的 ASPX 页面并将其复制/粘贴到您的页面中。如果您想从代码隐藏中执行此操作,则只需使用 `Response.Write("Version: " + System.Environment.Version.ToString() );` 没有 &lt;% %&gt;
  • 此答案是检查“页面”脚本和注册表检查的最佳方法,将显示 v4.0 与 v4.5 的差异。如果您安装了 4.5 版,则页面上的 Response.Write 将显示 v4.0.30319.34209(而不是 v4.0.30319.1008)和注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\ Full 你会看到版本 v4.5.51209(而不是 v4.0.30319)
  • 确保添加的是 aspx 文件而不是 asp 文件,否则将无法正常工作
【解决方案2】:

当您使用 Google Chrome + 开发人员工具(预装)或 Firefox + Firebug(附加组件)加载页面时,您可以查看执行哪个版本。

我使用谷歌浏览器:

  1. 打开 Chrome 并使用 Ctrl+Shift+I 打开开发者工具。
  2. 转到“网络”标签
  3. 点击底部的小按钮“导航时保留日志”
  4. 加载您的任何页面
  5. 点击响应头

看起来像这样:

【讨论】:

  • 这并没有显示 v4.0 和 v4.5 之间的差异,因为它们都在相同的 X-AspNet-Version 4.0.30319 下运行。您需要检查注册表或按照@KeyboardP 的回答执行 Response.Write。
  • 此方法允许找出.NET CLR Framework 版本,而不是ASP.NET 版本...
  • 您可以像 here 那样简单地隐藏“X-Asp-Net-Version”标头,因此该解决方案并不总是有效。
【解决方案3】:

我遇到了同样的问题,想找到一种方法来检查服务器上是否有 ASP.NET 4.5。因为 v4.5 已就地替换为 v4.0,如果您查看 c:\windows\Microsoft.NET\Framework,您将看不到 v4.5 文件夹。实际上有一种简单的方法可以查看机器中安装的版本。在 Windows Server 2008 或 Windows 7 下,只需转到控制面板 -> 程序和功能,如果已安装,您将找到“Microsoft .NET Framework 4.5”。

【讨论】:

    【解决方案4】:

    这里有一些代码将返回已安装的 .NET 详细信息:

    <%@ Page Language="VB" Debug="true" %>
    <%@ Import namespace="System" %>
    <%@ Import namespace="System.IO" %>
    <% 
    Dim cmnNETver, cmnNETdiv, aspNETver, aspNETdiv As Object
    Dim winOSver, cmnNETfix, aspNETfil(2), aspNETtxt(2), aspNETpth(2), aspNETfix(2) As String
    
    winOSver = Environment.OSVersion.ToString
    cmnNETver = Environment.Version.ToString
    cmnNETdiv = cmnNETver.Split(".")
    cmnNETfix = "v" & cmnNETdiv(0) & "." & cmnNETdiv(1) & "." & cmnNETdiv(2)
    
    For filndx As Integer = 0 To 2
      aspNETfil(0) = "ngen.exe"
      aspNETfil(1) = "clr.dll"
      aspNETfil(2) = "KernelBase.dll"
    
      If filndx = 2   
        aspNETpth(filndx) = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), aspNETfil(filndx))
      Else
        aspNETpth(filndx) = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "Microsoft.NET\Framework64", cmnNETfix, aspNETfil(filndx))
      End If
    
      If File.Exists(aspNETpth(filndx)) Then
        aspNETver = Diagnostics.FileVersionInfo.GetVersionInfo(aspNETpth(filndx))
        aspNETtxt(filndx) = aspNETver.FileVersion.ToString
        aspNETdiv = aspNETtxt(filndx).Split(" ")
        aspNETfix(filndx) = aspNETdiv(0)
      Else
        aspNETfix(filndx) = "Path not found... No version found..."
      End If
    Next
    
    Response.Write("Common MS.NET Version (raw): " & cmnNETver & "<br>")
    Response.Write("Common MS.NET path: " & cmnNETfix & "<br>")
    Response.Write("Microsoft.NET full path: " & aspNETpth(0) & "<br>")
    Response.Write("Microsoft.NET Version (raw): " & aspNETtxt(0) & "<br>")
    Response.Write("<b>Microsoft.NET Version: " & aspNETfix(0) & "</b><br>")
    Response.Write("ASP.NET full path: " & aspNETpth(1) & "<br>")
    Response.Write("ASP.NET Version (raw): " & aspNETtxt(1) & "<br>")
    Response.Write("<b>ASP.NET Version: " & aspNETfix(1) & "</b><br>")
    Response.Write("OS Version (system): " & winOSver & "<br>")
    Response.Write("OS Version full path: " & aspNETpth(2) & "<br>")
    Response.Write("OS Version (raw): " & aspNETtxt(2) & "<br>")
    Response.Write("<b>OS Version: " & aspNETfix(2) & "</b><br>")
    %>
    

    这是新的输出,代码更简洁,输出更多:

    Common MS.NET Version (raw): 4.0.30319.42000
    Common MS.NET path: v4.0.30319
    Microsoft.NET full path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe
    Microsoft.NET Version (raw): 4.6.1586.0 built by: NETFXREL2
    Microsoft.NET Version: 4.6.1586.0
    ASP.NET full path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
    ASP.NET Version (raw): 4.7.2110.0 built by: NET47REL1LAST
    ASP.NET Version: 4.7.2110.0
    OS Version (system): Microsoft Windows NT 10.0.14393.0
    OS Version full path: C:\Windows\system32\KernelBase.dll
    OS Version (raw): 10.0.14393.1715 (rs1_release_inmarket.170906-1810)
    OS Version: 10.0.14393.1715
    

    【讨论】:

      【解决方案5】:

      查看c:\windows\Microsoft.NET\Framework,您会看到以“v”开头的各种文件夹,表示安装的.NET版本。

      【讨论】:

      • 我安装了 4.5 版,但该版本没有显示在 Framework 目录下。所以你的解决方案不正确。
      • 如果存在,你检查c:\windows\Microsoft.NET\FFramework64
      【解决方案6】:

      或者,您可以在网页上和 Page_Load 类型中创建一个按钮;

      Trace.IsEnabled = True
      

      并且在按钮点击事件类型中;

      Response.Write(Trace)
      

      这将调出所有跟踪信息,您将在“X-ASPNet-Version”下的“Response Headers Collection”中找到您的 ASP.NET 版本。

      【讨论】:

      • 您可以像 here 那样简单地隐藏“X-Asp-Net-Version”标头,因此此解决方案并不总是有效。
      【解决方案7】:

      打开一个新的命令提示符并运行以下命令: dotnet --info

      【讨论】:

        【解决方案8】:

        我也需要这个信息,用这个方法得到了信息,

        启动 PowerShell

        运行“import-module servermanager”命令(不带引号)

        之后为 asp.net 3.5 检查 运行“get-windowsfeature web-asp-net”命令(不带引号)

        对于 asp.net 4.5 检查 运行“get-windowsfeature Net-Framework-45-Core”命令(不带引号)

        这两个命令都会在 Install State 标题下方通知您。

        在服务器环境中通过GUI检测版本和细节可以找到in this link.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-10-03
          • 1970-01-01
          • 2019-02-09
          • 2010-10-08
          • 2014-08-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多