首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Razor /MVC3将AssemblyVersion放入网页时出现问题

使用Razor /MVC3将AssemblyVersion放入网页时出现问题
EN

Stack Overflow用户
提问于 2011-05-28 03:35:49
回答 10查看 43.5K关注 0票数 109

我在_Layout.cshtml文件的页脚中使用以下代码,将AssemblyInfo版本数据放入MVC3站点中每个页面的页脚中。但是:

代码语言:javascript
复制
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()

仅在页脚中打印:

代码语言:javascript
复制
Revision 0.0.0.0

当我使用以下代码修改视图以显示"Executing Assembly“的所有程序集信息时

代码语言:javascript
复制
@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()

该命令将打印以下内容:

代码语言:javascript
复制
Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

这表明"Executing Assembly“不是我的主应用程序,它是视图本身。

如何获取实际应用程序的程序集信息,而不仅仅是单个视图??

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-05-28 23:45:07

cshtml/vbhtml是动态编译成程序集。

代码语言:javascript
复制
@typeof(YourApplicationNamespace.MvcApplication).Assembly.GetName().Version

这个怎么样?

票数 225
EN

Stack Overflow用户

发布于 2011-05-28 03:44:29

使用这个帮助器对我很有效:

代码语言:javascript
复制
    public static HtmlString ApplicationVersion(this HtmlHelper helper)
    {
        var asm = System.Reflection.Assembly.GetExecutingAssembly();
        var version = asm.GetName().Version;
        var product = asm.GetCustomAttributes(typeof(System.Reflection.AssemblyProductAttribute), true).FirstOrDefault() as System.Reflection.AssemblyProductAttribute;

        if (version != null && product != null)
        {
            return new HtmlString(string.Format("<span>{0} v{1}.{2}.{3} ({4})</span>", product.Product, version.Major, version.Minor, version.Build, version.Revision));
        }
        else
        {
            return new HtmlString("");
        }

    }
票数 16
EN

Stack Overflow用户

发布于 2016-08-11 20:57:23

这对我很有效。而不需要显式地提及类型。

代码语言:javascript
复制
@ViewContext.Controller.GetType().Assembly.GetName().Version
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6156903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档