【问题标题】:How to determine the current version of ASP.NET MVC?如何确定当前的 ASP.NET MVC 版本?
【发布时间】:2011-03-01 19:46:38
【问题描述】:

有没有办法在代码中获取当前版本的 ASP.NET MVC?需要反思 MVC 程序集吗?任何新的 IIS 服务器变量?要在 HTTP 上下文中读取的某些属性?

【问题讨论】:

标签: asp.net-mvc


【解决方案1】:

通过反射:

typeof (Controller).Assembly.GetName().Version

【讨论】:

  • 非常好!我在 mvc 源代码中检查了 MvcHandler.GetMvcVersionString()(但私有方法,遗憾..)。
  • 还可以检查名称以确认它实际上是一个 mvc 应用程序:typeof(Controller).Assembly.GetName().Name,或两者同时:typeof(Controller).Assembly.GetName ().FullName.
【解决方案2】:
  1. 转到您的参考资料文件夹
  2. 寻找System.Web.Mvc
  3. 右键单击它
  4. 点击属性
  5. 查看 Version 属性。

这很可能是您的版本,但 GAC 可能会影响您。

【讨论】:

  • 尝试再次添加但进行备份
【解决方案3】:

如果您无法访问代码和/或想确定已部署在机器上的 ASP.NET 版本,您可以执行以下操作(来自TechNet):

如何确定我的 ASP.NET MVC 安装在哪个版本 系统?

对于 MVC 4.0、MVC 5.0 或 MVC 5.1,您应该已部署 应用程序受影响的二进制文件 (System.Web.MVC.dll)。检查你的 二进制文件版本的应用程序的 bin 文件夹。对于 MVC 2.0, MVC 3.0 或 MVC 4.0,请参阅添加或删除程序控制面板 安装的 MVC 版本的项目。

【讨论】:

    【解决方案4】:

    使用可以安装的 NuGet 包 MvcDiagnostics。创建一个 MVC “hello world” 或其他一些基本程序,然后安装这个包。安装将提示项目添加文件。确认,您应该会看到 MvcDiagnostics.aspx 添加到您的项目中。在解决方案查看器中右键单击此文件,然后选择“在浏览器中查看”。然后,您应该会看到一个包含所有装配信息的漂亮页面。我的如下所示:

    Microsoft ASP.NET MVC Diagnostics Information
    
    This page is designed to help diagnose common errors related to mismatched or conflicting ASP.NET MVC binaries. If a known issue is identified, it will be displayed below in red text.
    
    For questions or problems with ASP.NET MVC or this utility, please visit the ASP.NET MVC forums at http://forums.asp.net/1146.aspx.
    
    Environment Information
    
    Operating system: Microsoft Windows NT 6.2.9200.0
    .NET Framework version: 4.0.30319.34209 (32-bit)
    Web server: Microsoft-IIS/8.0
    Integrated pipeline: True
    Worker process: iisexpress.exe
    AppDomain: Homogenous = True, FullTrust = True
    
    ASP.NET MVC Assembly Information (System.Web.Mvc.dll)
    
    Assembly version: ASP.NET MVC 4 RTM (4.0.20710.0)
    Full name: System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Mvc/v4.0_4.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll
    Deployment: GAC-deployed
    
    ASP.NET MVC Futures Assembly Information (Microsoft.Web.Mvc.dll)
    
    An ASP.NET MVC Futures assembly has not been loaded into this application. A download for this version of ASP.NET MVC Futures is not available. Pre-release versions of the MVC Futures assembly are no longer available once that version of ASP.NET MVC has gone RTM.
    
    All Loaded Assemblies
    
    71 assemblies are loaded.
    
    A_65e81fd0_eb37_47d8_aba0_baece822c7ad, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    Antlr3.Runtime, Version=3.3.1.7705, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    App_global.asax.1h_47vyd, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    App_Web_rnug5pva, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    BasicAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Microsoft.JScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Microsoft.VisualBasic.Activities.Compiler, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Microsoft.VisualStudio.Web.PageInspector.Runtime, Version=12.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Microsoft.VisualStudio.Web.PageInspector.Tracing, Version=12.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
    SMDiagnostics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.Runtime.DurableInstancing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.ServiceModel.Internals, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.RegularExpressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.WebPages.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Workflow.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Workflow.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Workflow.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    WebGrease, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    

    【讨论】:

      【解决方案5】:

      在解决方案资源管理器中打开 packages.config..

      然后查找ASP.NET MVC包ID,如下:

      id="Microsoft.AspNet.Mvc" version="5.2.2" targetFramework="net452"

      【讨论】:

        【解决方案6】:

        在运行时-

        string mvcVersion = typeof (Controller).Assembly.GetName().Version.ToString();
        

        在设计时-

        • 转到您的参考文件夹
        • 寻找 system.web.mvc
        • 右键单击它
        • 点击属性查看版本属性

        .

        【讨论】:

        • 我一开始不明白在Create new project窗口上面的asp模板是4.6写的,但我的MVC参考程序集是版本5:|
        • 这个答案到底给线程添加了什么?您只是复制了其他答案。
        【解决方案7】:

        您还可以检查项目中安装的Microsoft.AspNet.Mvc nuget 包的版本。

        您可以使用包管理器控制台:

        Get-Package Microsoft.AspNet.Mvc
        

        【讨论】:

          【解决方案8】:

          这是另一种为 ASP net CORE 项目查找 MVC 版本的方法,方法是向 Home Controller 添加小代码。希望这会有所帮助。

          转到项目控制器文件夹,打开“HomeController.cs”文件。在 HomeController.cs 文件中,有一个返回类型为 ActionResult/IActionResults 的 Index Method。只需将 Method 类型从 ActionResult 更改为 string 并将下面给出的代码写入该方法。

          返回typeof(Controller).Assembly.GetName().Version.ToString();

          运行你的项目,你可以在首页看到你的项目使用的MVC版本。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-07
            • 1970-01-01
            • 1970-01-01
            • 2019-06-12
            • 1970-01-01
            相关资源
            最近更新 更多