Anmerkungen zu NuGet 2.5NuGet 2.5 Release Notes

Anmerkungen zu NuGet 2.2.1 | Anmerkungen zu NuGet 2.6NuGet 2.2.1 Release Notes | NuGet 2.6 Release Notes

NuGet 2.5 wurde auf 25 April 2013 veröffentlicht.NuGet 2.5 was released on April 25, 2013. Diese Version wurde so groß, wir sind der Ansicht sieht, überspringen Sie die Version 2.3 und 2.4.This release was so big, we felt compelled to skip versions 2.3 and 2.4! Heute ist dies die Umfangreichstes bisher wurde für NuGet mit über 160 Arbeitsaufgaben in der Version.To date, this is the largest release we've had for NuGet, with over 160 work items in the release.

BestätigungenAcknowledgements

Wir würden gerne, vielen Dank, dass die folgenden externen Mitwirkenden für ihre wichtige Beiträge zu NuGet 2.5:We would like to thank the following external contributors for their significant contributions to NuGet 2.5:

  1. Daniel Plaisted (@dsplaisted)Daniel Plaisted (@dsplaisted)
    • #2847 -MonoAndroid hinzufügen, MonoTouch und MonoMac zur Liste der bekannten Ziel frameworkbezeichner.#2847 - Add MonoAndroid, MonoTouch, and MonoMac to the list of known target framework identifiers.
  2. G. Aragoneses Andres (@knocte)Andres G. Aragoneses (@knocte)
    • #2865 -korrigieren Sie die Schreibweise des NuGet.targets für ein Betriebssystem Groß-/Kleinschreibung#2865 - Fix spelling of NuGet.targets for a case-sensitive OS
  3. David Fowler (@davidfowl)David Fowler (@davidfowl)
    • Stellen Sie die Projektmappe, die in Mono erstellen.Make the solution build on Mono.
  4. Andrew Theken (@atheken)Andrew Theken (@atheken)
    • Beheben Sie Komponententests auf Mono fehlschlagen.Fix unit tests failing on Mono.
  5. Olivier Dagenais (@OliIsCool)Olivier Dagenais (@OliIsCool)
    • #2920 -nuget.exe-Befehl "Pack" wird nicht weitergegeben Eigenschaften für MSBuild#2920 - nuget.exe pack command does not propagate Properties to MSBuild
  6. Miroslav Bajtos (@bajtos)Miroslav Bajtos (@bajtos)
    • #1511 – geändert XML-Verarbeitung von Code zu formatieren beibehalten.#1511 - Modified XML handling code to preserve formatting.
  7. ADAM Ralph (@adamralph)Adam Ralph (@adamralph)
    • Hinzugefügte erkannten Wörter zu Benutzerwörterbuchs build.cmd erfolgreich ausgeführt werden können.Added recognized words to custom dictionary to allow build.cmd to succeed.
  8. Bruno RoggeriBruno Roggeri
    • Beheben Sie Komponententests, bei der Ausführung in lokalisierte Visual Studio.Fix unit tests when running in localized VS.
  9. Gareth EvansGareth Evans
    • Extrahierte Schnittstelle vom PackageServiceExtracted interface from PackageService
  10. Maxime Brugidou (@brugidou)Maxime Brugidou (@brugidou)
    • #936 -projektabhängigkeiten behandeln, beim Packen#936 - Handle project dependencies when packing
  11. Xavier Decoster (@XavierDecoster)Xavier Decoster (@XavierDecoster)
    • #2991, #3164 -Unterstützung deaktivieren-Text-Kennwort bei der Paket-Datenquellen-Anmeldeinformationen in nuget.cofig-Dateien speichern#2991, #3164 - Support Clear Text Password when storing package source credentials in nuget.cofig files
  12. James Manning (@manningj)James Manning (@manningj)
    • #3190, #3191 -Get-Package beheben hilfebeschreibung#3190, #3191 - Fix Get-Package help description

Wir freuen uns ebenfalls die folgenden Personen für die Fehlersuche mit NuGet 2.5 Beta/RC, die genehmigt und vor der endgültigen Version behoben wurden:We also appreciate the following individuals for finding bugs with NuGet 2.5 Beta/RC that were approved and fixed before the final release:

  1. Tony Wand (@CodeChief)Tony Wall (@CodeChief)
    • #3200 – MSTest, die mit den neuesten NuGet 2.4 und 2.5 Builds unterbrochen#3200 - MSTest broken with lastest NuGet 2.4 and 2.5 builds

Wichtige Features in der VersionNotable features in the release

Gewähren des Content-Dateien zu überschreiben, die bereits vorhanden.Allow users to overwrite content files that already exist

Eines der am häufigsten angeforderten Features der gesamten Zeit wurde die Möglichkeit, die Inhaltsdateien zu überschreiben, die bereits auf dem Datenträger, wenn in einem NuGet-Paket enthalten.One of the most requested features of all time has been the ability to overwrite content files that already exist on disk when included in a NuGet package. Beginnen mit NuGet 2.5, werden diese Konflikte identifiziert, und Sie werden aufgefordert, die Dateien überschrieben werden sollen, während diese Dateien zuvor, immer übersprungen wurden.Starting with NuGet 2.5, these conflicts are identified and you are prompted to overwrite the files, whereas previously these files were always skipped.

Überschreiben von Inhaltsdateien

"nuget.exe-Update" und "Install-Package" jetzt jeweils eine neue Option "-FileConflictAction" einige Standardeinstellungen für Befehlszeilen Szenarien festlegen.'nuget.exe update' and 'Install-Package' now both have a new option '-FileConflictAction' to set some default for command-line scenarios.

Legen Sie eine Standardaktion, wenn bereits eine Datei aus einem Paket im Zielprojekt vorhanden ist.Set a default action when a file from a package already exists in the target project. Legen Sie auf "Überschreiben", immer Dateien überschrieben werden sollen.Set to 'Overwrite' to always overwrite files. Legen Sie auf 'Ignorieren', um Dateien zu überspringen.Set to 'Ignore' to skip files. Wenn nicht angegeben ist, werden sie für jede in Konflikt stehende Datei aufgefordert.If not specified, it will prompt for each conflicting file.

Automatisches Importieren von MSBuild-Ziele und Props-DateienAutomatic import of MSBuild targets and props files

Ein neuer Ordner mit herkömmlichen wurde auf der obersten Ebene des NuGet-Pakets erstellt.A new conventional folder has been created at the top level of the NuGet package. Als Peer für \lib, \content, und \tools, Sie können jetzt enthalten eine \build Ordner in Ihrem Paket.As a peer to \lib, \content, and \tools, you can now include a \build folder in your package. In diesem Ordner können Sie zwei Dateien mit dem festen Namen platzieren {packageid}.targets oder {packageid}.props.Under this folder, you can place two files with fixed names, {packageid}.targets or {packageid}.props. Diese beiden Dateien können es sich entweder direkt unter build oder unter Framework-spezifischen Ordner wie die anderen Ordner.These two files can be either directly under build or under framework-specific folders just like the other folders. Die Regel für die Entscheidung für des am besten übereinstimmenden Framework-Ordners ist genau der gleiche wie in den.The rule for picking the best-matched framework folder is exactly the same as in those.

Wenn NuGet ein Paket mit \build Dateien installiert, fügen sie ein MSBuild <Import> Element in der Projektdatei, die auf die .targets und .props Dateien.When NuGet installs a package with \build files, it will add an MSBuild <Import> element in the project file pointing to the .targets and .props files. Die .props Datei wird im oberen Bereich hinzugefügt, während die .targets Datei unten hinzugefügt wird.The .props file is added at the top, whereas the .targets file is added to the bottom.

Geben Sie unterschiedliche Verweise pro Plattform mit <References/> ElementSpecify different references per platform using <References/> element

Vor dem 2.5 in .nuspec -Datei, Benutzer kann nur die Verweisdateien, um für alle Framework hinzugefügt werden, angeben.Before 2.5, in .nuspec file, user can only specify the reference files, to be added for all framework. Nachdem Sie mit diesem neuen Feature in 2.5, Benutzer erstellen kann die <reference/> -Element für jede der unterstützten Plattform, z. B.:Now with this new feature in 2.5, user can author the <reference/> element for each of the supported platform, for example:

<references>
    <group targetFramework="net45">
        <reference file="a.dll" />
    </group>
    <group targetFramework="netcore45">
        <reference file="b.dll" />
    </group>
    <group>
        <reference file="c.dll" />
    </group>
</references>

Hier ist der Fluss für wie NuGet Verweise auf Projekte, die fügt auf der Grundlage der .nuspec Datei:Here is the flow for how NuGet adds references to projects based on the .nuspec file:

  1. Suchen der lib Ordner, eignet sich für das Zielframework aus, und rufen Sie die Liste der Assemblys aus diesem Ordner,Find the lib folder that is appropriate for the target framework and get the list of assemblies from that folder
  2. Separat finden Sie die References-Gruppe, die für das Zielframework geeignet ist, und rufen Sie die Liste der Assemblys aus dieser Gruppe.Separately find the references group that is appropriate for the target framework and get the list of assemblies from that group. Referenzgruppe ohne angegebenen Zielframework ist das fallback.Reference group without target framework specified is the fallback group.
  3. Ermittelt die Schnittmenge der beiden Listen, und verwenden Sie, wie die Verweise hinzufügenFind the intersection of the two lists, and use that as the references to add

Diese neue Funktion ermöglicht Paketersteller die References-Funktion verwenden, um anwenden Teilmengen von Assemblys für verschiedene Frameworks, die andernfalls würde zum Ausführen von doppelten Assemblys in mehrere lib Ordner.This new feature will allow package authors to use the References feature to apply subsets of assemblies to different frameworks when they would otherwise need to carry duplicate assemblies in multiple lib folders.

Hinweis: Sie müssen derzeit nuget.exe Pack verwenden, um dieses Feature zu verwenden; NuGet-Paket-Explorer unterstützt noch keine es.Note: you must presently use nuget.exe pack to use this feature; NuGet Package Explorer does not yet support it.

Aktualisieren Sie Schaltfläche "alle", um zuzulassen, aktualisieren alle Pakete gleichzeitigUpdate All button to allow updating all packages at once

Viele von Ihnen klar zum "Update-Package" PowerShell-Cmdlet zum Aktualisieren aller Pakete. Es ist jetzt eine einfache Möglichkeit hierzu über die Benutzeroberfläche als auch.Many of you know about the "Update-Package" PowerShell cmdlet to update all of your packages; now there's an easy way to do this through the UI as well.

Dieses Feature zu testen:To try this feature out:

  1. Erstellen einer neuen ASP.NET MVC-AnwendungCreate a new ASP.NET MVC application
  2. Starten Sie das Dialogfeld "NuGet-Pakete verwalten"Launch the 'Manage NuGet Packages' dialog
  3. Wählen Sie "Updates"Select 'Updates'
  4. Klicken Sie auf die Schaltfläche "Alle aktualisieren"Click the 'Update All' button

Aktualisieren Sie im Dialogfeld für die Schaltfläche "alle"

Verbesserte Verweis projektunterstützung für nuget.exe PackImproved project reference support for nuget.exe Pack

Nuget.exe-Pack-Befehl Prozesse referenziert jetzt Projekte mit den folgenden Regeln:Now nuget.exe pack command processes referenced projects with the following rules:

  1. Verfügt das referenzierte Projekt entspricht .nuspec Datei, z. B. gibt es eine Datei namens proj1.nuspec im gleichen Ordner wie proj1.csproj, klicken Sie dann dieses Projekt ist als Abhängigkeit dem Paket hinzugefügt, mit der Id und Version zu lesen, aus der .nuspec Datei.If the referenced project has corresponding .nuspec file, e.g. there is a file called proj1.nuspec in the same folder as proj1.csproj, then this project is added as a dependency to the package, using the id and version read from the .nuspec file.
  2. Andernfalls werden die Dateien des referenzierten Projekts in das Paket gebündelt.Otherwise, the files of the referenced project are bundled into the package. Projekte, die von diesem Projekt verwiesen werden dann mit der Sames Regeln rekursiv verarbeitet werden.Then projects referenced by this project will be processed using the sames rules recursively.
  3. Alle DLL .pdb, und .exe Dateien hinzugefügt werden.All DLL, .pdb, and .exe files are added.
  4. Alle anderen Inhaltsdateien werden hinzugefügt.All other content files are added.
  5. Alle Abhängigkeiten werden zusammengeführt.All dependencies are merged.

Dies ermöglicht ein Referenziertes Projekt als Abhängigkeit behandelt werden soll, liegt eine .nuspec Datei, andernfalls wird es Teil des Pakets.This allows a referenced project to be treated as a dependency if there is a .nuspec file, otherwise, it becomes part of the package.

Weitere Informationen hier: http://nuget.codeplex.com/workitem/936More details here: http://nuget.codeplex.com/workitem/936

Eine "Minimale-NuGet-Version"-Eigenschaft zu Paketen hinzufügenAdd a 'Minimum NuGet Version' property to packages

Ein neues Metadatenattribut "MinClientVersion" wird aufgerufen, kann jetzt die NuGet-Client Mindestversion erforderlich, um ein Paket verwenden angeben.A new metadata attribute called 'minClientVersion' can now indicate the minimum NuGet client version required to consume a package.

Dieses Feature unterstützt, um anzugeben, dass ein Paket erst nach einer bestimmten Version von NuGet funktioniert-Package-Autor.This feature helps package author to specify that a package will work only after a particular version of NuGet. Als neue .nuspec Features werden hinzugefügt, nachdem NuGet 2.5, werden Pakete möglicherweise eine Mindestversion von NuGet in Anspruch nehmen.As new .nuspec features are added after NuGet 2.5, packages will be able to claim a minimum NuGet version.

<metadata minClientVersion="2.6">

Wenn der Benutzer NuGet 2.5 installiert hat und ein Paket festgestellt wird, dass 2.6 visuelle Hinweise erhält für den Benutzer, der angibt, dass das Paket nicht installiert werden kann.If the user has NuGet 2.5 installed and a package is identified as requiring 2.6, visual cues will be given to the user indicating the package will not be installable. Der Benutzer werden dann zum Aktualisieren ihrer Version von NuGet geführt.The user will then be guided to update their version of NuGet.

Dadurch wird die Grundlage der vorhandenen Erfahrungen verbessert, in Paketen beginnen, installieren, jedoch schlägt fehl, der angibt, dass eine nicht erkannte Schemaversion identifiziert wurde.This will improve upon the existing experience where packages begin to install but then fail indicating an unrecognized schema version was identified.

Abhängigkeiten werden nicht mehr unnötigerweise während der Paketinstallation aktualisiert.Dependencies are no longer unnecessarily updated during package installation

Vor NuGet 2.5 Wenn ein Paket installiert wurde, die ein Paket, das bereits im Projekt installiert abhängen würde die Abhängigkeit als Teil der neuen Installation aktualisiert werden, auch wenn die vorhandene Version die Abhängigkeit erfüllt.Before NuGet 2.5, when a package was installed that depended on a package already installed in the project, the dependency would be updated as part of the new installation, even if the existing version satisfied the dependency.

Beginnen mit NuGet 2.5, wenn eine abhängigkeitsversion bereits erfüllt ist, wird die Abhängigkeit nicht bei anderen Paketinstallationen aktualisiert werden.Starting with NuGet 2.5, if a dependency version is already satisfied, the dependency will not be updated during other package installations.

Das Szenario:The scenario:

  1. Das Quellrepository enthält Paket B Version 1.0.0 und 1.0.2.The source repository contains package B with version 1.0.0 and 1.0.2. Es enthält auch Paket A, die eine Abhängigkeit B aufweist (> = 1.0.0).It also contains package A which has a dependency on B (>= 1.0.0).
  2. Wird davon ausgegangen Sie, dass das aktuelle Projekt bereits Paket B Version 1.0.0 installiert ist.Assume that the current project already has package B version 1.0.0 installed. Nun möchten Sie zum Installieren von Paket A.Now you want to install package A.

In NuGet, 2.2 und ältere:In NuGet 2.2 and older:

  • Bei der Installation von Paket A NuGet wird automatische Aktualisierung B 1.0.2, auch wenn die vorhandene Version 1.0.0 bereits die versionseinschränkung von Abhängigkeiten erfüllt, handelt es sich > = 1.0.0.When installing package A, NuGet will auto-update B to 1.0.2, even though the existing version 1.0.0 already satisfies the dependency version constraint, which is >= 1.0.0.

In NuGet 2.5 und höher:In NuGet 2.5 and newer:

  • B wird von NuGet nicht mehr aktualisiert werden, weil er erkennt, dass die vorhandene Version 1.0.0 die Abhängigkeit-versionseinschränkungen erfüllt.NuGet will no longer update B, because it detects that the existing version 1.0.0 satisfies the dependency version constraint.

Weitere Informationen zu dieser Änderung finden Sie den detaillierten Arbeitsaufgabe sowie die zugehörigen Diskussionsthread.For more background on this change, read the detailed work item as well as the related discussion thread.

NuGet.exe gibt http-Anforderungen mit detailliertem Ausführlichkeitsgradnuget.exe outputs http requests with detailed verbosity

Wenn Sie nuget.exe eine Problembehandlung durchführen oder nur neugierige welche HTTP-Anforderungen werden während des Betriebs der "-Ausführlichkeit, die detaillierte" Switch gibt nun alle HTTP-Anforderungen.If you are troubleshooting nuget.exe or just curious what HTTP requests are made during operations, the '-verbosity detailed' switch will now output all HTTP requests made.

HTTP-Ausgabe von nuget.exe

NuGet.exe-Push unterstützt jetzt UNC-Ordner und Datenquellennuget.exe push now supports UNC and folder sources

Beim Versuch zum Ausführen von 'nuget.exe-Push', basierend auf einer UNC-Pfad oder einen lokalen Ordner Paketquelle, würde der Push vor NuGet 2.5 fehlschlagen.Before NuGet 2.5, if you attempted to run 'nuget.exe push' to a package source based on a UNC path or local folder, the push would fail. Mit dem Feature vor kurzem hinzugefügten hierarchisches Konfigurationsmodell hatte es üblich, dass nuget.exe, müssen Sie entweder ein UNC-Ordner-Quelle oder ein HTTP-basierte NuGet-Katalog als Ziel geworden.With the recently added hierarchical configuration feature, it had become common for nuget.exe to need to target either a UNC/folder source, or an HTTP-based NuGet Gallery.

Beginnen mit NuGet 2.5, wenn nuget.exe eine UNC-Ordner-Quelle angibt, wird das Kopieren einer Datei in der Datenquelle ausgeführt.Starting with NuGet 2.5, if nuget.exe identifies a UNC/folder source, it will perform the file copy to the source.

Es funktioniert jetzt der folgende Befehl aus:The following command will now work:

nuget push -source \\mycompany\repo\ mypackage.1.0.0.nupkg

NuGet.exe unterstützt explizit angegebenen Config-Dateiennuget.exe supports explicitly-specified Config files

NuGet.exe-Befehle, die Konfiguration (alle außer '-Spezifikation' und 'Pack') jetzt zugreifen unterstützen eine neue "-ConfigFile' auswählen, um die erzwingt, dass eine bestimmte Konfigurationsdatei anstelle der Standardkonfigurationsdatei % AppData%\nuget\Nuget.Config verwendet wird.nuget.exe commands that access configuration (all except 'spec' and 'pack') now support a new '-ConfigFile' option, which forces a specific config file to be used in place of the default config file at %AppData%\nuget\Nuget.Config.

Beispiel:Example:

nuget sources add -name test -source http://test -ConfigFile C:\test\.nuget\Nuget.Config

Unterstützung für systemeigene ProjekteSupport for Native projects

Mit NuGet 2.5 ist jetzt die NuGet-Tools für systemeigene Projekte in Visual Studio verfügbar.With NuGet 2.5, the NuGet tooling is now available for Native projects in Visual Studio. Wir erwarten, dass die meisten native Pakete werden verwendet, die die MSBuild-Importe-Funktion oben mit einem Tool erstellt die CoApp-Projekt.We expect most native packages will utilize the MSBuild imports feature above, using a tool created by the CoApp project. Weitere Informationen finden Sie die Informationen über das Tool auf der Website coapp.org.For more information, read the details about the tool on the coapp.org website.

Für Pakete, die Dateien in \build "," \content, und "\tools einschließen, wenn das Paket in einem systemeigenen Projekt installiert wird, wird der"Native"den Namen des Zielframeworks eingeführt.The target framework name of "native" is introduced for packages to include files in \build, \content, and \tools when the package is installed into a native project. Die `Lib "Ordner wird nicht für systemeigene Projekte verwendet.The `lib` folder is not used for native projects.