2012-08-15 13 views
25

Podczas tworzenia pakietu nuget wydaje się, że wersja w nazwie pliku pakietu nuget pochodzi z pliku AssemblyInfo w projekcie aplikacji WWW. W pliku Nuspec utworzyłem również atrybut wersji.Atrybut wersji NuSpec a wersja zestawu

Jaki jest związek między tymi dwoma numerami wersji i czy istnieją jakieś konwencje?

Odpowiedz

18

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.

7

Nie ma związku między wersją zespołu a wersją pakietu nuget. Zgodnie z konwencją wielu opiekunów używa obu tych samych numerów.

Konwencja dotycząca używania tego samego numeru jest również domyślna, jeśli nie masz nuspec, lub używasz nuget.exe spec do utworzenia tokenizowanego pliku nuspec. Jeśli jednak zastąpisz token $ wersja $ wartością, to ta wartość będzie wymagać wprowadzenia i będzie używana w nazwie pliku pakietu.

Można również ustawić wersję w wierszu poleceń, co ma pierwszeństwo przed wszystkimi powyższymi.

Więcej informacji na blogu Xaviera: NuGet $version$ token explained

Powiązane problemy