我正在使用ASP.Net MVC Web应用程序。因此,我在localhost中进行了更改,然后运行并对其进行测试。我签入代码的帖子。TEAMCITY从主服务器构建项目,并进行更改。我是一个初学者,所以我不知道这一切是怎么发生的。另外,我的经理要我在上显示版本号website footer
。因此,我查看了此链接“ 添加版本号”,并进行了以下更改。
cshtml文件
var version = @ViewContext.Controller.GetType().Assembly.GetName().Version;Version @version
//and in AssemblyInfo.cs file I added [assembly: AssemblyVersion("10.999.7.9")] [assembly: AssemblyFileVersion("10.999.999.999")]
现在在我的本地主机中,我看到的只是10.999.7.9
然后,我找到一个链接,该链接说我需要使用“ *”来自动递增版本号。此链接增加版本号
但是现在我的经理告诉我要还原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;Version @version
就是这样吗?显然,team city将覆盖AssemblyInfo.cs信息并更新版本号。我在这里完全感到困惑。我的意思是不需要使用*
自动增加版本号。另外,团队城市如何覆盖assembly.cs文件,以便以下代码具有正确的版本号。
var version = @ViewContext.Controller.GetType().Assembly.GetName().Version;
我错过了什么吗?或者我的经理错过了一些细节,他错了。而要获得正确的版本号并自动递增,我是否也需要在Assembly.cs文件中进行更改并也要在AssemblyInfo.cs文件中签入?请指导我。
您想在TeamCity中设置一个称为Assembly Patching的构建功能。
这是一个相关的链接
TeamCity将在构建过程中替换程序集版本,并在构建完成后将其还原,但是编译后的版本将与TeamCity所说的一样。
然后在我的Global.asax中,在Application_Start中获得此代码
Version version = Assembly.GetExecutingAssembly().GetName().Version; Application["Version"] = String.Format("{0}.{1}", version.Major, version.Minor);
然后在我的_Layout.cshtml中,