Jak mohu synchronizovat počet SVN revize s mých webových stránkách ASP.NET?

hlasů
84

Přetečení zásobníku má číslo subverze verze ve spodní části:

svn revize: 679

Chci používat takovou automatickou verzí s mými .NET Web Site/Application, Windows Forms, projekty wpd / řešení.

Jak mohu implementovat to?

Položena 01/08/2008 v 19:00
zdroj uživatelem
V jiných jazycích...                            


7 odpovědí

hlasů
29

Vypadá to, že Jeff používá CruiseControl.NET založen na některé listoval podcast přepisů. Zdá se, že mají automatizované nasazení funkce z ovládacího prvku zdroje až po výrobu. Může to být tam, kde vložení se děje?

Odpovězeno 01/08/2008 v 19:24
zdroj uživatelem

hlasů
26

Děláme to s xUnit.net pro náš automatizovaný staví. Používáme CruiseControl.net(a snaží se TeamCity). Úkol MSBuild, že narazíme na kontinuální integraci automaticky změní číslo sestavení pro nás, takže výsledný soubor sestavení ZIP obsahuje správné číslo verze souboru DLL a EXE.

Náš soubor MSBuild obsahuje odkaz UsingTask pro DLL, který dělá regulárních výrazů náhradu: (zač použít tuto knihovnu, jak to je krytá licencí MS-PL, stejně)

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

Dále jsme extrahovat číslo sestavení, která je poskytována automaticky systému CI. Dalo by se také získat od svého provozovatele zdroj ovládacího prvku poskytnout číslo zdrojového revize, pokud chcete, ale zjistili jsme, sestavení # v systému CI bylo mnohem užitečnější, protože nejen že může vidět výsledky integrace počtem CI sestavení, která také poskytuje odkazují na changesetem (y), které byly zahrnuty v sestavení.

 <! - kaskádové pokusí najít číslo sestavení ->

 <PropertyGroup podmínka = " '$ (BuildNumber)' == ''">
   <BuildNumber> $ (build_number) </ BuildNumber>
 </ PropertyGroup>
 <PropertyGroup podmínka = " '$ (BuildNumber)' == ''">
   <BuildNumber> $ (ccnetlabel) </ BuildNumber>
 </ PropertyGroup>
 <PropertyGroup podmínka = " '$ (BuildNumber)' == ''">
   <BuildNumber> 0 </ BuildNumber>
 </ PropertyGroup>

(Snažíme BUILD_NUMBER, který je od TeamCity, pak ccnetlabel, který je od CC.net, a pokud žádný z nich není přítomen, my výchozí hodnotu 0, takže můžeme ručně otestovat automatizovaný build skriptu.)

Dále máme úkol, který nastaví číslo sestavení do souboru GlobalAssemblyInfo.cs že propojení do všech našich projektů:

 <Target Name = "SetVersionNumber">
   <RegexReplace
       Vzor = 'AssemblyVersion \ ( "(\ d + \. \ D + \. \ D +) \. \ D +" \)'
       Náhrada = 'AssemblyVersion ( "$ 1. $ (BuildNumber)")'
       Files = 'GlobalAssemblyInfo.cs' />
   <Exec Command = "attrib xunit.installer \ App.manifest" />
 </ Target>

Tato najít atribut AssemblyVersion a nahradí abcd číslo verze s abcBuildNumber. Budeme obvykle nechat zdroj zkontrolovat do stromu s prvními třemi částmi čísla stavitele stanovena, a čtvrtý na nule (Fe, dnes je to 1.0.2.0).

Ve vašem procesu sestavení, zkontrolujte, zda je úkol SetVersionNumber předchází vaše sestavení úkol. Na konci jsme se využít náš Zip úkol zip výsledky stavět tak, že máme za sebou historii binární soubory pro každou automatizovanou verzi.

Odpovězeno 16/08/2008 v 19:00
zdroj uživatelem

hlasů
24

Můžete to udělat tím, že přidá následující kdekoli v kódu

$Id:$

Tak například @Jeff udělal:

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

a při kontrole na serveru nahradil $ Id: $ s aktuálním číslem revize. Také jsem našel tento odkaz .

K dispozici je také $ Date: $ , $ Rev: $ , $ Revision: $

Odpovězeno 01/08/2008 v 19:08
zdroj uživatelem

hlasů
17

Pokud používáte ASP.Net MVC(jako StackOverflow dělá), jsem napsal snadno sledovat 3 podrobný návod na to, jak automaticky získat a zobrazit aktuální SVN revize . Tato příručka byla inspirována říkala o téhle otázce! :Ó)

Odpovězeno 17/12/2008 v 11:17
zdroj uživatelem

hlasů
10

@Balloon Pokud používáte TortoiseSVN, můžete použít balenou SubWCRev program. Dotáže pracovní kopii a řekne vám jen nejvyšší číslo verze. Je pravda, že se to zdá být na straně klienta přístup k serveru na straně problém, ale protože je to pěkný program pro příkazový řádek, měli byste být schopni zachytit jeho výstup pro použití poměrně snadno.

Odpovězeno 15/09/2008 v 20:04
zdroj uživatelem

hlasů
9

$reva jemu podobné jsou revize pro jednotlivé soubory, takže se nezmění, pokud změny souborů. Číslo na webové stránce je (s největší pravděpodobností, já jsem za předpokladu, že zde) počet svn revize pro celý projekt. Která je odlišná od revizí souborů, které by ostatní byly ukazuje na.

V tomto případě se domnívám, že CCNET táhne číslo revize projektu a přepisovat část webové stránky s tímto číslem. Jakékoli CI Roztok by měl být schopen to udělat, toto nastavení sama s CCNET a Teamcity (i když ne webových stránek, ale automatické verzování nasazení / montážních verzích).

Aby pro vás, jak to udělat, lze použít roztok KI, které ji podporují, nebo použít váš proces sestavení (MSBuild / Nant) pro uložení této verze a zapsat jej do souborů před „nasazení“ ji.

Odpovězeno 13/08/2008 v 02:28
zdroj uživatelem

hlasů
5

Chcete-li přidat do @ BradWilson je odpověď: „Dalo by se také získat od svého provozovatele zdroj ovládacího prvku poskytnout číslo zdrojového revize, pokud chcete“

Chcete-li připojit Subversion a MSBuild: MSBuild Společenství projektové úkoly

Odpovězeno 01/10/2008 v 12:51
zdroj uživatelem

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