我是一个初学者,所以请原谅我如果我没有正确提问。所以,我有一个ASP.Net MVC - 5项目。因此,每当我进行任何更改时,我都会在localhost上运行它,然后在测试后将其发布到实时服务器。现在我的经理要我在网站上显示我正在运行的网站版本。我的意思是每次发布网站时都会有一些版本或内部版本号或某些内容已更改。我的意思是我需要右键单击项目上的属性并获取一些版本号或dll编号或每次发布时更改的内容。请指点我这里。我不知道如何正确地提出这个问题。
截至目前,我可以看到我网站的日期:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
FileInfo fileInfo = new FileInfo(assembly.Location);
string lastModified = fileInfo.LastWriteTime.Date.ToShortDateString() + " " + fileInfo.LastWriteTime.ToLongTimeString();
我是否可以获取有关版本或其他内容的其他详细信息。
我在cshtml中尝试了两个解决方案
<div>
@{
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
FileInfo fileInfo = new FileInfo(assembly.Location);
string lastModified = fileInfo.LastWriteTime.Date.ToShortDateString() + " " + fileInfo.LastWriteTime.ToLongTimeString();
var e = @ViewContext.Controller.GetType().Assembly.GetName().Version;
string version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
</div>
e 返回10.999.999.999
版本返回0.0.0.0
请指导我。
修改
第1步:
所以我将内部版本号从属性标签更改为10.999.7.9
现在它将 assembly.cs 更改为
[assembly: AssemblyVersion("10.999.7.9")]
[assembly: AssemblyFileVersion("10.999.999.999")]
第2步:自动增量
现在SO LINK建议在两行以下注释
[assembly: AssemblyVersion("10.999.7.9")]
[assembly: AssemblyFileVersion("10.999.999.999")]
并替换为
[assembly: AssemblyVersion("1.0.*")]
所以,我在这里很困惑。我要评论这两行。但它会取消[assembly: AssemblyVersion("10.999.7.9")]
答案 0 :(得分:0)
我没有足够的回复评论,因此将其创建为回复
我用手动方式解释:
每次更新代码时 - 尝试更新项目的Properties \ AssemblyInfo.cs中的AssemblyVersion和AssemblyFileVersion AssemblyInfo
在你的控制器中,有一个方法可以返回执行程序集的版本号,如下所示(这里我将其作为HttpResponseMessage返回)
var version = (Assembly.GetExecutingAssembly().GetName().Version.ToString());
return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(version) };
希望这有帮助。
答案 1 :(得分:0)
你可以尝试一下 - :
public ActionResult Index()
{
var assemblyversion = this.GetType().Assembly.GetName().Version;
ViewBag.VersionNumber = assemblyversion;
//Pass the viewbag to the view
return View();
}