Ich erstelle mein erstes Nuget-Paket. Ich habe eine Abhängigkeit mit einer Version hinzugefügt, die nicht die neueste Version ist. Ich möchte jedoch nicht auf die neueste Version dieser Abhängigkeit aktualisieren. Ist es möglich, es anzuweisen, die spezifische Version zu verwenden?
<dependencies>
<dependency id="NHibernate" version="3.2.0.3001" />
</dependencies>
Wenn ich das Paket installiere, sehe ich Folgendes:
Attempting to resolve dependency 'NHibernate (≥ 3.2.0.3001)'.
Dadurch wird Folgendes erstellt, wenn ich das Paket installiere.
<packages>
<package id="Iesi.Collections" version="3.2.0.4000" />
<package id="NHibernate" version="3.2.0.4000" />
</packages>
Ich würde wirklich gerne so etwas sehen: Versuch, die Abhängigkeit 'NHibernate (3.2.0.3001)' aufzulösen.
c#
.net
nuget
nuget-package
Devlife
quelle
quelle
Antworten:
Sie sollten in der Lage sein, eine genaue Version mit Klammern zu erzwingen:
<dependency id="NHibernate" version="[3.2.0.3001]" />
Ausführliche Informationen zu den Formaten, die Sie verwenden können, finden Sie auf der NuGet-Website hier:
http://docs.nuget.org/docs/reference/version-range-specification
quelle
Auf der NuGet-Dokumentenseite finden Sie die vollständigen Notationen:
quelle
Auf der Benutzerseite können Sie das Upgrade auch einschränken, indem Sie in der packages.config die zulässigen Versionen angeben. http://docs.nuget.org/docs/reference/versioning#Constraining_Upgrades_To_Allowed_Versions
quelle
Laut http://nuget.codeplex.com/wikipage?title=Dependency%20Resolution und anderen Quellen geben Sie einfach die Untergrenze als an
<dependencies> <dependency id="NHibernate" version="3.2.0.3001" /> </dependencies>
führt zu der höchsten Revisions- / Patch-Stufe der niedrigsten Haupt- / Nebenversion, die dieser Version entspricht.
Wenn ich die Dokumentation nicht völlig falsch verstehe, würde dies der höchsten Version 3.2. * Entsprechen, jedoch nicht der Version 3.3. * Oder höher, sofern keine Version 3.2. * Gefunden werden konnte.
Wenn es einen Grund gibt, warum 3.2.0.3001 die einzige Version ist, von der Sie abhängen möchten, stellen Sie möglicherweise fest, dass Ihr Paket nicht mit anderen Paketen kompatibel ist, die ebenfalls von NHibernate abhängen, z. B. weil das andere Paket von NHibernate abhängt [3.2.0.3002 , 3.3) was mindestens 3.2.0.3002 bedeutet, aber niedriger als 3.3.
quelle