0

在我当前的客户中,我们有一些遗留的 ASP.Net 网站项目。我正在为我们的构建引入自动版本控制,并且想知道如何最好地使用 Team City 中的网站项目来做到这一点?

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

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

4

1 回答 1

0

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

公共类 VersionUtils
{
    私有只读 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; }

于 2012-09-28T11:51:31.700 回答