Comment puis-je synchroniser le numéro de révision SVN avec mon site web ASP.NET?

voix
84

Stack Overflow a un numéro de version de la subversion en bas:

révision svn: 679

Je veux utiliser ce versionnage automatique avec mes .NET Web Site/Application, Windows Forms, des projets WPD / solutions.

Comment puis-je mettre cela?

Créé 01/08/2008 à 19:00
source utilisateur
Dans d'autres langues...                            


7 réponses

voix
29

On dirait que Jeff utilise CruiseControl.NET basé sur une feuilletant les transcriptions de podcast. Cela semble avoir automatisé des capacités de déploiement du contrôle de source à la production. Serait - ce là où l'insertion se passe?

Créé 01/08/2008 à 19:24
source utilisateur

voix
26

Nous le faisons avec xUnit.net pour notre automatisé construit. Nous utilisons CruiseControl.net(et testons TeamCity). La tâche MSBuild que nous courons pour l' intégration continue change automatiquement le numéro de build pour nous, donc le construire fichier ZIP résultant contient un ensemble correctement versionné de DLL et EXE.

Notre fichier MSBuild contient une référence UsingTask pour une DLL qui fait le remplacement d'expression régulière: (vous êtes invités à utiliser cette DLL, car il est couvert par la licence MS-PL ainsi)

  <UsingTask
     AssemblyFile = "3rdParty \ CodePlex.MSBuildTasks.dll"
     TaskName = "CodePlex.MSBuildTasks.RegexReplace" />

, On extrait ensuite le numéro de build, qui est fourni automatiquement par le système de CI. Vous pouvez également obtenir votre fournisseur de contrôle de code source pour fournir le numéro de révision source si vous voulez, mais nous avons trouvé la construction # dans le système de CI était plus utile, car non seulement peut voir les résultats d'intégration par le numéro de version de CI, qui fournit également lien vers le changeset (s) qui ont été inclus dans la construction.

 <! - Cascading tente de trouver un numéro de build ->

 <PropertyGroup Condition = " '$ (BuildNumber)' == ''">
   <BuildNumber> $ (BUILD_NUMBER) </ BuildNumber>
 </ PropertyGroup>
 <PropertyGroup Condition = " '$ (BuildNumber)' == ''">
   <BuildNumber> $ (ccnetlabel) </ BuildNumber>
 </ PropertyGroup>
 <PropertyGroup Condition = " '$ (BuildNumber)' == ''">
   <BuildNumber> 0 </ BuildNumber>
 </ PropertyGroup>

(Nous essayons BUILD_NUMBER, qui est de TeamCity, puis ccnetlabel, qui est de CC.net, et si ni est présent, nous par défaut à 0, afin que nous puissions tester manuellement le script de compilation automatique.)

Ensuite, nous avons une tâche qui fixe le numéro de build dans un fichier GlobalAssemblyInfo.cs que nous associons dans tous nos projets:

 <Nom target = "SetVersionNumber">
   <REGEXREPLACE
       Motif = 'AssemblyVersion \ ( "(\ d + \. \ D + \. \ D +) \. \ D +" \)'
       Remplacement = 'AssemblyVersion ( "1 $. $ (BuildNumber)")'
       Fichiers = 'GlobalAssemblyInfo.cs' />
   <Exec Commande = "attrib -r xunit.installer \ App.manifest" />
 </ Target>

Cette découverte l'attribut AssemblyVersion et remplace le numéro de version ABCD avec abcBuildNumber. Nous allons généralement laisser la source vérifiée dans l'arbre avec les trois premières parties du numéro de constructeur fixe, et le quatrième à zéro (fe, aujourd'hui, il est 1.0.2.0).

Dans votre processus de construction, assurez-vous que la tâche SetVersionNumber précède votre tâche de construction. A la fin, nous utilisons notre tâche Zip zip les résultats de construction afin que nous ayons une histoire des binaires pour chaque génération automatisée.

Créé 16/08/2008 à 19:00
source utilisateur

voix
24

Vous pouvez le faire en ajoutant le suivant partout dans votre code

$Id:$

Ainsi, par exemple a fait @ Jeff:

<div id="svnrevision">svn revision: $Id:$</div>

et quand elle est cochée dans le serveur remplacé $ Id: $ avec le numéro de révision en cours. J'ai aussi trouvé cette référence .

Il y a aussi $ Date: $ , $ Rev: $ , $ Revision: $

Créé 01/08/2008 à 19:08
source utilisateur

voix
17

Si vous utilisez ASP.Net MVC(comme StackOverflow fait), j'ai écrit un guide facile à suivre en 3 étapes sur la façon d'obtenir et d' afficher automatiquement la dernière révision de SVN . Le guide a été inspiré en pensant à moi au sujet de cette question très! : o)

Créé 17/12/2008 à 11:17
source utilisateur

voix
10

@Balloon Si vous utilisez TortoiseSVN, vous pouvez utiliser le emballé SubWCRev programme. Il interroge une copie de travail et vous indique que le plus grand nombre de révision. Certes, cela semble être une approche côté client à un problème côté serveur, mais comme il est un bon programme de ligne de commande, vous devriez être en mesure de saisir sa sortie pour une utilisation assez facilement.

Créé 15/09/2008 à 20:04
source utilisateur

voix
9

$revet d'autres comme celui-ci sont des révisions pour les fichiers individuels, ils ne changeront pas à moins que les modifications de fichiers. Le numéro sur la page Web est (le plus probable, je suppose ici) le numéro de révision svn pour l'ensemble du projet. Cela est différent que les révisions de fichiers, que d'autres ont été pointe.

Dans ce cas, je suppose que CCNET tire le numéro de révision du projet et la réécriture d'une partie de la page Web avec ce numéro. Toute solution de CI devrait être en mesure de le faire, le mettre en place moi-même avec CCNET et Teamcity (bien que pas des pages Web, mais versionnage automatique des versions de déploiement / montage).

Pour vous cela, utiliser une solution de CI qui prend en charge, ou utiliser votre processus de construction (MSBuild / Nant) pour stocker cette version et l'écrire dans les fichiers avant de « déployer » il.

Créé 13/08/2008 à 02:28
source utilisateur

voix
5

Pour ajouter @ la réponse de BradWilson: « Vous pouvez également obtenir votre fournisseur de contrôle de code source pour fournir le numéro de révision source si vous voulez »

Pour vous connecter Subversion et MSBuild: MSBuild projet Tâches communautaires

Créé 01/10/2008 à 12:51
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more