NuGet Spec dépendances, obtenir la dernière version?
Dans les documents NUSPEC versioning {[8] } je vois
1.0 = 1.0 ≤ x
(,1.0] = x ≤ 1.0
(,1.0) = x < 1.0
[1.0] = x == 1.0
(1.0) = invalid
(1.0,) = 1.0 < x
(1.0,2.0) = 1.0 < x < 2.0
[1.0,2.0] = 1.0 ≤ x ≤ 2.0
empty = latest version.
J'ai un packages.config
, ce qui ressemble à ceci
<packages>
<package id="psake" version="4.2.0.1" />
</packages>
Et je voudrais changer la version en "latest".
J'ai essayé les deux
<packages>
<package id="psake" version="" />
</packages>
Et
<packages>
<package id="psake" />
</packages>
Mais les deux résultent en Unable to parse version value '' from 'packages.config'.
J'utilise Nuget.exe 2.8.2
4 réponses
Comme de Nuget 2.8, vous pouvez ajouter l'attribut suivant à votre nuget.config
<configuration>
<config>
<add key="dependencyversion" value="Highest" />
</config>
</configuration>
Lors de la résolution de vos paquets, la dernière version de ce paquet sera résolue. Les autres attributs incluent HighestMinor, HighestPatch et lowest (basé sur le versioning sémantique)
Je suppose que vous essayez d'utiliser nuget install ou NuGet restore pour réduire le paquet NuGet en utilisant NuGet.EXE.
L'attribut version dans les paquets.config définit la version installée dans le projet ou la solution.
Pour obtenir la dernière version du paquet psake NuGet, vous devez l'installer à l'aide de la console Gestionnaire de paquets, ou de la boîte de dialogue Gérer les paquets ou en connaissant la version exacte du paquet, en l'ajoutant dans les paquets.fichier de configuration, et en utilisant restauration du paquet. Comme psake est un paquet de niveau solution, il ne met pas à jour votre projet, la dernière option est réalisable.
Les plages de versions sont utilisées pour restreindre les versions de package autorisées à être installées dans votre projet.
<packages>
<package id="SomePackage" version="2.1.0" allowedVersions="[2,3)" />
</packages>
Vous pouvez également exécuter restore
sur une version arbitraire suivie de update
selon https://docs.nuget.org/consume/command-line-reference . pour assurer la dernière, vous devez relancer update
.
Mettre à jour les paquets vers les dernières versions disponibles. Cette commande met également à jour NuGet.exe lui-même. Veuillez noter que le dossier présence de paquets est requis pour exécuter la commande Update. Un moyen recommandé est d'exécuter NuGet.commande de restauration exe d'abord avant d'exécuter la mise à jour commande.
, Vous pouvez modifier votre .fichier cspoj pour exécuter une cible "BeforeBuild" comme ceci:
<Target Name="BeforeBuild">
<Exec Command=""$(SolutionDir).nuget\NuGet" update "$(ProjectDir)packages.config" -Id psake" />
</Target>
Notez que: vous aurez besoin d'avoir le " Nuget.exe " dans le répertoire de votre solution.