Chciałbym, aby właściwość wersji mojej aplikacji była zwiększana dla każdej kompilacji, ale nie jestem pewien, jak włączyć tę funkcję w programie Visual Studio (2005/2008). Próbowałem określić AssemblyVersion jako 1.0. *, Ale nie daje mi to dokładnie tego, czego chcę.
Używam również pliku ustawień i we wcześniejszych próbach, gdy wersja zestawu zmieniła moje ustawienia, zostały zresetowane do wartości domyślnych, ponieważ aplikacja szukała pliku ustawień w innym katalogu.
Chciałbym móc wyświetlić numer wersji w postaci 1.1.38, więc gdy użytkownik znajdzie problem, mogę zalogować używaną wersję, a także powiedzieć mu, aby zaktualizował, jeśli ma starą wersję.
Byłoby również mile widziane krótkie wyjaśnienie, jak działa wersjonowanie. Kiedy zwiększa się numer kompilacji i rewizji?
źródło
Odpowiedzi:
W przypadku elementów „Wbudowanych” nie można, ponieważ użycie wersji 1.0. * Lub 1.0.0. * Zastąpi numer wersji i kompilacji zakodowaną datą / znacznikiem czasu, co zwykle jest również dobrym sposobem.
Aby uzyskać więcej informacji, zobacz dokumentację Assembly Linker w tagu / v.
Jeśli chodzi o automatyczne zwiększanie liczb, użyj zadania AssemblyInfo:
AssemblyInfo Zadanie
Można to skonfigurować tak, aby automatycznie zwiększać numer kompilacji.
Istnieją 2 pułapki:
Odzyskanie numeru wersji jest wtedy dość łatwe:
I dla wyjaśnienia: w .net lub przynajmniej w C # kompilacja jest w rzeczywistości TRZECIM numerem, a nie czwartym, jak niektórzy ludzie (na przykład Delphi Developers, którzy są przyzwyczajeni do Major.Minor.Release.Build) mogą się spodziewać.
W .net jest to Major.Minor.Build.Revel.
źródło
VS.NET domyślnie ustawia wersję zestawu na 1.0. * I używa następującej logiki podczas auto-inkrementacji: ustawia część kompilacji na liczbę dni od 1 stycznia 2000 r., A część rewizji na liczbę sekund od północy, czas lokalny podzielony przez dwa. Zobacz ten artykuł MSDN .
Wersja zestawu znajduje się w pliku assemblyinfo.vb lub assemblyinfo.cs. Z pliku:
źródło
January 1st, 2000
Zauważyłem, że działa dobrze, aby po prostu wyświetlić datę ostatniej kompilacji, używając następujących, gdy potrzebna jest wersja produktu:
Zamiast próbować pobrać wersję z czegoś podobnego do następującego:
źródło
Z jakiego systemu kontroli źródła korzystasz?
Prawie wszystkie z nich mają jakąś formę tagu $ Id $, który jest rozwijany po wpisaniu pliku.
Zwykle używam jakiejś formy hakowania, aby wyświetlić to jako numer wersji.
Inną możliwością jest użycie daty jako numeru kompilacji: 080803-1448
źródło
[Visual Studio 2017, właściwości .csproj ]
Aby automatycznie zaktualizować właściwość PackageVersion / Version / AssemblyVersion (lub dowolną inną właściwość), najpierw utwórz nową
Microsoft.Build.Utilities.Task
klasę, która otrzyma aktualny numer kompilacji i odeśle zaktualizowany numer (zalecam utworzenie osobnego projektu tylko dla tej klasy).Aktualizuję ręcznie numery major.minor, ale pozwalam MSBuild automatycznie aktualizować numer kompilacji (1.1. 1 , 1.1. 2 , 1.1. 3 itd. :)
Następnie wywołaj niedawno utworzone zadanie w procesie MSBuild, dodając następny kod do pliku .csproj:
Podczas wybierania opcji projektu pakietu Visual Studio Pack (po prostu zmień
BeforeTargets="Build"
na wykonanie zadania przed kompilacją) kod RefreshVersion zostanie wyzwolony w celu obliczenia nowego numeru wersji, aXmlPoke
zadanie odpowiednio zaktualizuje twoją właściwość .csproj (tak, zmodyfikuje plik).Podczas pracy z bibliotekami NuGet wysyłam również pakiet do repozytorium NuGet, po prostu dodając następne zadanie kompilacji do poprzedniego przykładu.
c:\nuget\nuget
jest miejsce, w którym mam klienta NuGet (pamiętaj, aby zapisać klucz interfejsu API NuGet przez wywołanienuget SetApiKey <my-api-key>
lub dołączenie klucza do wywołania wypychanego NuGet).Na wszelki wypadek, gdyby to komuś pomogło ^ _ ^.
źródło
Jakiś czas temu napisałem szybki i brudny plik exe, który aktualizowałby numer wersji w informacjach o montażu. {Cs / vb} - Użyłem również rxfind.exe (prostego i potężnego narzędzia do zamiany wyszukiwania opartego na wyrażeniach regularnych), aby wykonać aktualizacja z wiersza poleceń w ramach procesu kompilacji. Kilka innych przydatnych wskazówek:
źródło
Jeśli chcesz, aby liczba automatycznie zwiększająca się, aktualizowana za każdym razem, gdy kompilacja jest ukończona, możesz użyć narzędzia VersionUpdater ze zdarzenia poprzedzającego kompilację. Twoje zdarzenie przed kompilacją może sprawdzić konfigurację kompilacji, jeśli wolisz, aby numer wersji był zwiększany tylko w przypadku kompilacji wydania (na przykład).
źródło