AssemblyInfo.cs subversion et TortoiseSVN

J’utilise TortoiseSVN et Visual Studio 2008. Est-il possible de mettre à jour le fichier assemblyinfo.cs de mon projet avec la version de svn dans chaque version?

Par exemple, 1.0.0. [Version de svn] -> 1.0.0.12

    Vous pouvez utiliser l’outil SubWCRev fourni avec TortoiseSVN (également disponible séparément).

    Exécutez-le à partir d’une ligne de commande ou utilisez l’ object COM proposé .

    L’outil de ligne de commande SubWCRev remplace les mots-clés d’ un fichier par les informations de votre copie de travail svn. Un exemple est présenté dans la documentation.

    Je le fais dans mon script de construction :

        

    en utilisant les tâches de construction de la communauté . Cela applique essentiellement une expression rationnelle à AssemblyInfo.cs, en remplaçant la révision actuelle par la révision svn.

    Vous pouvez utiliser le mot clé $Rev$ svn mais cela vous donnera la dernière révision du fichier. Je pense que vous souhaitez obtenir le numéro de révision HEAD .

    Jetez un coup d’oeil à cette question:

    • Comment synchroniser le numéro de révision SVN avec mon site Web ASP.NET?

    Que pensez-vous du complément de Visual Studio qui le fait?

    Oui, vous pouvez append un événement de pré-construction qui appelle un script qui

    • appelle svn info pour extraire le numéro de révision actuel (si vous effectuez une mise à jour auparavant, vous pouvez directement inclure le mot clé $Revision$ dans un fichier, vérifiez également cet article );
    • modifie en conséquence votre fichier Properties \ AssemblyInfo.cs.

    Ce que je fais habituellement est de transformer un modèle AssemblyInfo.cs lorsque le projet est généré. Le script est nécessaire pour adapter la forme de $ Revision $ à la syntaxe de ce fichier, malheureusement.

    Les propriétés intéressantes sont (où les chaînes de template sont entre ‘$’):

     [assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev$")] [assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev$")] 

    Edit: svn info fait partie du client SVN standard, pas de TortoiseSVN comme indiqué dans un autre message. Facile à installer cependant. Cependant, TortoiseSVN est fourni avec SubWCRev.exe qui transforme un fichier avec une substitution de mot clé, ce qui ferait l’affaire si vous mettez à jour votre copie locale.

    Dans Visual Studio 2008, vous pouvez définir un événement de pré-génération pouvant lancer un script ou un petit programme. Dans ce script ou ce programme, vous pouvez utiliser la commande svnversion pour obtenir la révision du référentiel, puis parsingr votre AssemblyInfo.cs et modifier le numéro de version comme vous le souhaitez.

    Je ne sais pas si TortoiseSVN est fourni avec svnversion, mais il est fourni avec la version Windows SVN fournie par CollabNet.

    J’ai créé un plug-in de version SVN pour le projet Build Version Increment (nommé dans la réponse de Popester). Ce plug-in SVN extraira le dernier numéro de révision de votre copie de travail et vous permettra de l’utiliser dans votre numéro de version, ce qui devrait permettre d’accomplir exactement ce que vous essayez de faire.