C# 在ASP.NET MVC 4应用程序中打印版本号
我有一个ASP.NETMVC4应用程序。目前,我正在“应用程序”选项卡下的项目属性中设置应用程序的版本。从这里,我单击“装配信息…”按钮。到达后,我在“汇编版本”字段中输入了“1 0*” 我的问题是,如何在我的网页上显示这个值?目前,我正在尝试以下方法C# 在ASP.NET MVC 4应用程序中打印版本号,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个ASP.NETMVC4应用程序。目前,我正在“应用程序”选项卡下的项目属性中设置应用程序的版本。从这里,我单击“装配信息…”按钮。到达后,我在“汇编版本”字段中输入了“1 0*” 我的问题是,如何在我的网页上显示这个值?目前,我正在尝试以下方法 @System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() 不幸的是,它总是打印“0.0.0.0”。实际上,我希望它打印为1.0.0.xyz。我
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
不幸的是,它总是打印“0.0.0.0”。实际上,我希望它打印为1.0.0.xyz。我还想打印上次生成的日期/时间。然而,我不知道该怎么做
我做错了什么?可以使用
AssemblyFileVersionAttribute
设置程序集版本,必须专门访问该属性
AssemblyFileVersionAttribute attr = typeof(MyController).Assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).OfType<AssemblyFileVersionAttribute>().FirstOrDefault();
if (attr != null)
{
return attr.Version;
}
AssemblyFileVersionAttribute attr=typeof(MyController)。Assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute),true)。OfType使此操作变得简单。要打印在其中定义呈现此视图的控制器的程序集的版本号,请执行以下操作:
@ViewContext.Controller.GetType().Assembly.GetName().Version
大会日期:
@File.GetCreationTime(ViewContext.Controller.GetType().Assembly.Location)
这将打印当前版本号,如AssemblyInfo.cs
文件中所述,以便在ASP.NET MVC视图中打印:
@(typeof(MyController).Assembly.GetName().Version.ToString())
当然,用您合适的MVC控制器名称替换MyController。为此,我通常做HtmlHelper
扩展。大概是这样的:
public static class HtmlHelperExtensions
{
public static IHtmlString AssemblyVersion(this HtmlHelper helper)
{
var version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
return MvcHtmlString.Create(version);
}
}
而不是你刚才所说的“内部视图”:
@Html.AssemblyVersion()
如果您要在生产服务器上发布应用程序,我建议您使用
@String.Format(
"{0:dddd, MMMM d, yyyy HH:mm:ss}",
File.GetLastWriteTime(ViewContext.Controller.GetType().Assembly.Location))
用于检索日期
这将打印自文件以来的实际发布日期。GetCreationTime()
将为您提供实际程序集dll首次在服务器上复制的日期 部署后正确修改日期的工作解决方案:
@File.GetLastWriteTime(@System.Reflection.Assembly.GetExecutingAssembly().Location)
也可以在MVC5中使用。如果您在Razor视图中需要它,这对我很有用。它需要System.IO.*
前缀才能为我工作
<!--
Version @System.Diagnostics.FileVersionInfo.GetVersionInfo(typeof(YourNamespace.Program).Assembly.Location).ProductVersion
Last deployed on @System.IO.File.GetCreationTime(typeof(YourNamespace.Program).Assembly.Location)
-->
产出如下:
你应该看看它是否能解决你的问题……这是一个很好的建议。谢谢,我遇到了这个问题。装配日期对我来说不合适。装配位置指向GAC中的一个文件,该文件已存在3年。File.GetLastWriteTime
会更好吗?如何将其放入代码中。我的意思是,我应该简单地将它粘贴到cshtml文件中吗?@ViewContext.Controller.GetType().Assembly.GetName().Version
请参阅下面的注释以获得正确的修改日期时间。