在我目前的客户端,我们有一些传统的ASP.Net网站项目。我正在为我们的构建引入自动版本控制,并且想知道如何在Team City中的网站项目中做到最好吗?
我目前正在使用Team City的%build.number%变量(通过项目构建模板设置)作为构建的权威版本号。对于生成程序集的任何.NET项目,可以在Team City中使用“AssemblyInfo Patcher”构建功能,但这对于网站项目不起作用,因为它们不生成程序集。
那么,有什么建议吗?我已经在我的构建中使用Powershell和psake所以创建使用%build.number%的脚本不是问题,它更像是如何以“漂亮”的方式将它注入到网站项目中。
答案 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;
}