Jak zsynchronizować numer poprawki SVN z mojej strony internetowej ASP.NET?

głosy
84

Przepełnienie stosu ma numer wersji Subversion na dole:

wersja svn: 679

Chcę użyć takiego automatycznego wersjonowania z moich .NET Web Site/Application, Windows Forms, projektów WPD / rozwiązań.

Jak zaimplementować to?

Utwórz 01/08/2008 o 19:00
źródło użytkownik
W innych językach...                            


7 odpowiedzi

głosy
29

Wygląda jak Jeff korzysta CruiseControl.Net na podstawie niektórych zaglądać transkryptów podcastów. To wydaje się być zautomatyzowane wdrażania możliwości z kontroli źródła do produkcji. To może być gdzie wstawiania się dzieje?

Odpowiedział 01/08/2008 o 19:24
źródło użytkownik

głosy
26

Robimy to z xUnit.net dla naszego zautomatyzowanego buduje. Używamy CruiseControl.net(i starają się TeamCity). Zadaniem MSBuild że prowadzimy do ciągłej integracji automatycznie zmienia numer kompilacji dla nas, więc wynikowy plik ZIP zawiera budować właściwie wersjonowany zestaw bibliotek DLL i EXE.

Nasz plik MSBuild zawiera odniesienie UsingTask dla DLL, który robi regularnych wymian wyrażenie: (zapraszamy do korzystania z tego DLL, jak to jest objęte licencją MS-PL, jak również)

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

Następnie możemy wyodrębnić numer kompilacji, który jest dostarczany automatycznie przez system CI. Można również dostać się z operatorem kontrolny źródeł podać numer wersji źródła, jeśli chcesz, ale okazało się, że build # w systemie CI był bardziej użyteczny, ponieważ nie tylko można zobaczyć wyniki integracyjnej przez liczbę CI budować, który zapewnia również link do changeset (ów), które zostały uwzględnione w kompilacji.

 <! - Kaskadowe próbuje znaleźć numer kompilacji ->

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

(Staramy BUILD_NUMBER, który jest z TeamCity, następnie ccnetlabel, który wynosi od CC.NET, a jeśli nie jest obecny, to domyślnie 0, tak, że możemy przetestować zautomatyzowany skrypt kompilacji ręcznie).

Następnie mamy zadanie określający numer kompilacji do pliku GlobalAssemblyInfo.cs że link do wszystkich naszych projektów:

 <Docelowa Name = "SetVersionNumber">
   <REGEXREPLACE
       Wzór = 'AssemblyVersion \ ( "(\ d + \. \ D + \. \ D +) \. \ D +" \)'
       Wymiana = 'AssemblyVersion ( "$ 1. $ (BuildNumber)")'
       Files = 'GlobalAssemblyInfo.cs' />
   <Exec poleceń = "attrib -r xunit.installer \ App.manifest" />
 </ Target>

Ten znaleźć atrybut AssemblyVersion i zastępuje ABCD numer wersji z abcBuildNumber. Będziemy zazwyczaj opuszczają źródło sprawdzone pod drzewem z pierwszych trzech części ustalonej liczby budowniczy, a czwarty na zero (Fe, dziś jest to 1.0.2.0).

W procesie kompilacji, upewnij się, że zadanie SetVersionNumber poprzedza zadanie kompilacji. Na koniec używamy nasze zadanie Zip zip wyniki kompilacji tak, że mamy historię plików binarnych dla każdej zautomatyzowanej produkcji.

Odpowiedział 16/08/2008 o 19:00
źródło użytkownik

głosy
24

Można to zrobić poprzez dodanie następującego gdziekolwiek w kodzie

$Id:$

Tak na przykład @Jeff zrobił:

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

i po sprawdzeniu na serwerze otrzymuje $ id: $ z bieżącym numerem wersji. Ja również znaleźć to odwołanie .

Istnieje również $ Date: $ , $ Rev: $ , $ Revision: $

Odpowiedział 01/08/2008 o 19:08
źródło użytkownik

głosy
17

Jeśli używasz ASP.Net MVC(podobnie jak StackOverflow), mam napisane łatwy do naśladowania instrukcji 3-stopniową, w jaki sposób dostać się automatycznie i wyświetli najnowszej wersji SVN . Przewodnik został zainspirowany do siebie myśli o tym samym pytanie! : O)

Odpowiedział 17/12/2008 o 11:17
źródło użytkownik

głosy
10

@Balloon Jeśli używasz TortoiseSVN, można użyć pakowane SubWCRev program. Pyta kopię roboczą i mówi po prostu najwyższy numer wersji. Trzeba przyznać, że to wydaje się być po stronie klienta podejście do problemu po stronie serwera, ale ponieważ jest to miły programem wiersza poleceń, powinieneś być w stanie uchwycić jego wyjście do wykorzystania dość łatwo.

Odpowiedział 15/09/2008 o 20:04
źródło użytkownik

głosy
9

$revi jemu podobne są wersje dla poszczególnych plików, więc nie zmieni, chyba że zmiany plików. Liczba na stronie jest (najprawdopodobniej, jestem zakładając tutaj) numer wersji SVN dla całego projektu. Że jest inna niż wersje plików, których inni zostały wskazujących.

W tym przypadku zakładamy, że CCNET ciągnie się numer wersji projektu i przepisywanie część strony z tego numeru. Każde rozwiązanie CI powinny być w stanie to zrobić, to skonfigurować sobie z CCNET i TeamCity (choć nie stron, ale automatyczne wersjonowanie wersjach rozmieszczenia / montaż).

W celu, aby tego dokonać, należy zastosować rozwiązanie CI, który wspiera go, lub użyć procesu kompilacji (MSBuild / Nant), aby zapisać tę wersję i zapisywać je do plików przed „wdrażania” go.

Odpowiedział 13/08/2008 o 02:28
źródło użytkownik

głosy
5

Aby dodać do @ odpowiedź BradWilson za: „Można również dostać się z operatorem w celu zapewnienia kontroli źródła numer wersji źródła, jeśli chcesz”

Aby połączyć Subversion i MSBuild: MSBuild Wspólnoty zadań projektowych

Odpowiedział 01/10/2008 o 12:51
źródło użytkownik

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