我在_Layout.cshtml文件的页脚中使用以下代码,将AssemblyInfo版本数据放入MVC3站点中每个页面的页脚中。但是:
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
仅在页脚中打印:
Revision 0.0.0.0
当我使用以下代码修改视图以显示"Executing Assembly“的所有程序集信息时
@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()
该命令将打印以下内容:
Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
这表明"Executing Assembly“不是我的主应用程序,它是视图本身。
如何获取实际应用程序的程序集信息,而不仅仅是单个视图??
发布于 2011-05-28 23:45:07
cshtml/vbhtml是动态编译成程序集。
@typeof(YourApplicationNamespace.MvcApplication).Assembly.GetName().Version
这个怎么样?
发布于 2011-05-28 03:44:29
使用这个帮助器对我很有效:
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("");
}
}
发布于 2016-08-11 20:57:23
这对我很有效。而不需要显式地提及类型。
@ViewContext.Controller.GetType().Assembly.GetName().Version
https://stackoverflow.com/questions/6156903
复制相似问题