Auf Englisch lesen

Freigeben über


Versionshinweise zu NuGet 2.0

NuGet 1.8 Versionshinweise | nuGet 2.1 Versionshinweise

NuGet 2.0 wurde am 19. Juni 2012 veröffentlicht.

Bekannte Probleme bei der Installation

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.

Gruppieren von Abhängigkeiten nach Zielframeworks

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 targetFrameworkAttribut. 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>

Gruppieren von Inhaltsdateien und PowerShell-Skripts nach Zielframework

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.

Verbesserte Leistung beim Abschließen von Registerkarten

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.

Fehlerkorrekturen

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).