【问题标题】:How to know the Web Site version in ASP.net MVC如何知道 ASP.net MVC 中的网站版本
【发布时间】:2017-05-31 16:35:03
【问题描述】:

我是一个初学者,如果我没有正确提问,请原谅我。所以,我有一个 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")]的效果

【问题讨论】:

  • 你是这个意思?您可以在您的视图中使用它。 @ViewContext.Controller.GetType().Assembly.GetName().Version
  • 每次发布​​到实时服务器时都会发生这种变化吗?
  • 或者一劳永逸。
  • 是的,它适用于我的应用程序。你可以测试看看。
  • 您必须设置构建过程以包含版本(请参阅stackoverflow.com/q/3975601/215552)才能设置版本号。要在每次构建时更新它,请参阅stackoverflow.com/q/356543/215552。然后你会在你的版本字符串中得到一些有意义的东西。

标签: asp.net .net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5


【解决方案1】:

我没有足够的代表发表评论,因此将其创建为回复

我用手动方式解释:

每次更新代码时 - 尝试更新项目的 Properties\AssemblyInfo.cs 中的 AssemblyVersion 和 AssemblyFileVersion AssemblyInfo

在您的控制器中,有一个方法可以返回执行程序集的版本号,如下所示(这里我将其返回为 HttpResponseMessage)

var version = (Assembly.GetExecutingAssembly().GetName().Version.ToString());
        return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(version) };

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    你能试试这个吗-:

        public ActionResult Index()
        {
            var assemblyversion = this.GetType().Assembly.GetName().Version;            
            ViewBag.VersionNumber = assemblyversion;
            //Pass the viewbag to the view
            return View();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 2015-09-27
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多