我正在开发 ASP.Net MVC Web 应用程序。因此,我在 localhost 中进行了更改,然后运行并测试它。发布我检查我的代码。从主服务器 TEAMCITY 构建项目,更改生效。我是初学者,所以我不知道这一切是如何发生的。此外,我的经理希望我在 website footer 上显示版本号。因此,我查看了此链接 Add Version Number 并进行了以下更改。

cshtml 文件

     var version = @ViewContext.Controller.GetType().Assembly.GetName().Version;
     <p>Version @version</p>

     //and in AssemblyInfo.cs file I added
[assembly: AssemblyVersion("10.999.7.9")]
[assembly: AssemblyFileVersion("10.999.999.999")]

现在在我的本地主机中,我看到的是 10.999.7.9

然后我找到了一个链接,上面说我需要使用“*”来自动增加版本号。这个链接 Increment the Version Number

但是现在我的经理告诉我恢复 AssemblyInfo.cs 文件中的所有更改并将其保留为原始
[assembly: AssemblyVersion("10.999.999.999")]

[assembly: AssemblyFileVersion("10.999.999.999")]

我正在检查的最终更改
[assembly: AssemblyVersion("10.999.999.999")] // BY DEFAULT
[assembly: AssemblyFileVersion("10.999.999.999")]  // BY DEFAULT

并保持 cshtml 文件的更改不变

cshtml
 var version = @ViewContext.Controller.GetType().Assembly.GetName().Version;
         <p>Version @version</p>

所以是这样吗?显然,团队城市将覆盖 AssemblyInfo.cs 信息并更新版本号。我在这里完全困惑。我的意思是我不需要使用 * 来自动增加版本号。此外,团队城市如何覆盖 assembly.cs 文件,以便下面的代码具有正确的版本号。
var version = @ViewContext.Controller.GetType().Assembly.GetName().Version;

我是否遗漏了什么,或者我的经理遗漏了一些细节而他错了。为了获得正确的版本号并自动增加它,我是否也需要在 Assembly.cs 文件中进行更改并检查 assemblyInfo.cs 文件?请指导我。

最佳答案

您想在 TeamCity 中设置一个名为 Assembly Patching 的构建功能。

这是一个相关的 link

TeamCity 将在构建过程中替换程序集版本,并在构建完成后将其还原,但编译后的版本将是 TeamCity 所说的任何版本。

然后在我的 Global.asax 中,我在 Application_Start 中有这个代码

        Version version = Assembly.GetExecutingAssembly().GetName().Version;
        Application["Version"] = String.Format("{0}.{1}", version.Major, version.Minor);

然后在我的 _Layout.cshtml 我有
        <footer>
            &copy; @DateTime.Now.Year
            Version: @HttpContext.Current.Application["Version"]
        </footer>

关于asp.net-mvc - 如何在 ASP.Net MVC - 5 应用程序中显示版本号并自动增加它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41701538/

10-16 16:36