Je tente de déployer une application Click Once (créer et publier) à l'aide de CruiseControl.NET. Je ne peux pas savoir où je peux utiliser CCNetLabel pour définir mon AssemblyVersion et/ou PublishVersion. J'accepterais d'autres solutions qui permettraient un numéro de version unique par déploiement de CruiseControl.NET (déploiements Live et Développement).Utilisation de CCNetLabel pour définir AssemblyVersion et PublishVersion avec CruiseControl.NET
Répondre
Vous devez écrire un script pour définir votre AssemblyVersion. Je recommanderais d'utiliser NAnt ou MSBuild à cette fin, mais PowerShell ou un simple fichier bat fera également.
Dans votre configuration CCNET, vous utilisez Assembly Version Labeller. CCNetLabel est disponible puis à l'intérieur du script via ${CCNetLabel}
(NAnt) resp. variable d'environnement %CCNetLabel%
(batch - essayez différents boîtiers, car je sais qu'ils ont un problème avec ça).
La tâche du script consiste à modifier le fichier AssemblyInfo.cs du projet ou à créer un fichier CommonAssemblyInfo.cs et à le référencer à partir du projet pour la génération.
SO pour rechercher
[cruisecontrol.net] AssemblyInfo
donne des conseils plus précieux.
Vous devez le définir avant la compilation dans votre AssemblyInfo.cs comme le signale l'autre répondeur. L'éditeur de version d'assemblage est génial, mais cela ne fonctionne pas avec svn. Si vous utilisez svn, vous pouvez jeter un oeil à la svn revision labeller. Une fois que l'étiquette est générée correctement, vous pouvez l'utiliser dans votre script CC ou Nant lors de la création/édition du fichier AssemblyInfo.cs. Si vous utilisez Nant, la tâche asminfo sera d'une grande aide pour vous. Une recherche SO serait bien, mais vous pouvez également jeter un oeil à this article, ce qui devrait être très utile.
Vous pouvez y parvenir avec un Nant C# Snipped décrivent here
Créer une propriété appelée $ {} assemblyinfo.file qui pointe vers le fichier AssemblyInfo.cs dans votre projet.
<!-- Updating assembly version with the CI build http://lazyloading.blogspot.com/2007/05/updating-assembly-version-with-ci.html -->
<target name="update.assembly" description="Replaces the version in the assemblyinfo.cs file">
<echo message="AssemblyInfo: ${assemblyinfo.file}" />
<echo message="Version: ${CCNetLabel}" />
<script language="C#">
<references>
<include name="System.dll" />
</references>
<imports>
<import namespace="System.Text.RegularExpressions" />
</imports>
<code>
<![CDATA[
public static void ScriptMain(Project project)
{
string fileContent="";
using (StreamReader reader = new StreamReader(project.Properties["assemblyinfo.file"]))
{
fileContent = reader.ReadToEnd();
reader.Close();
}
string newVersion = string.Format("[assembly: AssemblyVersion(\"{0}\")]", project.Properties["CCNetLabel"]);
string newText = Regex.Replace(fileContent, @"\[assembly: AssemblyVersion\("".*""\)\]", newVersion);
using (StreamWriter writer = new StreamWriter(project.Properties["assemblyinfo.file"], false))
{
writer.Write(newText);
writer.Close();
}
}
]]>
</code>
</script>
</target>
Exemple:
[assembly: ("* 1,0") AssemblyVersion]
devient
[assembly: AssemblyVersion ("2013.03.11.001")]
- 1. Utilisation de MSTest avec CruiseControl.NET
- 2. CruiseControl.Net - Utilisation des paramètres ccnet.config
- 3. changer le AssemblyVersion et Programmatically AssemblyFileVersion attributs
- 4. CruiseControl.NET et Git
- 5. Gallio Intégration avec NANT et CruiseControl.NET
- 6. CruiseControl.NET et svn
- 7. CruiseControl.net avec plusieurs langues?
- 8. Configuration de CruiseControl.NET et Clearcase
- 9. CruiseControl.NET et TFS Labeller
- 10. CruiseControl.NET, Visual Studio et SubVersion
- 11. Versioning d'assemblage avec CruiseControl.net
- 12. CruiseControl.net et Subversion
- 13. Accès au nom de projet CruiseControl.NET dans NAnt
- 14. Meilleurs rapports pour CruiseControl.NET
- 15. Comment référencer à la fois ASSEMBLYVERSION et ASSEMBLYFILEVERSION?
- 16. FTP Publisher pour CruiseControl.Net?
- 17. CruiseControl.net et SourceSafe erreur périodique
- 18. Par où commencer avec CruiseControl.NET
- 19. Tests d'automatisation CruiseControl.NET et UI
- 20. Intégration de MSBuild, FxCop et StyleCop avec CruiseControl.Net
- 21. FxCop 1.36 avec CruiseControl.NET 1.5
- 22. en utilisant CruiseControl.Net et SVN
- 23. Utilisation de paramètres dynamiques dans le bloc de paramètres éditeur de courrier électronique avec CruiseControl.Net
- 24. CruiseControl.NET avec plusieurs bases de données SourceSafe
- 25. Tâches de publication/déploiement avec CruiseControl.NET
- 26. Utilisation de macros pour définir des constantes pour CUDA
- 27. CruiseControl.Net + SSL
- 28. Utilisation de JavaScript avec JSF et Facelets
- 29. Utilisation de GridView HyperLinkField pour définir un CategoryID
- 30. MSTest & CruiseControl.Net