Tworzę mój pierwszy pakiet NuGet. Dodałem zależność z wersją, która nie jest najnowszą wersją. Jednak nie chcę aktualizować do najnowszej wersji tej zależności. Czy można polecić mu korzystanie z określonej wersji?
<dependencies>
<dependency id="NHibernate" version="3.2.0.3001" />
</dependencies>
Kiedy instaluję pakiet, widzę to:
Attempting to resolve dependency 'NHibernate (≥ 3.2.0.3001)'.
Tworzy to, co następuje, gdy instaluję pakiet.
<packages>
<package id="Iesi.Collections" version="3.2.0.4000" />
<package id="NHibernate" version="3.2.0.4000" />
</packages>
Naprawdę chciałbym zobaczyć coś takiego: Próba rozwiązania zależności „NHibernate (3.2.0.3001)”.
c#
.net
nuget
nuget-package
devlife
źródło
źródło
Odpowiedzi:
Powinieneś być w stanie wymusić dokładną wersję za pomocą nawiasów:
<dependency id="NHibernate" version="[3.2.0.3001]" />
Pełne informacje o formatach, których możesz używać, znajdują się w witrynie NuGet, tutaj:
http://docs.nuget.org/docs/reference/version-range-specification
źródło
W witrynie NuGet Docs kompletne notacje:
źródło
Ze strony użytkownika możesz również ograniczyć aktualizację, określając allowedVersions w pliku packages.config. http://docs.nuget.org/docs/reference/versioning#Constraining_Upgrades_To_Allowed_Versions
źródło
Według http://nuget.codeplex.com/wikipage?title=Dependency%20Resolution i innych źródeł, po prostu określając dolną granicę jako
<dependencies> <dependency id="NHibernate" version="3.2.0.3001" /> </dependencies>
spowoduje uzyskanie najwyższego poziomu poprawki / poprawki najniższej wersji głównej / pomocniczej pasującej do tej wersji.
O ile całkowicie nie zrozumiem dokumentacji, będzie to pasowało do najwyższej wersji 3.2. *, Ale nie do wersji 3.3. * Lub nowszych, chyba że nie można znaleźć wersji 3.2. *.
Jeśli jest jakiś powód, dla którego 3.2.0.3001 jest jedyną wersją, na której chcesz polegać, może się okazać, że Twój pakiet nie jest kompatybilny z innymi pakietami, które również zależą od NHibernate, na przykład ponieważ inny pakiet zależy od NHibernate [3.2.0.3002 , 3.3), co oznacza co najmniej 3.2.0.3002, ale mniej niż 3.3.
źródło