NuSpec-Datei version-Attribut vs-Assembler-version
Beim erstellen eines nuget-Pakets, die version in den Datei-Namen des nuget-Pakets zu kommen scheint aus der AssemblyInfo-Datei in der web-Anwendung-Projekt. Ich habe auch ein version-Attribut innerhalb der nuspec-Datei.
Was ist die Beziehung zwischen diesen beiden Versionsnummern und gibt es irgendwelche Konventionen angeschlossen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinsichtlich übereinkommen, die NuGet software selbst, und die Semantik, die es gilt für Pakete in die Galerie, übernimmt die Versionsverwaltung, wie beschrieben, durch SemVer.
Insbesondere können Sie festlegen, dass beta-Versionen von suffixing Ihre nuspec-Versionsnummer mit "beta.4" oder so etwas. Zum Beispiel, sehen Sie, wie die Galerie zeigt die neueste version von AutoFac, und vergleichen, wie es zeigt eine alte Version (
Hinweis: der text "Dies ist nicht die neueste version von Autofac zur Verfügung."Edit: Der Galerie scheint nicht mehr für eine spezielle Nachricht für nicht-aktuelle Versionen) und eine alte PRE-release-version (mit dem text "Dies ist eine Vorabversion von Autofac.").Leider die
AssemblyVersion
imAssemblyInfo.cs
darf keine Buchstaben oder Bindestriche, also kann es nicht auf diese Weise verwendet werden. Aber dieAssemblyInformationalVersion
DÜRFEN Buchstaben und Bindestriche in der it und, wenn Sie es bieten, NuGet verwenden, statt dieAssemblyVersion
zu ersetzen, die$version$
token in Ihren nuspec-Datei. Was mehr ist, dieAssemblyInformationalVersion
(auch als "Produkt-Version", wenn Sie überprüfen, eine DLL die details zum windows-explorer), zumindest für mich, besser stellt, was die NuGet-version sollten übereinstimmen.Habe ich eine leichte Sorge mit diesem Ansatz, wird von mir erwartet, verlassen die
AssemblyVersion
derselben durch die verschiedenen beta-Iterationen und einer finalen Produktion iteration derAssemblyInformationalVersion
, was bedeutet, dass ich da mehrere verschiedene Versionen meiner DLL in der Natur, die Verhalten sich möglicherweise anders oder falsch, noch sind alle identisch, soweit die CLR betroffen ist (die CLR nur kümmert sich umAssemblyVersion
). In der Praxis ist es jedoch Häufig der Fall ist (einschließlich der mit der AutoFac-Pakete wie oben beschrieben) und es scheint nicht zu einem problem werden.Sehen die beiden exzellenten höchsten gestimmt Antworten auf Was sind die Unterschiede zwischen AssemblyVersion, AssemblyFileVersion und AssemblyInformationalVersion? für mehr info auf
AssemblyInformationalVersion
und Freunde.Es muss nicht sein, eine Beziehung zwischen den assembly-version und der nuget package version. Durch Konvention, viele Betreuer die gleiche Nummer für beide.
Des übereinkommens für die Verwendung der gleichen Nummer ist auch die
nuget.exe
Standard, wenn Sie keine nuspec-Datei, oder verwenden Sienuget.exe spec
erstellen Sie eine Token-nuspec-Datei. Allerdings, wenn Sie ersetzen die $version$ token mit Wert, dann Wert wird take precendence und werden verwendet, in das die package-Datei Namen.Können Sie auch die version auf der Kommandozeile, die Vorrang vor allen der oben genannten.
Weitere Infos über Xavier ' s blog: NuGet - $version$ token erklärt