J'ai créé une étiqueteuse personnalisée pour CC.Net qui fonctionne presque parfaitement, mais il semble que l'étiqueteuse fonctionne avant la construction de l'application. Le problème que j'ai avec ceci est que je veux que mon étiquette de construction soit celle de ma AssemblyVersion.CruiseControl.Net - L'étiqueteuse peut-elle être exécutée après MSBuild?
Je donne les résultats suivants dans mon étiqueteuse:
public string Generate(IIntegrationResult previousResult)
{
if (File.Exists(this.OutputExecutable))
{
Assembly assembly = System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(this.OutputExecutable));
string version = assembly.GetName().Version.ToString();
assembly = null;
return version;
}
else
{
return "0.0.0.0";
}
}
Cela devient la version de la DLL fournie/Exe afin que je puisse l'utiliser comme mon étiquette de build. Je vais probablement ajouter le numéro de build actuel plus tard, mais je veux juste que ce bit fonctionne d'abord.
Le problème est que mon numéro de révision est au format 2.0.93601.254 major.minor.date.svnrevision. Quand un enregistrement se produit, je construis le code base et le numéro de révision irait à 2.0.93601.255. Malheureusement, CC.Net produit toujours une étiquette de construction de .254 jusqu'à ce qu'une force de construction soit appelée quand elle sera modifiée avec succès à .255.
Est-il possible de forcer l'étiqueteuse à attendre que le processus de construction soit terminé? Ou y a-t-il d'autres façons de le faire?