0

Chez mon client actuel, nous avons des projets de site Web ASP.Net. Je suis en train d'introduire le versioning automatique pour nos builds et je me demandais comment faire le mieux avec les projets de sites web dans Team City?Versioning automatique des projets de sites Web dans Team City

J'utilise actuellement la variable% build.number% de Team City (définie via le modèle de construction de projet) comme numéro de version faisant autorité pour une génération. Pour tout projet .NET qui produit des assemblages, il est facile d'utiliser la fonction de construction "AssemblyInfo Patcher" dans Team City, mais cela ne fonctionne pas pour les projets de sites Web car ils ne produisent pas d'assemblys.

Alors, des suggestions? J'utilise déjà Powershell et psake dans mes compilations, donc créer des scripts qui utilisent% build.number% n'est pas un problème, il s'agit plutôt de savoir comment injecter ceci dans le projet du site web de manière "sympa".

Répondre

0

J'ai essayé plusieurs solutions mais j'ai fini par utiliser le numéro de version d'un assembly dépendant qui est défini par Team City pendant la construction. J'ai ajouté une classe à l'assemblée et il ressemble à quelque chose comme ceci:

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

Questions connexes