W odniesieniu do konwencja, oprogramowanie Nuget sama, a semantyka ma ona zastosowanie do opakowań w galerii, robi wersjonowanie jak opisał SemVer. W szczególności możesz wyznaczyć wersję beta, dodając numer wersji nuspec z "-beta.4" lub coś podobnego. Na przykład zobacz, jak galeria wyświetla the latest version of AutoFac i porównaj, jak wyświetla się an old release (, zauważ tekst "To nie jest najnowsza wersja Autofac dostępna."Edytuj: Galeria nie wydaje już żadnych specjalnych wiadomości dla -aktualne wersje) i an old PRE-release version (z tekstem "To jest wstępna wersja Autofac.").
Niestety, nazwa AssemblyVersion
w AssemblyInfo.cs
nie może zawierać liter ani myślników, więc nie można jej użyć w ten sposób. Jednak AssemblyInformationalVersion
MOŻE mieć litery i łączniki, a jeśli je podasz, NuGet użyje tego zamiast AssemblyVersion
, aby zastąpić token $version$
w twoim pliku nuspec. Co więcej, AssemblyInformationalVersion
(zwana także "Wersją produktu", jeśli sprawdzasz szczegóły DLLa w Eksploratorze Windows), przynajmniej dla mnie, lepiej reprezentuje to, co powinna dopasować wersja NuGet.
mam lekki niepokój z tego podejścia, że jestem oczekuje się opuścić AssemblyVersion
samo przez różne beta iteracji i końcowej iteracji produkcyjnej AssemblyInformationalVersion
, co oznacza, że jestem pozwalając kilka różnych wersji mojego DLL język dzika, która może zachowywać się inaczej lub niepoprawnie, ale wszystkie są identyczne w odniesieniu do CLR (dotyczy tylko ). W praktyce jednak zdarza się to często (w tym z opisanymi powyżej pakietami AutoFac) i nie wydaje się, aby powodowało problemy.
Zobacz dwie doskonałe odpowiedzi z najwyższym wynikiem głosowania na What are differences between AssemblyVersion, AssemblyFileVersion and AssemblyInformationalVersion?, aby uzyskać więcej informacji na temat AssemblyInformationalVersion
i znajomych.