Question

J'utilise TortoiseSVN et Visual Studio 2008. Existe-t-il un moyen 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

Était-ce utile?

La solution

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

Lancez-le depuis une ligne de commande ou utilisez le COM- Objet offert.

L'outil de ligne de commande SubWCRev remplace les mots clés dans un fichier. avec les informations de votre copie de travail svn. Un exemple est affiché dans les documents.

Autres conseils

Je le fais dans mon script de construction :

<SvnInfo LocalPath=".">
  <Output TaskParameter="Revision" PropertyName="BuildRev" />
</SvnInfo>
<FileUpdate Files="protobuf-net\Properties\AssemblyInfo.cs"
  Regex='(\[\s*assembly:\s*AssemblyVersion\(\s*"[^\.]+\.[^\.]+)\.([^\.]+)(\.)([^\.]+)("\)\s*\])'
  ReplacementText='$1.$2.$(BuildRev)$5' />

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

Vous pouvez utiliser le $ Rev $ svn mot-clé , 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'œil à cette question:

Que pensez-vous d'un complément de Visual Studio?

Oui, vous pouvez ajouter 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, cochez également < a href = "https://stackoverflow.com/questions/1620598/how-to-get-the-current-revision-number-into-a-file-after-export/1620624#1620624"> cet article );
  • modifie votre fichier Properties \ AssemblyInfo.cs en conséquence.

Ce que je fais habituellement est de transformer un modèle AssemblyInfo.cs lors de la construction du projet. 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 du modèle sont entre '$'):

[assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev<*>quot;)]
[assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev<*>quot;)]

Éditer: svn info fait partie du client SVN standard, pas de TortoiseSVN comme indiqué dans un autre article. Facile à installer cependant. Cependant, TortoiseSVN est livré avec SubWCRev.exe qui transforme un fichier avec une substitution de mot clé, ce qui serait pratique 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 programme, vous pouvez utiliser la commande svnversion pour obtenir la révision du référentiel, puis analyser votre AssemblyInfo.cs et modifier le numéro de version comme vous le souhaitez.

Je ne sais pas si TortoiseSVN est livré avec svnversion, mais avec Windows. Version SVN fournie par CollabNet

J'ai créé un plug-in de version SVN pour la 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 donner exactement ce que vous essayez de faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top