Versionshinweise zu NuGet 2.0
NuGet 1.8 Versionshinweise | nuGet 2.1 Versionshinweise
NuGet 2.0 wurde am 19. Juni 2012 veröffentlicht.
Wenn Sie VS 2010 SP1 ausführen, wird Ihnen möglicherweise eine Fehlermeldung angezeigt, wenn Sie versuchen, ein Upgrade für NuGet durchzuführen und eine ältere Version installiert ist.
Alternativ können Sie das Problem einfach umgehen, indem Sie NuGet zuerst deinstallieren und dann über den Erweiterungskatalog von Visual Studio erneut installieren. Weitere Informationen finden Sie unter https://support.microsoft.com/kb/2581019, oder wechseln Sie direkt zum VS-Hotfix.
Hinweis: Wenn Visual Studio die Erweiterung nicht deinstallieren kann (die Schaltfläche Deinstallieren ist deaktiviert), müssen Sie Visual Studio wahrscheinlich mit „Als Administrator ausführen neu starten“.
Wie in diesem Beitrag zur Zustimmung zur Paketwiederherstellung beschrieben, erfordert NuGet 2.0 jetzt, dass die Zustimmung erteilt wird, um die Paketwiederherstellung online zu aktivieren und Pakete herunterzuladen. Stellen Sie sicher, dass Sie die Zustimmung entweder über das Konfigurationsdialogfeld des Paket-Managers oder über die Umgebungsvariable EnableNuGetPackageRestore erteilt haben.
Ab Version 2.0 können Paketabhängigkeiten je nach Frameworkprofil des Zielprojekts variieren. Dies erfolgt mithilfe eines aktualisierten .nuspec
Schemas. Ein <dependencies>
-Element enthält <group>
-Elemente. Jede Gruppe enthält null oder mehr <dependency>
Elemente und ein targetFramework
Attribut. Alle Abhängigkeiten innerhalb einer Gruppe werden gemeinsam installiert, wenn das Ziel-Framework mit dem Rahmenprofil des Zielprojekts kompatibel ist. Zum Beispiel:
<dependencies>
<group>
<dependency id="RouteMagic" version="1.1.0" />
</group>
<group targetFramework="net40">
<dependency id="jQuery" />
<dependency id="WebActivator" />
</group>
<group targetFramework="sl30">
</group>
</dependencies>
Beachten Sie, dass eine Gruppe null Abhängigkeiten enthalten kann. Wenn das Paket im obigen Beispiel in einem Projekt installiert wird, das auf Silverlight 3.0 oder höher ausgerichtet ist, werden keine Abhängigkeiten installiert. Wenn das Paket in einem Projekt installiert ist, das auf .NET 4.0 oder höher ausgerichtet ist, werden zwei Abhängigkeiten, jQuery und WebActivator, installiert. Wenn das Paket in einem Projekt installiert ist, das auf eine frühe Version dieser 2 Frameworks oder eines anderen Frameworks abzielt, wird RouteMagic 1.1.0 installiert. Es gibt keine Vererbung zwischen Gruppen. Wenn das Zielframework eines Projekts mit dem targetFramework
Attribut einer Gruppe übereinstimmt, werden nur die Abhängigkeiten innerhalb dieser Gruppe installiert.
Ein Paket kann Paketabhängigkeiten in einem von zwei Formaten angeben: das alte Format einer flachen Liste von <dependency>
Elementen oder Gruppen. Wenn das <group>
Format verwendet wird, kann das Paket nicht in Versionen von NuGet installiert werden, die älter als 2.0 sind.
Beachten Sie, dass das Mischen der beiden Formate nicht zulässig ist. Der folgende Codeausschnitt ist beispielsweise ungültig und wird von NuGet abgelehnt.
<dependencies>
<dependency id="jQuery" />
<dependency id="WebActivator" />
<group>
<dependency id="RouteMagic" version="1.1.0" />
</group>
</dependencies>
Neben Assemblyreferenzen können Inhaltsdateien und PowerShell-Skripts auch nach Zielframework gruppiert werden. Die gleiche Ordnerstruktur, die sich im lib
Ordner zum Angeben des Zielframeworks befindet, kann jetzt auf die gleiche Weise auf die content
und tools
Ordner angewendet werden. Zum Beispiel:
\content
\net11
\MyContent.txt
\net20
\MyContent20.txt
\net40
\sl40
\MySilverlightContent.html
\tools
\init.ps1
\net40
\install.ps1
\uninstall.ps1
\sl40
\install.ps1
\uninstall.ps1
Notiz: Da init.ps1
auf Lösungsebene ausgeführt wird und nicht von einem einzelnen Projekt abhängig ist, muss sie direkt unter dem tools
Ordner platziert werden. Wenn sie in einem frameworkspezifischen Ordner platziert wird, wird sie ignoriert.
Außerdem ist ein neues Feature in NuGet 2.0, dass ein Frameworkordner leer sein kann. In diesem Fall fügt NuGet keine Assemblyverweise hinzu, fügt Inhaltsdateien hinzu oder führt PowerShell-Skripts für die jeweilige Frameworkversion aus. Im obigen Beispiel ist der Ordner content\net40
leer.
Das Feature zum Abschließen der Registerkarte in der NuGet-Paket-Manager-Konsole wurde aktualisiert, um die Leistung erheblich zu verbessern. Es gibt viel weniger Verzögerung ab dem Zeitpunkt, zu dem die TAB-TASTE gedrückt wird, bis die Dropdownliste für Vorschläge angezeigt wird.
NuGet 2.0 enthält viele Fehlerkorrekturen, die sich auf die Zustimmung und Leistung der Paketwiederherstellung konzentrieren.
Eine vollständige Liste der Arbeitselemente, die in NuGet 2.0 behoben wurden, sehen Sie hier [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0)
.