Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
NuGet 2.7.2 Versionshinweise | NuGet 2.8.1 Versionshinweise
NuGet 2.8 wurde am 29. Januar 2014 veröffentlicht.
Danksagung
-
[Llewellyn Pritchard](https://www.codeplex.com/site/users/view/leppie)(@leppie)-
[#3466](https://nuget.codeplex.com/workitem/3466)- Beim Packen von Paketen überprüfen Sie die ID der Abhängigkeitspakete.
-
-
[Maarten Balliauw](https://www.codeplex.com/site/users/view/maartenba)(@maartenballiauw)-
[#2379](https://nuget.codeplex.com/workitem/2379)– Entfernen Sie das suffix $metadata beim Beibehalten von Feedanmeldeinformationen.
-
-
[Filip De Vos](https://www.codeplex.com/site/users/view/FilipDeVos)(@foxtricks)-
[#3538](http://nuget.codeplex.com/workitem/3538)– Unterstützung beim Angeben der Projektdatei für den Befehl "nuget.exe Aktualisieren".
-
[Juan Gonzalez](https://www.codeplex.com/site/users/view/jjgonzalez)-
[#3536](http://nuget.codeplex.com/workitem/3536)– Ersatztoken wurden nicht mit "-IncludeReferencedProjects" übergeben.
-
-
[David Poole](https://www.codeplex.com/site/users/view/Sarkie)(@Sarkie_Dave)-
[#3677](http://nuget.codeplex.com/workitem/3677)- Korrigiere, dass nuget.push eine OutOfMemoryException wirft, wenn ein großes Paket veröffentlicht wird.
-
[Wouter Ouwens](https://www.codeplex.com/site/users/view/Despotes)-
[#3666](http://nuget.codeplex.com/workitem/3666)– Korrigieren Sie den falschen Zielpfad, wenn das Projekt auf ein anderes CLI/C++-Projekt verweist.
-
-
[Adam Ralph](http://www.codeplex.com/site/users/view/adamralph)(@adamralph)-
[#3639](https://nuget.codeplex.com/workitem/3639)– Zulassen, dass Pakete standardmäßig als Entwicklungsabhängigkeiten installiert werden
-
-
[David Fowler](https://www.codeplex.com/site/users/view/dfowler)(@davidfowl)-
[#3717](https://nuget.codeplex.com/workitem/3717)– Entfernen impliziter Upgrades auf die neueste Patchversion
-
[Gregory Vandenbrouck](https://www.codeplex.com/site/users/view/vdbg)- Verschiedene Fehlerbehebungen und Verbesserungen für NuGet.Server, den nuget.exe Spiegelbefehl und andere.
- Diese Arbeit wurde über mehrere Monate hinweg ausgeführt, wobei Gregory mit uns an dem richtigen Zeitpunkt für die Integration in die Hauptversion für 2.8 arbeitete.
Patchauflösung für Abhängigkeiten
Beim Auflösen von Paketabhängigkeiten hat NuGet historisch eine Strategie implementiert, die niedrigste Haupt- und Nebenpaketversion auszuwählen, die den Abhängigkeiten des Pakets entspricht. Im Gegensatz zur Haupt- und Nebenversion wurde die Patchversion jedoch immer auf die höchste Version aufgelöst. Obwohl das Verhalten gut beabsichtigt war, hat es einen Mangel an Determinismus für die Installation von Paketen mit Abhängigkeiten geschaffen. Betrachten Sie das folgenden Beispiel:
PackageA@1.0.0 -[ >=1.0.0 ]-> PackageB@1.0.0
Developer1 installs PackageA@1.0.0: installed PackageA@1.0.0 and PackageB@1.0.0
PackageB@1.0.1 is published
Developer2 installs PackageA@1.0.0: installed PackageA@1.0.0 and PackageB@1.0.1
In diesem Beispiel hat Developer1 und Developer2 PackageA@1.0.0 installiert, wobei jeder mit einer anderen Version von PackageB endete. NuGet 2.8 ändert dieses Standardverhalten so, dass das Verhalten der Abhängigkeitsauflösung für Patchversionen mit dem Verhalten für Haupt- und Nebenversionen konsistent ist. Im obigen Beispiel würde dann PackageB@1.0.0 als Ergebnis der Installation von PackageA@1.0.0.0 installiert werden, unabhängig von der neueren Patchversion.
-DependencyVersion-Schalter
Obwohl NuGet 2.8 das Standardverhalten für die Auflösung von Abhängigkeiten ändert, fügt es auch eine präzisere Kontrolle über den Prozess der Abhängigkeitsauflösung über den -DependencyVersion Switch in der Paket-Manager-Konsole hinzu. Die Option ermöglicht das Auflösen von Abhängigkeiten auf die niedrigste mögliche Version (Standardverhalten), die höchste mögliche Version oder die höchste Neben- oder Patchversion. Dieser Switch funktioniert nur für das Installationspaket im PowerShell-Befehl.
DependencyVersion-Attribut
Neben dem oben beschriebenen -DependencyVersion Switch hat NuGet auch die Möglichkeit, ein neues Attribut in der Datei "Nuget.Config" festzulegen, die definiert, was der Standardwert ist, wenn der -DependencyVersion Switch nicht in einem Aufruf des Installationspakets angegeben ist. Dieser Wert wird auch vom NuGet-Paket-Manager-Dialogfeld für alle Installationspaketvorgänge berücksichtigt. Um diesen Wert festzulegen, fügen Sie das folgende Attribut zur Datei "Nuget.Config" hinzu:
<config>
<add key="dependencyversion" value="Highest" />
</config>
Vorschau auf NuGet-Vorgänge mit -whatif
Einige NuGet-Pakete können tiefe Abhängigkeitsdiagramme aufweisen, und daher kann es während einer Installation, Deinstallation oder eines Updatevorgangs hilfreich sein, um zuerst zu sehen, was passiert. NuGet 2.8 fügt den Standard-PowerShell--whatif Wechsel zu den Befehlen "Install-Package", "Uninstall-Package" und "Update-Package" hinzu, um die Visualisierung des gesamten Schließens von Paketen zu ermöglichen, auf die der Befehl angewendet wird. Wenn Sie install-package Microsoft.AspNet.WebApi -whatif in einer leeren ASP.NET-Webanwendung ausführen, wird Folgendes angezeigt.
PM> install-package Microsoft.AspNet.WebApi -whatif
Attempting to resolve dependency 'Microsoft.AspNet.WebApi.WebHost (≥ 5.0.0)'.
Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Core (≥ 5.0.0)'.
Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Client (≥ 5.0.0)'.
Attempting to resolve dependency 'Newtonsoft.Json (≥ 4.5.11)'.
Install Newtonsoft.Json 4.5.11
Install Microsoft.AspNet.WebApi.Client 5.0.0
Install Microsoft.AspNet.WebApi.Core 5.0.0
Install Microsoft.AspNet.WebApi.WebHost 5.0.0
Install Microsoft.AspNet.WebApi 5.0.0
Downgradepaket
Es ist nicht ungewöhnlich, eine Vorabversion eines Pakets zu installieren, um neue Features zu untersuchen und dann ein Rollback auf die letzte stabile Version durchzuführen. Vor NuGet 2.8 war dies ein mehrstufiger Prozess zum Deinstallieren des Vorabpakets und seiner Abhängigkeiten und anschließender Installation der früheren Version. Mit NuGet 2.8 wird das Update-Paket jedoch die gesamte Paketstruktur (z. B. den Abhängigkeitsbaum des Pakets) auf die vorherige Version zurücksetzen.
Entwicklungsabhängigkeiten
Viele verschiedene Arten von Funktionen können als NuGet-Pakete bereitgestellt werden – einschließlich Tools, die zur Optimierung des Entwicklungsprozesses verwendet werden. Diese Komponenten können zwar bei der Entwicklung eines neuen Pakets von entscheidender Bedeutung sein, sollten jedoch nicht als Abhängigkeit des neuen Pakets betrachtet werden, wenn es später veröffentlicht wird. NuGet 2.8 ermöglicht, dass ein Paket sich in der .nuspec Datei als Entwicklungsabhängigkeit identifiziert. Bei der Installation werden diese Metadaten auch der packages.config Datei des Projekts hinzugefügt, in der das Paket installiert wurde. Wenn diese packages.config Datei später für nuget.exe packNuGet-Abhängigkeiten analysiert wird, schließt sie diese Abhängigkeiten aus, die als Entwicklungsabhängigkeiten gekennzeichnet sind.
Einzelne packages.config Dateien für verschiedene Plattformen
Bei der Entwicklung von Anwendungen für mehrere Zielplattformen ist es üblich, für jede der jeweiligen Buildumgebungen unterschiedliche Projektdateien zu verwenden. Es ist auch üblich, unterschiedliche NuGet-Pakete in verschiedenen Projektdateien zu nutzen, da Pakete unterschiedliche Unterstützungsebenen für verschiedene Plattformen haben. NuGet 2.8 bietet eine verbesserte Unterstützung für dieses Szenario, indem verschiedene packages.config Dateien für verschiedene plattformspezifische Projektdateien erstellt werden.
Fallback auf lokalen Cache
Obwohl NuGet-Pakete in der Regel aus einem Remotekatalog wie dem NuGet-Katalog mit einer Netzwerkverbindung genutzt werden, gibt es viele Szenarien, in denen der Client nicht verbunden ist. Ohne Netzwerkverbindung konnte der NuGet-Client keine Pakete erfolgreich installieren – auch wenn diese Pakete bereits auf dem Computer des Clients im lokalen NuGet-Cache vorhanden waren. NuGet 2.8 fügt der Paket-Manager-Konsole automatische Cache-Fallback hinzu. Wenn Sie z. B. den Netzwerkadapter trennen und jQuery installieren, zeigt die Konsole Folgendes:
PM> Install-Package jquery
The source at nuget.org [https://www.nuget.org/api/v2/] is unreachable. Falling back to NuGet Local Cache at C:\Users\me\AppData\Local\NuGet\Cache
Installing 'jQuery 2.0.3'.
Successfully installed 'jQuery 2.0.3'.
Adding 'jQuery 2.0.3' to WebApplication18.
Successfully added 'jQuery 2.0.3' to WebApplication18.
Für das Cache-Fallbackfeature sind keine bestimmten Befehlsargumente erforderlich. Darüber hinaus funktioniert der Cache-Fallback derzeit nur in der Paket-Manager-Konsole. Dieses Verhalten funktioniert derzeit nicht im Paket-Manager-Dialog.
WebMatrix NuGet-Client-Updates
Zusammen mit NuGet 2.8 wurde die NuGet-Erweiterung für WebMatrix auch aktualisiert, um viele der wichtigsten Features zu enthalten, die mit NuGet 2.5 bereitgestellt werden. Zu den neuen Funktionen gehören z. B. "Alle aktualisieren", "Minimale NuGet-Version" und das Überschreiben von Inhaltsdateien.
So aktualisieren Sie Ihre NuGet Package Manager-Erweiterung in WebMatrix 3:
- WebMatrix 3 öffnen
- Klicken Sie im Menüband auf das Symbol "Erweiterungen".
- Wählen Sie die Registerkarte "Updates" aus.
- Klicken Sie hier, um den NuGet-Paket-Manager auf 2.5.0 zu aktualisieren.
- Schließen und Neustarten von WebMatrix 3
Dies ist die erste Version des NuGet-Teams der NuGet-Paket-Manager-Erweiterung für WebMatrix. Der Code wurde kürzlich von Microsoft zum Open-Source-NuGet-Projekt beigetragen. Früher war die NuGet-Integration in WebMatrix enthalten und konnte nicht unabhängig von WebMatrix aktualisiert werden. Wir haben nun die Möglichkeit, sie zusammen mit den restlichen NuGet-Clienttools weiter zu aktualisieren.
Fehlerkorrekturen
Eine der wichtigsten Fehlerkorrekturen, die vorgenommen wurden, war die Leistungsverbesserung im update-package -reinstall Befehl.
Zusätzlich zu diesen Features und dem oben genannten Leistungskorrektur enthält diese Version von NuGet auch viele andere Bugfixes. In der Version wurden insgesamt 181 Probleme behoben. Eine vollständige Liste der Aufgaben, die in NuGet 2.8 behoben wurden, finden Sie im [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.8&status=all).