我正在开发 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>
© @DateTime.Now.Year
Version: @HttpContext.Current.Application["Version"]
</footer>
关于asp.net-mvc - 如何在 ASP.Net MVC - 5 应用程序中显示版本号并自动增加它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41701538/