2009-05-28 24 views
11

C# 2008 SP1C# Skuteczny sposób zarządzania numerem wersji

Zastanawiam się, jaki jest najlepszy sposób obsługi numerów wersji.

Zawsze myślałem, że normalnie są tylko 3 cyfry. (Poprawki Major, Minor i Bug).

Zastanawiam się jednak, co to jest numer kompilacji i numer wersji.

Na przykład w przeszłości zwykle używałem tylko 3 cyfry. Jest kilka drobnych zmian lub poprawki błędów, które spowodowałyby zwiększenie trzeciej liczby (poprawki błędów).

Ponieważ jestem nowy w tym. Co zwykle dzieje się w świecie zawodowym?

Wielkie dzięki za wszelkie rady,

W moim pliku AssemblyInfo Mam następujący:

// 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.*")] 
[assembly: AssemblyVersion("1.0.2.*")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

// 1.0.2 Added feature for detecting if a sound card is installed. 

Odpowiedz

1

Dzięki za wszystkie sugestie.

Postanowiłem użyć następującego.

Mój projekt ma następującą wersję: 1.0.2.20. 1. Major zmienia 0.: Drobne zmiany 2.: Poprawki 20: Subversion numer wersji

Więc zmieniły następujące w moim pliku assemblyinfo.c

[assembly: AssemblyVersion("1.0.2.20")] 

Wszelkie sugestie na ten pomysł, byłbym szczęśliwy, słysząc.

Dziękujemy,

+2

Śledzenie liczby poprawek będzie trudne, jeśli masz wielu różnych programistów pracujących nad tym samym kodem. –

8
+0

Zwykliśmy używać podobnego podejścia, ale okazało się, że długi termin zarządzanie tą metodą jest rzeczywiście dość trudne. Dla jednego nie działa dobrze z ciągłą integracją i sieje spustoszenie na przyrostowych kompilacjach. W końcu przełączyliśmy się na używanie numeru wersji SVN jako naszego numeru kompilacji, który miał większy sens z punktu widzenia śledzenia publikacji/błędów. –

4

Będziemy chcieli, aby rozważyć swoje wersjonowania montaż i plik inaczej. Po zmianie numeru wersji złożenia jest możliwe, ale niezwykle trudne, aby istniejący kod mógł go użyć bez ponownej kompilacji. Zmieniamy wersję zespołu tylko wtedy, gdy występują zmiany łamania, więc możemy łatwo wprowadzić drobne poprawki.

Przeczytaj więcej na temat naszej polityki Assembly Versioning.

+0

Złożenia są traktowane tak samo w strukturze .net (wiązanie), jeśli nie zmienisz wersji Major i minoror –

+0

To nie jest prawda. Gdy używasz silnych nazw, bierze się pod uwagę cały numer wersji. –

+0

Link w Twojej odpowiedzi jest teraz uszkodzony. Wierzę, że to teraz [ten] (http://xheo.com/knowledge-base/deploylx/general/assembly-versioning). – ssarabando

10

Od MSDN:

  • Budowa: Różnica w liczbie kompilacji reprezentuje rekompilacji tego samego źródła. To byłoby odpowiednie ze względu na procesor, platformę lub zmiany kompilatora.

  • Korekta: zwoje o tej samej nazwie, major i minor numery wersji ale różne wersje są przeznaczone być w pełni wymienne. To byłoby odpowiednie do zamocowania otworu zabezpieczającego w uprzednio zwolnionym zespole .

Phil Haack ma nice deconstruction systemu zarządzania wersjami .NET, ale w praktyce nie sądzę jego obawy naprawdę znaczenia, ponieważ w moim doświadczeniu system wersjonowania .NET/MS jest tak naprawdę tylko używany przez techniczny do celów debugowania/wsparcia/śledzenia, zarządzanie publiczne i zarządzanie projektem będzie często oparte na dacie lub na podstawie numeru wersji marketingowej.

FWIW każdy projekt .NET, nad którym pracowałem, był zarządzany przez "X.Y. *", tzn. Lubimy ręcznie kontrolować główne i nieletnie, ale pozwalamy, aby system kontrolował budowanie i zmianę.

2

Używamy numeru poprawki błędów w przyrostach dwóch. Liczby nieparzyste oznaczają niewielkie poprawki błędów, a nawet liczby oznaczają pracę nad poprawkami. Najwyraźniej jest to powszechne w niektórych firmach, tj. W tym, w którym jestem.

Chodzi o to, aby zidentyfikować przypadkowe wydania i jakoś mi się to podoba. Robienie rzeczy, aby łatwo widzieć rzeczy, które są złe. Nie oznacza to, że liczba nieparzysta jest koniecznie nieprzypadkowym zwolnieniem, tyle tylko, że jest z całkiem dużym prawdopodobieństwem.

+0

Czy nie powinno być odwrotnie? Ponieważ .0 w twoim systemie oznacza wersję rozwojową, ale wydanie 1.0.0 jest prawdopodobnie prawdziwym wydaniem, czyż nie? : D Poza tym, lubię ten system. Ma sens. Nie jestem pewien, kiedy zwiększyć liczbę (ponieważ zbyt wcześnie oznacza "złą" wersję, a zbyt późno oznacza, że ​​nie można przetestować wcześniej z nowym numerem wersji). – OregonGhost

5

myślę odpowiedź Paul Alexander jest prawidłowa, ale chciałbym dodać następującą uwagę do pliku AssemblyInfo:

Jeśli używasz 1.0.2.* pamiętać, że ostatni bit (zastąpiony przez *) jest losowy number Więc jeśli zbudujesz 1.0.2. * tego wieczora i jutro rano zbudujesz go ponownie, druga wersja może mieć niższy numer wersji niż kompilacja, którą zrobiłeś wcześniej.

+2

Według MSDN: "Domyślna liczba kompilacji wzrasta codziennie.Domyślna wersja numeru jest losowa." –

+0

Cóż, jeśli jest losowa, możesz uzyskać tę samą anomalię: że późniejsza wersja ma niższy numer wersji niż wersja wcześniejsza. –

+0

Tylko dla rekordu numer wersji nie jest już losowy (więcej). Teraz auto-inkrementowana kompilacja i rewizja oznaczają odpowiednio datę i godzinę. Kompilacja to liczba dni, które minęły od 01.01.2000, a rewizja to liczba sekund, które upłynęły tego dnia podzielone przez dwa (z powodu mojego ograniczenia 65535). –

Powiązane problemy