我有一个ASP.NET MVC 4应用程序.目前,我正在"应用程序"选项卡下的项目属性中设置应用程序的版本.从这里,我点击"装配信息..."按钮.到那里之后,我在"Assembly version"字段中输入了"1 0 0*".
我的问题是,如何在我的网页上显示这个值?目前,我正在尝试以下方面
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Run Code Online (Sandbox Code Playgroud)
不幸的是,它总是打印"0.0.0.0".实际上,我想打印1.0.0.xyz.我还想打印上次构建发生的日期/时间.但是,我不知道该怎么做.
我究竟做错了什么?
Dar*_*rov 122
要打印已在其中定义呈现此视图的控制器的程序集的版本号,请执行以下操作:
@ViewContext.Controller.GetType().Assembly.GetName().Version
Run Code Online (Sandbox Code Playgroud)
并为集会日期:
@File.GetCreationTime(ViewContext.Controller.GetType().Assembly.Location)
Run Code Online (Sandbox Code Playgroud)
fre*_*nky 21
我通常会HtmlHelper
为此目的进行扩展.像这样的东西:
public static class HtmlHelperExtensions
{
public static IHtmlString AssemblyVersion(this HtmlHelper helper)
{
var version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
return MvcHtmlString.Create(version);
}
}
Run Code Online (Sandbox Code Playgroud)
而不是内部视图,你只需要打电话:
@Html.AssemblyVersion()
Run Code Online (Sandbox Code Playgroud)
小智 19
如果您要在生产服务器上发布应用程序,我建议使用类似的东西
@String.Format(
"{0:dddd, MMMM d, yyyy HH:mm:ss}",
File.GetLastWriteTime(ViewContext.Controller.GetType().Assembly.Location))
Run Code Online (Sandbox Code Playgroud)
用于检索日期.
这将打印实际的发布日期,因为File.GetCreationTime()
它将为您提供首次在服务器上复制实际程序集dll的日期.
部署后正确修改日期的工作解决方案:
@File.GetLastWriteTime(@System.Reflection.Assembly.GetExecutingAssembly().Location)
Run Code Online (Sandbox Code Playgroud)
也可以在MVC5中使用。
归档时间: |
|
查看次数: |
29760 次 |
最近记录: |