Comment mettre à jour la Valeur dans Assemblyinfo.cs dynamiquement
J'ai écrit un programme qui permet d'obtenir la valeur depuis le dépôt SVN . Maintenant, je veux mettre à jour le AssemblyFileversion avec cette valeur.
Que je ne suis pas capable d'écrire du code à l'intérieur de Assemblyinfo.cs , comment vais-je mettre à jour la valeur de AssemblyFileVersion.
Je veux arriver à quelque chose comme ceci
..........................
//Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
//You can specify all the values or you can default the Build and Revision Numbers
//by using the '*' as shown below:
//[assembly: AssemblyVersion("1.0.*")]
SvnInfoEventArgs info;
Uri repoURI = new Uri("ServerAddress");
svnClient.GetInfo(repoURI, out info);
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion(String.Format("{0}.{1}.{2}. {3}",
major,minor,build,info.Revision))]
svnversion (svnbook.red-bean.com/en/1.7/svn.ref.svnversion.re.html) est l'outil recommandé pour obtenir un numéro de version à partir d'un répertoire de travail.
OriginalL'auteur Simsons | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que vous essayez de générer un système d'ici - donc, essentiellement, vous avez besoin de modifier AssemblyInfo.cs fichier avec la commande svn nombre.
Vous pouvez créer MS tâche de génération pour la même chose: voir http://florent.clairambault.fr/insert-svn-version-and-build-number-in-your-c-assemblyinfo-file
Il est l'utilitaire de ligne de commande (SubWCRev) qui peut également être utilisé pour le mot-clé en fonction de remplacement ($WCREV$ pour la révision) - voir l'exemple ici: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev-example.html
Enfin, vous pouvez probablement dans le déploiement de votre code personnalisé (regex rechercher/remplacer) à faire de même laquelle certains (moi y compris) a faire - voir un exemple ici: http://www.codeproject.com/Articles/168528/Automatically-keep-Assembly-revisions-in-sync-with.
vérifiez si vous avez
svn.exe
dans le dossier bin. Si je me souviens bien, lors de l'installation de Tortoise SVN, vous devez sélectionner la ligne de commande client des outils pour l'installation (réexécutez le programme d'installation pour les obtenir). Sinon vous pouvez toujours télécharger svn en ligne de commande client.Grâce Vinay, Le problème est que j'ai été l'exécution du script sur afolder pas checkedout à partir de SVN. Commentant afin que tout un atterrissage sur cette page ne doit pas être confondue avec mes commentaires précédents
Pour clarifier les Simsons commentaire, nous avons eu le même problème depuis notre Teamcity a été configuré pour juste extraire le code (il n'a pas été fait dans un SVN dossier géré) et donc cette solution n'a pas fonctionné. Sans un dossier géré par SVN, la ligne de commande svn exécutables (nous avons utilisé de la Tortue) a échoué. Nous avons dû changer la configuration pour le faire vérifier et de conserver réussi SVN dossier sur l'agent de build de la machine. Ainsi, la résolution de la 1.0.-1 question.
OriginalL'auteur VinayC
Je suis en utilisant un ant de génération basé sur le système, et a eu une question similaire à propos de la mise à jour de AssemblyInfo.cs.
Mon système de construction génère déjà version.h fichiers qui sont inclus dans d'autres projets au moment de la construction. Pour le C#, j'ai décidé d'utiliser le générés VersionInfo.cs pour info la version injection dans AssemblyInfo.cs.
AssemblyInfo.cs (le programme d'installation une fois la spécification de la VersionInfo constantes)
VersionInfo.cs (généré dynamiquement par l'ant system)
version.xml (ant import - ciselée)
version.propriétés (ant fichier de propriétés de la spécification de produit des informations de version)
C# pré-événement de construction (copies auto-généré VersionInfo.cs pour les Propriétés de projet de répertoire)
MSBuild Extensions (aucun!)
BTW, mon schéma de version est: majeur.mineure.la révision.construire qui n'est pas ce que l'AssemblyInfo.cs fichier spécifie.
OriginalL'auteur bvj
Vous aurez besoin de faire cela au cours de votre processus de création.
Puisque vous êtes à l'aide de Visual Studio, vous utilisez déjà MSBuild, auquel cas le MSBuild Pack D'Extension a un AssemblyInfo tâche.
Pour obtenir la révision de la Subversion, de la MSBuild Pack d'Extension a une tâche pour qu'.
Alternativement, si vous êtes à l'aide de TeamCity pour l'intégration continue (CI), il dispose d'un "AssemblyInfo patcher" construire fonctionnalité. Je suppose que la plupart des autres systèmes CI aura quelque chose de similaire.
OriginalL'auteur Roger Lipscombe