Auf Englisch lesen

Freigeben über


Versionshinweise zu NuGet 1.4

NuGet 1.3 Versionshinweise | NuGet 1.5 – Versionshinweise

NuGet 1.4 wurde am 17. Juni 2011 veröffentlicht.

Features

Verbesserungen beim Update-Paket

NuGet 1.4 führt eine Reihe von Verbesserungen am Update-Package-Befehl ein, die es einfacher machen, Pakete über mehrere Projekte in einer Lösung hinweg auf derselben Version zu halten. Wenn Sie beispielsweise ein Paket auf die neueste Version aktualisieren, ist es üblich, dass alle Projekte, in denen dieses Paket installiert ist, auf dieselbe Version aktualisiert werden.

Der Update-Package-Befehl erleichtert jetzt Folgendes:

Aktualisieren aller Pakete in einem einzelnen Projekt

Update-Package -Project MvcApplication1

Aktualisieren eines Pakets in allen Projekten

Update-Package PackageId

Aktualisieren aller Pakete in allen Projekten

Update-Package

Durchführen eines „sicheren“ Updates für alle Pakete

Das -Safe-Flag schränkt Upgrades nur auf Versionen mit derselben Haupt- und Nebenversionskomponente ein. Wenn beispielsweise Version 1.0.0 eines Pakets installiert ist und Versionen 1.0.1, 1.0.2 und 1.1 im Feed verfügbar sind, aktualisiert das -Safe-Flag das Paket auf 1.0.2. Ein Upgrade ohne das -Safe-Flag würde das Paket auf die neueste Version 1.1 aktualisieren.

Update-Package -Safe

Verwalten von Paketen auf Lösungsebene

Vor NuGet 1.4 war die Installation eines Pakets in mehreren Projekten mit dem Dialogfeld umständlich. Es ist notwendig, das Dialogfeld einmal pro Projekt zu starten.

NuGet 1.4 fügt Unterstützung für die Installation/Deinstallation/Aktualisierung von Paketen in mehreren Projekten gleichzeitig hinzu. Starten Sie einfach, indem Sie mit der rechten Maustaste auf den Projektordner klicken und die Menüoption NuGet-Pakete verwalten auswählen.

Solution Level Manage NuGet Packages dialog

Beachten Sie, dass in der Titelleiste des Dialogfelds der Name des Projektordners und nicht der Name eines Projekts angezeigt wird. Paketvorgänge bieten jetzt eine Liste von Kontrollkästchen mit der Liste der Projekte, auf die der Vorgang angewendet werden soll.

Manage NuGet Packages Project Selection

Weitere Informationen finden Sie unter Verwalten von Paketen für die Lösung.

Einschränken von Upgrades auf zulässige Versionen

Wenn Sie den Update-Package-Befehl in einem Paket ausführen (oder das Paket mithilfe des Dialogfelds aktualisieren), wird er standardmäßig auf die neueste Version im Feed aktualisiert. Mit der neuen Unterstützung für das Aktualisieren aller Pakete können Fälle auftreten, in denen Sie ein Paket in einem bestimmten Versionsbereich sperren möchten. Sie können beispielsweise im Voraus wissen, dass Ihre Anwendung nur mit Version 2.* eines Pakets funktioniert, aber nicht mit 3.0 und höher. Um zu verhindern, dass das Paket versehentlich auf Version 3 aktualisiert wird, fügt NuGet 1.4 Unterstützung für die Einschränkung des Bereichs der Versionen hinzu, auf die Pakete aktualisiert werden können, indem sie Sie die packages.config-Datei mit dem neuen allowedVersions-Attribut manuell bearbeiten lässt.

Das folgende Beispiel zeigt beispielsweise, wie das SomePackage-Paket für den Versionsbereich 2.0–3.0 (exklusiv) gesperrt wird. Das allowedVersions-Attribut akzeptiert Werte im Versionsbereichsformat.

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2.0, 3.0)" />
</packages>

Beachten Sie, dass das Sperren eines Pakets in einem bestimmten Versionsbereich in 1.4 manuell bearbeitet werden muss. In NuGet 1.5 wird die Unterstützung für das Platzieren dieses Bereichs über den Install-Package-Befehl hinzugefügt.

Paket-Visualizer

Mit dem neuen Paket-Visualizer, der über die Menüoption Tools ->Library-Paket-Manager ->Paket-Visualizeraufgerufen wird, können Sie alle Projekte und ihre Paketabhängigkeiten innerhalb einer Lösung einfach visualisieren.

Wichtiger Hinweis: Dieses Feature nutzt die DGML-Unterstützung in Visual Studio. Das Erstellen der Visualisierung wird nur in Visual Studio Ultimate unterstützt. Das Anzeigen eines DGML-Diagramms wird nur in Visual Studio Premium oder höher unterstützt.

Package Visualizer

Automatische Aktualisierungsprüfung für das NuGet-Dialogfeld

In einigen Versionen von NuGet werden neue Features eingeführt, die über die .nuspec-Datei ausgedrückt werden, die von älteren Versionen des NuGet-Dialogfelds nicht verstanden werden. Ein Beispiel ist die Einführung in NuGet 1.4 zum Angeben von Frameworkassemblys. Daher ist es wichtig, die neueste Version von NuGet zu verwenden, um sicherzustellen, dass Sie Pakete verwenden können, die die neuesten Features nutzen. Um Aktualisierungen für NuGet sichtbarer zu machen, enthält das NuGet-Dialogfeld Logik, um hervorzuheben, wann eine neuere Version verfügbar ist.

Hinweis: Die Überprüfung erfolgt nur, wenn die Registerkarte Online in der aktuellen Sitzung ausgewählt wurde.

Manage NuGet Packages dialog with new version available

Um die automatische Überprüfung auf Updates zu deaktivieren, wechseln Sie zum Dialogfeld NuGet-Einstellungen, und deaktivieren Sie die Option Automatische Überprüfung auf Updates.

NuGet Settings

Dieses Feature wurde tatsächlich in NuGet 1.3 hinzugefügt, ist wenngleich nicht sichtbar, solange nicht ein Update auf 1.3, z. B. NuGet 1.4, verfügbar gemacht wurde.

Paket-Manager Dialogverbesserungen

  • Die Menünamen wurden verbessert: Die Menüoptionen zum Starten des Dialogfelds wurden aus Gründen der Übersichtlichkeit umbenannt. Die Menüoption heißt nun NuGet-Pakete verwalten.
  • Die Detailansicht zeigt das Datum der letzten Aktualisierung an: Der NuGet-Dialog zeigt das Datum der letzten Aktualisierung in der Detailansicht eines Pakets an, wenn die Registerkarte Online oder Updates ausgewählt wurde.
  • Liste der angezeigten Tags: Im Nuget-Dialogfeld werden Tags angezeigt.

PowerShell-Verbesserungen

  • Signierte PowerShell-Skripte: NuGet enthält signierte PowerShell-Skripte, die die Verwendung in restriktiveren Umgebungen ermöglichen.
  • Aufforderungsunterstützung: Die Paket-Manager-Konsole unterstützt jetzt die Eingabeaufforderung über die $host.ui.Prompt- und $host.ui.PromptForChoice-Befehle.
  • Paketquellnamen: Das Angeben des Namens einer Paketquelle wird unterstützt, wenn eine Paketquelle mithilfe des -Source-Flags angegeben wird.

Nuget.exe Befehlszeilenverbesserungen

  • Benutzerdefinierte NuGet-Befehle: nuget.exe ist über benutzerdefinierte Befehle mit MEF erweiterbar.
  • Einfacherer Workflow zum Erstellen von Symbolpaketen: Das -Symbols-Flag kann auf eine normale konventionsbasierte Ordnerstruktur angewendet werden, die ein Symbolpaket erstellt, indem nur die Quelle und die .pdb-Dateien in den Ordner mitaufgenommen werden.
  • Angeben mehrerer Quellen: Der NuGet install-Befehl unterstützt die Angabe mehrerer Quellen mithilfe von Semikolons als Trennzeichen oder durch mehrfache Angabe von -Source.
  • Unterstützung für die Proxyauthentifizierung: NuGet 1.4 bietet Unterstützung für die Aufforderung zur Eingabe von Benutzeranmeldeinformationen bei Verwendung von NuGet hinter einem Proxy, der eine Authentifizierung erfordert.
  • nuget.exe Breaking Change-Update: Das -Self-Flag ist jetzt für nuget.exe zur Selbstaktualisierung erforderlich. nuget.exe Update nimmt nun einen Pfad zur packages.config-Datei ein und versucht, Pakete zu aktualisieren. Bitte beachten Sie, dass dieses Update nur eingeschränkt funktioniert, da es nicht möglich ist: **-Inhalte in der Projektdatei zu aktualisieren, hinzuzufügen oder zu entfernen. ** Führen Sie PowerShell-Skripts innerhalb des Pakets aus.

NuGet Server-Unterstützung für Push-Pakete mit nuget.exe

NuGet bietet eine einfache Möglichkeit, ein einfaches webbasiertes NuGet-Repository über das NuGet.Server-NuGet-Paket zu hosten. Mit NuGet 1.4 unterstützt der einfache Server das Pushen und Löschen von Paketen mithilfe von nuget.exe. Die neueste Version von NuGet.Server fügt ein neues appSetting mit dem Namen apiKey hinzu. Wenn der Schlüssel weggelassen wird bzw. leer bleibt, ist das Übertragen von Paketen in den Feed deaktiviert. Das Festlegen des apiKey auf einen Wert (idealerweise ein sicheres Kennwort) ermöglicht das Pushen von Paketen mithilfe von nuget.exe.

<appSettings>
    <!-- Set the value here to allow people to push/delete packages from the server.
            NOTE: This is a shared key (password) for all users. -->
    <add key="apiKey" value="" />
</appSettings>

Unterstützung für Windows-Telefon-Tools Mango-Edition

NuGet wird jetzt in der Release-Kandidatenversion von Windows-Telefon-Tools für Mango unterstützt. Derzeit bietet Windows-Telefon-Tools keine Unterstützung für den Visual Studio-Erweiterungs-Manager; Damit Sie NuGet für Windows-Telefon-Tools installieren können, müssen Sie den VSIX möglicherweise manuell herunterladen und ausführen.

Führen Sie den folgenden Befehl aus, um NuGet für Windows-Telefon-Tools zu deinstallieren.

vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5

Fehlerkorrekturen

NuGet 1.4 hatte insgesamt 88 Arbeitselemente behoben. 71 davon wurden als Fehler gekennzeichnet.

Eine vollständige Liste der Arbeitselemente, die in NuGet 1.4 behoben wurden, sehen Sie hier [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=All&type=All&priority=All&release=NuGet%201.4&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0).

Fehlerkorrekturen, die hier erwähnt werden sollten:

  • [Issue 603](http://nuget.codeplex.com/workitem/603): Paketabhängigkeiten in verschiedenen Repositorys werden beim Angeben einer bestimmten Paketquelle ordnungsgemäß aufgelöst.
  • [Issue 1036](http://nuget.codeplex.com/workitem/1036): Das Hinzufügen von NuGet Pack SomeProject.csproj zum Postbuildereignis führt nicht mehr zu einer Endlosschleife.
  • [Issue 961](http://nuget.codeplex.com/workitem/961): -Source-Flag unterstützt relative Pfade.

NuGet 1.4-Update

Kurz nach der Veröffentlichung von NuGet 1.4 haben wir einige Probleme gefunden, die es wichtig war, zu beheben. Die spezifische Versionsnummer dieses Updates auf 1.4 ist 1.4.20615.9020.

Fehlerkorrekturen

  • [Issue 1220](http://nuget.codeplex.com/workitem/1220): Update-Package führt install.ps1/uninstall.ps1 nicht in allen Projekten aus, wenn mehrere Projekte vorhanden sind
  • [Issue 1156](http://nuget.codeplex.com/workitem/1156): Die Paket-Manager-Konsole bleibt auf W2K3/XP hängen (wenn PowerShell 2 nicht installiert ist)