Wie entscheidet NuGet, ob der lokale Paket-Cache verwendet wird oder nicht?

Heute habe ich bei der Installation eines Pakets ein merkwürdiges Verhalten von NuGet festgestellt.

Eine kurze Beschreibung: Als Ergebnis meines Build-Skripts gibt es ein NuGet-Paket. Ich ändere die Version nicht jedes Mal, so dass jeder Build produziertMyPackage.1.0.0.nupkg. Als letzten Schritt des Builds schiebe ich das Paket auf den NuGet-Server, der im lokalen Netzwerk bereitgestellt wird.

Jetzt renne ich auf einer anderen Maschinenuget install MyPackage -Source http://myserver/nuget, die offensichtlich das NuGet-Paket installiert.

Das Problem tritt auf, wenn ich ein weiteres Update von drückeMyPackage - Standbild der Version1.0.0. Wenn ich versuche, es auf dem Client-Computer erneut zu installieren, erhalte ich die vorherige Version des Pakets.

ich fand herausSchuld ist der lokale Cache: Wenn das Paket installiert wurde, gelangt es in den lokalen Cache und beim nächsten Mal in das Paketder gleichen Version installiert ist, wird es aus dem Cache genommen. Meinetwegen!

Aber auf der anderen Seite gibt es eine-NoCache Option dernuget install Befehl, und ich erwarte, dass es den lokalen Cache zu ignorieren.

Dies ist jedoch nicht wahr. Das erste mal mit dem ich es laufe-NoCache, es aktualisiert den Cache und installiert die aktuellste Version. Aber das nächste Mal wird das Paket immer noch aus dem Cache genommen, auch mit-NoCache Möglichkeit.

Wird es erwartet? Liegt es daran, dass die Version nicht geändert wird?

Nur für den Fall: Alle NuGet-Vorgänge werden mit ausgeführtNuGet.exe und aus der PowerShell-Sitzung.

AKTUALISIEREN: Ich beobachte seltsames Verhalten, das ich nur durch Cache-Verfall erklären kann. Wenn das Paket zwischengespeichert wird, werden alle nachfolgenden Aufrufe annuget install ziehe das Paket aus dem Cache,bis einige Zeit vergeht. Ich habe den genauen Zeitraum nicht bemerkt, aber es ist definitiv mehr als eine Stunde. Danach,nuget install Aktualisiert das Paket im Cache und die Situation wird gleich ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage