Versionshinweise zu NuGet 2.6

NuGet 2.5 Versionshinweise | nuGet 2.6.1 – Versionshinweise

NuGet 2.6 wurde am 26. Juni 2013 veröffentlicht.

Wichtige Features in der Version

Unterstützung für Visual Studio 2013

NuGet 2.6 ist die erste Version, die Unterstützung für Visual Studio 2013 bietet. Und wie Visual Studio 2012 ist die NuGet Package Manager-Erweiterung in jeder Edition von Visual Studio enthalten.

Um die bestmögliche Unterstützung für Visual Studio 2013 zu bieten und gleichzeitig sowohl Visual Studio 2010 als auch Visual Studio 2012 zu unterstützen und die Größe der Erweiterung so klein wie möglich zu halten, produzieren wir eine separate Erweiterung für Visual Studio 2013, während die ursprüngliche Erweiterung weiterhin sowohl für Visual Studio 2010 als auch für 2012 gilt.

Ab NuGet 2.6 veröffentlichen wir zwei Erweiterungen wie folgt:

  1. NuGet-Paket-Manager (gilt für Visual Studio 2010 und 2012)
  2. NuGet-Paket-Manager in Visual Studio 2013

Mit dieser Aufteilung gelangen Sie über die Schaltfläche „NuGet installieren“ auf der Homepage von nuget.org zur Seite NuGet installieren, auf der Sie weitere Informationen zur Installation der verschiedenen NuGet-Clients finden.

Unterstützung der XDT Web.config-Transformation

Eine der am häufigsten nachgefragten Funktionen für den NuGet-Client war die Unterstützung leistungsfähigerer XML-Transformationen unter Verwendung der XDT-Transformations-Engine, die in den Build-Konfigurations-Transformationen von Visual Studio verwendet wird.

Im April 2013 haben wir zwei große Ankündigungen zur Unterstützung von NuGet für XDT getätigt. Die erste war, dass die XDT-Bibliothek selbst als NuGet-Paket veröffentlicht werden würde und [open sourced on CodePlex](http://xdt.codeplex.com/). Mit diesem Schritt konnte das XDT-Modul frei von anderen Open-Source-Software verwendet werden, einschließlich des NuGet-Clients. Die zweite Ankündigung war der Plan, die Verwendung des XDT-Moduls für Transformationen im NuGet-Client zu unterstützen. NuGet 2.6 enthält diese Integration.

Funktionsweise

Um die XDT-Unterstützung von NuGet zu nutzen, sieht die Mechanik ähnlich wie die der aktuellen Konfigurationstransformationsfunktion aus. Transformationsdateien werden dem Inhaltsordner des Pakets hinzugefügt. Während Konfigurationstransformationen jedoch eine einzelne Datei sowohl für die Installation als auch für die Deinstallation verwenden, ermöglichen XDT-Transformationen eine differenzierte Kontrolle über beide Prozesse mithilfe folgender Dateien:

  • Web.config.install.xdt
  • Web.config.uninstall.xdt

Darüber hinaus verwendet NuGet das Dateisuffix, um zu bestimmen, welches Modul für Transformationen ausgeführt werden soll, sodass Pakete mit den bekannten web.config.transforms weiterhin funktionieren. XDT-Transformationen können auch auf eine beliebige XML-Datei (nicht nur web.config) angewendet werden, sodass Sie dies für andere Anwendungen in Ihrem Projekt nutzen können.

Was Ihnen XDT erlaubt

Einer der größten Stärken von XDT ist seine einfache, aber leistungsstarke Syntax zum Bearbeiten der Struktur eines XML-DOM. Anstatt nur eine feste Dokumentstruktur auf eine andere Struktur zu überlagern, bietet XDT Steuerelemente für übereinstimmende Elemente auf vielfältige Weise, von einfachen Attributnamenabgleich bis hin zur vollständigen XPath-Unterstützung. Sobald ein übereinstimmendes Element oder eine Gruppe von Elementen gefunden wurde, bietet XDT eine umfangreiche Reihe von Funktionen zum Bearbeiten der Elemente, unabhängig davon, ob es bedeutet, Attribute hinzuzufügen, zu aktualisieren oder zu entfernen, ein neues Element an einer bestimmten Position zu platzieren oder das gesamte Element und seine untergeordneten Elemente zu ersetzen oder zu entfernen.

Computerkonfiguration

Eine der großen Stärken von NuGet besteht darin, dass eine ansonsten große ausführbare Datei oder Bibliothek in eine Reihe modularer Komponenten unterteilt wird, die integriert werden können, und vor allem Standard tained und versioned unabhängig voneinander. Ein Nebeneffekt ist jedoch, dass die konventionelle Idee eines Produkts oder einer Produktfamilie potenziell fragmentierter wird. Das benutzerdefinierte Paketquellfeature von NuGet bietet eine Möglichkeit zum Organisieren von Paketen; Benutzerdefinierte Paketquellen können jedoch nicht eigenständig gefunden werden.

NuGet 2.6 erweitert die Logik zum Konfigurieren von NuGet durch Durchsuchen der Ordnerhierarchie unter dem Pfad %ProgramData%/NuGet/Config. Produktinstallationsprogramme können benutzerdefinierte NuGet-Konfigurationsdateien unter diesem Ordner hinzufügen, um eine benutzerdefinierte Paketquelle für ihre Produkte zu registrieren. Darüber hinaus unterstützt die Ordnerstruktur Semantik für Produkt, Version und sogar SKU der IDE. Einstellungen aus diesen Verzeichnissen werden in der folgenden Reihenfolge mit einer last in wins-Rangfolgestrategie angewendet.

  1. %ProgramData%\NuGet\Config*.config
  2. %ProgramData%\NuGet\Config{IDE}*.config
  3. %ProgramData%\NuGet\Config{IDE}{Version}*.config
  4. %ProgramData%\NuGet\Config{IDE}{Version}{SKU}*.config

In dieser Liste ist der Platzhalter {IDE} spezifisch für die IDE, in der NuGet ausgeführt wird. Im Fall von Visual Studio lautet der Platzhalter also VisualStudio. Die Platzhalter {Version} und {SKU} werden von der IDE bereitgestellt (z. B. 11.0 und WDExpress, VWDExpress bzw. PRO). Der Ordner kann dann viele verschiedene *.config-Dateien enthalten. Daher kann das ACME-Komponentenunternehmen als Teil des Produktinstallationsprogramms eine benutzerdefinierte Paketquelle hinzufügen, die nur in den Versionen Professional und Ultimate von Visual Studio 2012 sichtbar ist, indem er den folgenden Dateipfad erstellt:

%ProgramData%\NuGet\Config\VisualStudio\11.0\Pro\acme.config

Während die Ordnerstruktur es für Programme wie Softwareinstallationsprogramme einfach macht, computerweite Paketquellen zur Konfiguration von NuGet hinzuzufügen, wurde das NuGet-Konfigurationsdialogfeld auch aktualisiert, um die Registrierung von Paketquellen als benutzerspezifisch (z. B. in %AppData%/NuGet/NuGet.Config) oder computerweit zuzulassen.

Dieses Feature wird von Visual Studio 2013 verwendet, wobei eine Datei installiert ist unter:

%ProgramData%\NuGet\Config\VisualStudio\12.0\Microsoft.VisualStudio.config

In dieser Datei wird eine neue Paketquelle namens .NET Framework Packages konfiguriert.

NuGet Config File machine wide settings

Da die Anzahl der vom NuGet-Katalog bereitgestellten Pakete in exponentiellem Tempo weiter wächst, verbessern Sie die Suchvorgänge Standard immer am Anfang der NuGet-Prioritätsliste. Eine der geplanten Features für NuGet ist die Kontextsuche, d. h., NuGet verwendet Informationen über die Version und SKU von Visual Studio, die Sie verwenden, und den Typ des Projekts, das Sie als Kriterien für die Ermittlung der Relevanz potenzieller Suchergebnisse erstellen.

Ab NuGet 2.6 wird bei jeder Installation eines Pakets der Kontext für die Installation als Teil der Installationsvorgangsdaten aufgezeichnet. Suchvorgänge senden auch die gleichen Kontextinformationen, die es dem NuGet-Katalog ermöglichen, Suchergebnisse durch kontextbezogene Installationstrends zu steigern. Ein zukünftiges Update auf den NuGet-Katalog ermöglicht diese kontextabhängige Relevanzsteigerung.

Nachverfolgen von Direct Installs im Vergleich zu Abhängigkeitsinstallationen

Paketautoren verlassen sich immer mehr auf die Paketstatistiken, die im NuGet-Katalog bereitgestellt werden. Ein wichtiger fehlender Datenpunkt, den Autoren angefordert haben, ist eine Differenzierung zwischen er direkten Installation von Paketen und der Installation von Abhängigkeiten. Bisher hat der NuGet-Client keinen Kontext um den Installationsvorgang gesendet, um festzustellen, ob der Entwickler das Paket direkt installiert hat oder ob es installiert wurde, um eine Abhängigkeit zu erfüllen. Ab NuGet 2.6 werden diese Daten nun für den Installationsvorgang gesendet. Paketstatistiken im NuGet-Katalog machen diese Daten als separate Installationsvorgänge mit einem Suffix „-Abhängigkeit“ verfügbar.

  • Installieren
  • Installieren Sie Abhängigkeiten.
  • Aktualisieren
  • Abhängigkeiten aktualisieren
  • Neuinstallation
  • Erneutes Installieren der Abhängigkeit

Neben dem unterschiedlichen Vorgangsnamen wird auch die abhängige Paket-ID für die Installation aufgezeichnet. Ein zukünftiges Update für den NuGet-Katalog wird diese Daten in Berichten verfügbar machen, sodass Paketautoren vollständig verstehen können, wie Entwickler ihre Pakete installieren.

Fehlerkorrekturen

NuGet 2.6 enthält auch mehrere Fehlerbehebungen. Eine vollständige Liste der Arbeitselemente, die in NuGet 2.6 behoben wurden, sehen Sie hier [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.6&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0&reasonClosed=All).