2014-11-22 13 views
5

Poszukuję formalnej definicji formatów numerów wersji plików .NET Core project.json.Format wersji project.json

wersja
Visual Studio tworzy domyślny numer wersji "1.0.0- *". Chciałbym, żeby to oznaczało, że * jest aktualizowane na kolejnych kompilacjach (nie ma). Numer wersji kompilacji to 1.0.0. Co oznacza * i jakie są możliwości prawne?

zależności
że oczekuje zależność numeracji śledzić Nuget versioning rules MPW, zważywszy, że jest w zasadzie Nuget czołowy, ale nie wydaje się, aby wspierać numeracji wspornik (na przykład „[1,2)”), - Otrzymuję "niepoprawny ciąg wersji", gdy próbuję cokolwiek innego niż format pusty lub xx- *.

Poza źródłem, czy ktoś ma link do formalnej definicji?

+0

Zobacz https://github.com/aspnet/KRuntime/issues/442, a także komentarze w powiązanym żądaniu pobierania. – AndersNS

+0

Robimy to z naszą kompilacją i prawdopodobnie powinniśmy wypalić ją w KPM. Nasze skrypty budujące ustawiają zmienną środowiskową K_BUILD_VERSION na znacznik czasu. To automagicznie zwiększa wersję za każdym razem, gdy tworzymy lokalną kopię. – davidfowl

Odpowiedz

0

Nie jestem pewien, co jest złego w szukaniu źródła dla definicji. Myślę, że to najdokładniejsze miejsce do wyszukiwania, zwłaszcza teraz, gdy vNext jest hostowany na GitHub.

Patrząc na opisany wyjątek, wskazano nam SemanticVersion.cs.

In the method TryParseInternal, it's fairly obvious why you're running into issues when attempting to declare min/max versions that way. Po prostu nie ma obsługi dla [,] lub (,) wbudowanej w tę metodę.

Jeśli spojrzymy na regularnym specyfikacji wersji Nuget, it's obvious that TryParseVersionSpec does have this handling built in.

Co do dokumentacji określającej dopuszczalne formaty, prawdopodobnie będziesz musiał czekać, aż to się statusu CTP. Jeśli uważasz, że to problem, powinieneś: document it in GitHub. Autorzy są bardzo wrażliwi na tego typu problemy. Osobiście nie jestem pewien, czy istnieje potrzeba ustawienia maksymalnej wersji zależności, gdy jest ona wdrożona wraz z kompilacją.

+1

Myślę, że czuję, że ten kod definiuje, w jaki sposób rzeczy są obecnie wdrażane, niekoniecznie jak powinny one działać lub jak powinny być używane. Poza tym poziom trudno wymaganego użycia kodu jako dokumentacji jest dość wysoki. Wyobraź sobie, że używasz źródła kompilatora .net do dokumentacji zamiast MSDN –

+0

@MattFrost: Chodzi mi o to, że prawdopodobnie nie znajdziesz zaktualizowanej dokumentacji w tym momencie, biorąc pod uwagę, że specyfikacja jest rozwijana/udoskonalana w miarę jej kodowania. Byłbym bardzo zmęczony wszelką dokumentacją, którą znajdziesz w tym momencie. – grovesNL