Oggi ho riscontrato uno strano comportamento di NuGet durante l'installazione di un pacchetto.In che modo NuGet decide se utilizzare o meno la cache del pacchetto locale?
Una breve descrizione: come risultato del mio script di build c'è un pacchetto NuGet. Non cambio la versione ogni volta, quindi ogni build produce MyPackage.1.0.0.nupkg
. Come passaggio finale della build, sposto il pacchetto sul server NuGet distribuito all'interno della rete locale.
Ora su una macchina diversa eseguo nuget install MyPackage -Source http://myserver/nuget
, che ovviamente installa il pacchetto NuGet.
Il problema entra in gioco quando invio un altro aggiornamento di MyPackage
- ancora della versione 1.0.0
. Quando provo a reinstallarlo sul computer client, ottengo la versione precedente del pacchetto.
ho scoperto it is the local cache to be blamed: se il pacchetto è stato installato, si entra nella cache locale e la prossima volta che si installa il pacchetto della stessa versione, è preso dalla cache. Giusto!
Ma, d'altra parte, c'è un'opzione -NoCache
del comando nuget install
e mi aspetto che ignori la cache locale.
Tuttavia, questo non è vero. La prima volta che lo eseguo con -NoCache
, aggiorna la cache e installa la versione più recente. Ma, la prossima volta che il pacchetto è ancora preso dalla cache, anche con l'opzione -NoCache
.
È previsto? È a causa della versione non viene modificata?
In caso di necessità: tutte le operazioni NuGet vengono eseguite con NuGet.exe
e dalla sessione di PowerShell.
UPDATE: osservo strano comportamento Posso spiegare solo con la scadenza della cache. Quando il pacchetto viene memorizzato nella cache, tutte le chiamate successive a nuget install
estraggono il pacchetto dalla cache, fino a quando non passa il tempo. Non ho notato il periodo esatto, ma è sicuramente più di un'ora. Dopo questo, nuget install
aggiorna il pacchetto nella cache, e la situazione diventa lo stesso ...
Forse se si include l'-verbosity dettagliato i registri aggiuntivi potrebbero darci qualche suggerimento? – allen
Se aggiungo '-verbosity detailed' alla riga di comando, non emette più informazioni, solo' Installato con successo 'MyPackage.1.0.0'' Sai perché è così? –
Speravo che i registri mostrassero una certa direzione – allen