Stack Overflow ma numer wersji subversion na dole:
Wersja SVN: 679
Chcę używać takiego automatycznego wersjonowania z moimi .NET Web Site/Application
projektami / rozwiązaniami, Windows Forms, WPD.
Jak to zaimplementować?
.net
asp.net
svn
versioning
Zack Peterson
źródło
źródło
Odpowiedzi:
Wygląda na to, że Jeff używa CruiseControl.NET w oparciu o przeglądanie transkrypcji podcastów. Wydaje się, że ma to zautomatyzowane możliwości wdrażania, od kontroli źródła do produkcji. Czy to może być miejsce, w którym ma miejsce wstawianie?
źródło
Robimy to z xUnit.net dla naszych automatycznych kompilacji. Używamy
CruiseControl.net
(i wypróbowujemy TeamCity). Zadanie programu MSBuild, które uruchamiamy w celu ciągłej integracji, automatycznie zmienia numer kompilacji za nas, więc wynikowy plik kompilacji ZIP zawiera odpowiednio wersjonowany zestaw bibliotek DLL i EXE.Nasz plik MSBuild zawiera odniesienie do UsingTask dla biblioteki DLL, która zastępuje wyrażenia regularne: (możesz używać tej biblioteki DLL, ponieważ jest ona również objęta licencją MS-PL)
Następnie wyodrębniamy numer kompilacji, który jest automatycznie dostarczany przez system CI. Jeśli chcesz, możesz również poprosić dostawcę kontroli źródła o podanie numeru wersji źródła, ale okazało się, że numer kompilacji w systemie CI jest bardziej przydatny, ponieważ nie tylko można zobaczyć wyniki integracji według numeru kompilacji CI, który również zapewnia łącze z powrotem do zestawu zmian, które zostały uwzględnione w kompilacji.
(Próbujemy BUILD_NUMBER, który pochodzi z TeamCity, a następnie ccnetlabel, który pochodzi z CC.net, a jeśli żadne z nich nie jest obecne, domyślnie ustawiamy 0, abyśmy mogli ręcznie przetestować automatyczny skrypt kompilacji).
Następnie mamy zadanie, które ustawia numer kompilacji w pliku GlobalAssemblyInfo.cs, który łączymy ze wszystkimi naszymi projektami:
To znajduje atrybut AssemblyVersion i zastępuje numer wersji abcd abcBuildNumber. Zwykle zostawiamy źródło zaznaczone w drzewie z ustalonymi pierwszymi trzema częściami numeru budującego, a czwartą ustawioną na zero (np. Dzisiaj jest to 1.0.2.0).
W procesie kompilacji upewnij się, że zadanie SetVersionNumber poprzedza zadanie kompilacji. Na koniec używamy naszego zadania Zip, aby spakować wyniki kompilacji, abyśmy mieli historię plików binarnych dla każdej automatycznej kompilacji.
źródło
Możesz to zrobić, dodając następujące elementy w dowolnym miejscu kodu
$Id:$
Na przykład @Jeff zrobił:
<div id="svnrevision">svn revision: $Id:$</div>
a po zameldowaniu serwer zastąpił $ Id: $ aktualnym numerem wersji. Znalazłem również to odniesienie .
Jest też $ Data: $ , $ Wersja: $ , $ Wersja: $
źródło
Jeśli używasz
ASP.Net MVC
(tak jak robi to StackOverflow), napisałem łatwy do wykonania 3-stopniowy przewodnik, jak automatycznie pobrać i wyświetlić najnowszą wersję SVN . Przewodnik został zainspirowany myśleniem o tym właśnie pytaniu! : o)źródło
@Balloon Jeśli używasz TortoiseSVN, możesz użyć pakietu programu SubWCRev . Pyta o kopię roboczą i podaje tylko najwyższy numer wersji. Wprawdzie wydaje się, że jest to podejście klienta do problemu po stronie serwera, ale ponieważ jest to fajny program wiersza poleceń, powinieneś być w stanie dość łatwo przechwycić jego dane wyjściowe do użycia.
źródło
$rev
a inne podobne są wersjami poszczególnych plików, więc nie zmienią się, dopóki plik się nie zmieni. Numer na stronie to (najprawdopodobniej zakładam tutaj) numer wersji svn dla całego projektu. Różni się to od wersji plików, na które inni wskazywali.W tym przypadku zakładam, że CCNET pobiera numer wersji projektu i przepisuje część strony internetowej o tym numerze. Każde rozwiązanie CI powinno być w stanie to zrobić, skonfiguruj to samodzielnie za pomocą CCNET i Teamcity (chociaż nie strony internetowe, ale automatyczne wersjonowanie wersji wdrożeniowych / montażowych).
Aby to zrobić, użyj rozwiązania CI, które je obsługuje, lub użyj procesu kompilacji (MSbuild / Nant) do przechowywania tej wersji i zapisania jej w plikach przed jej „wdrożeniem”.
źródło
Aby dodać do odpowiedzi @ BradWilson: „Jeśli chcesz, możesz również poprosić swojego dostawcę kontroli źródła o podanie numeru wersji źródła”
Aby połączyć Subversion i MSBuild: Projekt zadań społeczności MSBuild
źródło