0

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

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

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

回答

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; }