Team City中的网站项目的自动版本控制

时间:2012-09-05 08:24:03

标签: continuous-integration teamcity versioning web-site-project

在我目前的客户端,我们有一些传统的ASP.Net网站项目。我正在为我们的构建引入自动版本控制,并且想知道如何在Team City中的网站项目中做到最好吗?

我目前正在使用Team City的%build.number%变量(通过项目构建模板设置)作为构建的权威版本号。对于生成程序集的任何.NET项目,可以在Team City中使用“AssemblyInfo Patcher”构建功能,但这对于网站项目不起作用,因为它们不生成程序集。

那么,有什么建议吗?我已经在我的构建中使用Powershell和psake所以创建使用%build.number%的脚本不是问题,它更像是如何以“漂亮”的方式将它注入到网站项目中。

1 个答案:

答案 0 :(得分:0)

我尝试了几种解决方案,但最终使用了在构建期间由Team City设置的依赖程序集的版本号。我在程序集中添加了一个类,它看起来像这样:
   

public class VersionUtils
{
    private readonly ILog _logger;

public VersionUtils() { _logger = LogManager.GetLogger("VersionLogger"); } public string GetWebAppVerison() { string version = "unknown version"; var assembly = Assembly.GetAssembly(typeof(VersionUtils)); try { version = assembly.GetName().Version.ToString(); } catch(Exception ex) { _logger.Warn("Could not find or read version number from " + assembly.GetName(), ex); } return version; }