Anmerkungen zu dieser Version von nuget 2,5NuGet 2.5 Release Notes

Anmerkungen zu dieser Version von nuget 2.2.1 | Anmerkungen zur nuget-Version 2,6NuGet 2.2.1 Release Notes | NuGet 2.6 Release Notes

Nuget 2,5 wurde am 25. April 2013 veröffentlicht.NuGet 2.5 was released on April 25, 2013. Diese Version war so groß, wir waren gezwungen, die Versionen 2,3 und 2,4 zu überspringen!This release was so big, we felt compelled to skip versions 2.3 and 2.4! Bis heute ist dies die größte Version, die wir für nuget verwendet haben, mit mehr als 160 Arbeits Elementen in der Version.To date, this is the largest release we've had for NuGet, with over 160 work items in the release.

DanksagungenAcknowledgements

Wir danken den folgenden externen Mitwirkenden bei ihren bedeutenden Beiträgen 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 : Fügen Sie monoandroid, MonoTouch und monomac der Liste der bekannten zielframeworkbezeichner hinzu.#2847 - Add MonoAndroid, MonoTouch, and MonoMac to the list of known target framework identifiers.
  2. Andres G. Aragoneses (@knocte)Andres G. Aragoneses (@knocte)
    • #2865 Korrektur der Schreibweise von NuGet.targets für ein Betriebssystem mit Berücksichtigung von groß-/klein#2865 - Fix spelling of NuGet.targets for a case-sensitive OS
  3. David Fowler (@davidfowl)David Fowler (@davidfowl)
    • Erstellen Sie die Lösung auf Mono.Make the solution build on Mono.
  4. Andrew Theken (@atheken)Andrew Theken (@atheken)
    • Korrektur der fehlgeschlagenen Komponententests in Mono.Fix unit tests failing on Mono.
  5. Olivier Dagenais (@OliIsCool)Olivier Dagenais (@OliIsCool)
    • der Befehl " #2920 -nuget. exe Pack" gibt keine Eigenschaften an MSBuild weiter.#2920 - nuget.exe pack command does not propagate Properties to MSBuild
  6. Miroslav-bajtos (@bajtos)Miroslav Bajtos (@bajtos)
    • #1511 änderter XML-Behandlungs Code zur Beibehaltung der Formatierung.#1511 - Modified XML handling code to preserve formatting.
  7. Adam Ralph (@adamralph)Adam Ralph (@adamralph)
    • Dem Benutzerwörterbuch wurden erkannte Wörter hinzugefügt, damit Build. cmd erfolgreich ausgeführt werden kann.Added recognized words to custom dictionary to allow build.cmd to succeed.
  8. Bruno RoggeriBruno Roggeri
    • Korrektur von Komponententests bei der Ausführung in lokalisierten undFix unit tests when running in localized VS.
  9. Gareth EvansGareth Evans
    • Extrahierte Schnittstelle aus packageserviceExtracted interface from PackageService
  10. Maxime brugidou (@brugidou)Maxime Brugidou (@brugidou)
    • #936 behandeln von Projekt Abhängigkeiten beim Verpacken#936 - Handle project dependencies when packing
  11. Xavier-Decoder (@XavierDecoster)Xavier Decoster (@XavierDecoster)
    • #2991 #3164 das Klartext-Kennwort beim Speichern von Paketquellen-Anmelde Informationen in "nuget. cofig"-Dateien unterstützen.#2991, #3164 - Support Clear Text Password when storing package source credentials in nuget.cofig files
  12. James Manning (@manningj)James Manning (@manningj)
    • #3190 #3191 -Korrektur der Hilfe Beschreibung zum Get-Package#3190, #3191 - Fix Get-Package help description

Außerdem sind die folgenden Personen für die Suche nach Fehlern mit nuget 2,5 Beta/RC, die vor der endgültigen Version genehmigt und korrigiert wurden, zu schätzen: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 Wall (@CodeChief)Tony Wall (@CodeChief)
    • #3200 -MSTest mit den neuesten nuget 2,4-und 2,5-Builds beschädigt#3200 - MSTest broken with lastest NuGet 2.4 and 2.5 builds

Wichtige Features in der VersionNotable features in the release

Benutzern das Überschreiben von bereits vorhandenen Inhalts Dateien gestattenAllow users to overwrite content files that already exist

Eines der am häufigsten angeforderten Features von ist die Fähigkeit, Inhalts Dateien zu überschreiben, die bereits auf dem Datenträger vorhanden sind, wenn Sie in einem nuget-Paket enthalten sind.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. Ab nuget 2,5 werden diese Konflikte identifiziert, und Sie werden aufgefordert, die Dateien zu überschreiben, 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.

Inhalts Dateien überschreiben

"nuget. exe Update" und "Install-Package" verfügen nun über die neue Option "-fileconflictaction", um einen Standardwert für Befehlszeilen Szenarios festzulegen.'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 fest, wenn eine Datei aus einem Paket bereits im Ziel Projekt vorhanden ist.Set a default action when a file from a package already exists in the target project. Auf "überschreiben" festlegen, um Dateien immer zu überschreiben.Set to 'Overwrite' to always overwrite files. Legen Sie auf "Ignore" fest, um Dateien zu überspringen.Set to 'Ignore' to skip files. Wenn kein Wert angegeben ist, wird jede in Konflikt stehende Datei angezeigt.If not specified, it will prompt for each conflicting file.

Automatischer Import von MSBuild-Ziel-und-Eigenschaften DateienAutomatic import of MSBuild targets and props files

Auf der obersten Ebene des nuget-Pakets wurde ein neuer herkömmlicher Ordner erstellt.A new conventional folder has been created at the top level of the NuGet package. Als Peer für \lib, \contentund \toolskönnen Sie nun einen \build Ordner in das Paket einschließen.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 den Namen "Fixed", "{packageid}.targets" oder "{packageid}.props" platzieren.Under this folder, you can place two files with fixed names, {packageid}.targets or {packageid}.props. Diese beiden Dateien können sich entweder direkt unter build oder unter frameworkspezifischen Ordnern befinden, genau 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 zum Auswählen des am besten übereinstimmenden frameworkordners ist genau das gleiche wie in diesen.The rule for picking the best-matched framework folder is exactly the same as in those.

Wenn nuget ein Paket mit \Build-Dateien installiert, wird ein MSBuild-<Import> Element in der Projektdatei hinzugefügt, das auf die Dateien .targets und .props verweist.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 am oberen Rand hinzugefügt, während die .targets Datei am unteren Rand hinzugefügt wird.The .props file is added at the top, whereas the .targets file is added to the bottom.

Angeben unterschiedlicher Verweise pro Plattform mithilfe <References/> ElementsSpecify different references per platform using <References/> element

Vor 2,5 kann der Benutzer in .nuspec Datei nur die Verweis Dateien angeben, die für alle Frameworks hinzugefügt werden sollen.Before 2.5, in .nuspec file, user can only specify the reference files, to be added for all framework. Mit diesem neuen Feature in 2,5 kann der Benutzer das <reference/>-Element für jede der unterstützten Plattformen erstellen, 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>

Im folgenden finden Sie den Ablauf, in dem nuget Verweise auf Projekte auf der Grundlage der .nuspec-Datei hinzufügt:Here is the flow for how NuGet adds references to projects based on the .nuspec file:

  1. Suchen Sie den lib Ordner, der für das Ziel Framework geeignet ist, und erhalten 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. Suchen Sie separat die Verweis Gruppe, die für das Ziel Framework geeignet ist, und erhalten 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. Eine Verweis Gruppe ohne angegebenes Ziel Framework ist die Fall Back-Gruppe.Reference group without target framework specified is the fallback group.
  3. Suchen Sie die Schnittmenge der beiden Listen, und verwenden Sie diese als Verweise, um Sie hinzuzufügen.Find the intersection of the two lists, and use that as the references to add

Mit dieser neuen Funktion können Paket Autoren mithilfe der References-Funktion Teilmengen von Assemblys auf verschiedene Frameworks anwenden, wenn Sie andernfalls doppelte Assemblys in mehreren lib Ordnern ausführen müssten.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 momentan das nuget. exe-Paket verwenden, um dieses Feature zu verwenden. Der nuget-Paket-Explorer unterstützt ihn noch nicht.Note: you must presently use nuget.exe pack to use this feature; NuGet Package Explorer does not yet support it.

Schaltfläche "Alle aktualisieren", um das gleichzeitige Aktualisieren aller Pakete zuzulassenUpdate All button to allow updating all packages at once

Viele von Ihnen wissen über das PowerShell-Cmdlet "Update-Package", um alle Pakete zu aktualisieren. Jetzt gibt es auch eine einfache Möglichkeit, dies über die Benutzeroberfläche zu tun.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.

So testen Sie dieses Feature:To try this feature out:

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

Schaltfläche "Alle aktualisieren" im Dialogfeld

Verbesserte Unterstützung für Projekt Verweise für das nuget. exe-PaketImproved project reference support for nuget.exe Pack

Der Befehl "nuget. exe Pack" verarbeitet referenzierte Projekte nun mit den folgenden Regeln:Now nuget.exe pack command processes referenced projects with the following rules:

  1. Wenn das referenzierte Projekt über die entsprechende .nuspec Datei verfügt, z. b. eine Datei mit dem Namen proj1.nuspec im selben Ordner wie proj1.csproj, wird dieses Projekt als Abhängigkeit zum Paket hinzugefügt, wobei die ID und die Version aus der .nuspec Datei verwendet werden.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 Projekts, auf das verwiesen wird, in das Paket gebündelt.Otherwise, the files of the referenced project are bundled into the package. Projekte, auf die von diesem Projekt verwiesen wird, werden dann rekursiv mit den sames-Regeln verarbeitet.Then projects referenced by this project will be processed using the sames rules recursively.
  3. Alle dll-, .pdb-und .exe Dateien werden hinzugefügt.All DLL, .pdb, and .exe files are added.
  4. Alle anderen Inhalts Dateien werden hinzugefügt.All other content files are added.
  5. Alle Abhängigkeiten werden zusammengeführt.All dependencies are merged.

Dadurch kann ein referenziertes Projekt als Abhängigkeit behandelt werden, wenn eine .nuspec Datei vorhanden ist, 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 finden Sie hier: http://nuget.codeplex.com/workitem/936More details here: http://nuget.codeplex.com/workitem/936

Hinzufügen einer "Minimum nuget Version"-Eigenschaft zu PaketenAdd a 'Minimum NuGet Version' property to packages

Ein neues Metadatenattribut mit dem Namen "minclientversion" kann jetzt die minimale Version des nuget-Clients angeben, die für die Nutzung eines Pakets erforderlich ist.A new metadata attribute called 'minClientVersion' can now indicate the minimum NuGet client version required to consume a package.

Diese Funktion unterstützt Paket Ersteller bei der Angabe, dass ein Paket nur nach einer bestimmten Version von nuget funktioniert.This feature helps package author to specify that a package will work only after a particular version of NuGet. Wenn neue .nuspec Features nach nuget 2,5 hinzugefügt werden, können Pakete eine nuget-Mindestversion anfordern.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 für den Benutzer nuget 2,5 installiert ist und ein Paket als erforderliches 2,6 identifiziert wird, werden dem Benutzer visuelle Hinweise angezeigt, die darauf hinweisen, 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 wird dann zur Aktualisierung Ihrer nuget-Version geleitet.The user will then be guided to update their version of NuGet.

Dadurch wird die vorhandene, bei der Paketinstallation zu installierende Version verbessert, aber es wird nicht angegeben, dass eine unbekannte Schema Version erkannt 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 während der Paketinstallation nicht mehr unnötig aktualisiertDependencies are no longer unnecessarily updated during package installation

Vor der Installation von nuget 2,5, wenn ein Paket installiert wurde, das von einem bereits im Projekt installierten Paket abhängt, wird die Abhängigkeit im Rahmen der neuen Installation aktualisiert, auch wenn die vorhandene Version die Abhängigkeit erfüllt hat.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.

Ab nuget 2,5 wird die Abhängigkeit bei anderen Paketinstallationen nicht aktualisiert, wenn eine Abhängigkeits Version bereits erfüllt ist.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 mit Version 1.0.0 und 1.0.2.The source repository contains package B with version 1.0.0 and 1.0.2. Sie enthält auch Paket a, das eine Abhängigkeit von B (> = 1.0.0) aufweist.It also contains package A which has a dependency on B (>= 1.0.0).
  2. Nehmen Sie an, dass das aktuelle Projekt bereits Paket B Version 1.0.0 installiert hat.Assume that the current project already has package B version 1.0.0 installed. Nun möchten Sie Paket A installieren.Now you want to install package A.

In nuget 2,2 und älter:In NuGet 2.2 and older:

  • Beim Installieren von Paket A führt nuget die automatische Aktualisierung von B auf 1.0.2 durch, obwohl die vorhandene Version 1.0.0 bereits die Abhängigkeits Versions Einschränkung erfüllt, was > = 1.0.0 ist.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:

  • Bei nuget wird B nicht mehr aktualisiert, da es erkennt, dass die vorhandene Version 1.0.0 der Einschränkung der Abhängigkeits Version entspricht.NuGet will no longer update B, because it detects that the existing version 1.0.0 satisfies the dependency version constraint.

Weitere Hintergrundinformationen zu dieser Änderung finden Sie in der detaillierten Arbeits Aufgabe und im zugehörigen Diskussions Thread.For more background on this change, read the detailed work item as well as the related discussion thread.

"nuget. exe" gibt HTTP-Anforderungen mit detaillierter Ausführlichkeit aus.nuget.exe outputs http requests with detailed verbosity

Wenn Sie die Problembehandlung für "nuget. exe" durchgeführt haben oder nur neugierig sind, welche HTTP-Anforderungen bei Vorgängen durchgeführt werden, gibt der Schalter "-verbosity ausführlich" nun alle durchgeführten httpIf 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-und Ordner Quellennuget.exe push now supports UNC and folder sources

Wenn Sie vor nuget 2,5 versuchen, "nuget. exe Push" auf Grundlage eines UNC-Pfads oder eines lokalen Ordners auf einer Paketquelle auszuführen, schlägt der Push fehl.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 der vor kurzem hinzugefügten hierarchischen Konfigurationsfunktion war es üblich, dass "nuget. exe" entweder eine UNC/Folder-Quelle oder einen HTTP-basierten nuget-Katalog als Ziel hat.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.

Wenn nuget. exe eine UNC-/ordnerquelle identifiziert, wird ab nuget 2,5 die Datei in die Quelle kopiert.Starting with NuGet 2.5, if nuget.exe identifies a UNC/folder source, it will perform the file copy to the source.

Der folgende Befehl funktioniert nun:The following command will now work:

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

"nuget. exe" unterstützt explizit angegebene Konfigurationsdateiennuget.exe supports explicitly-specified Config files

die nuget. exe-Befehle, die auf die Konfiguration zugreifen (alle außer "spec" und "Pack") unterstützen jetzt eine neue Option "-configfile", die erzwingt, dass anstelle der Standard Konfigurationsdatei unter "%APPDATA%\nuget\nuget.config" eine bestimmte Konfigurationsdatei 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 Native ProjekteSupport for Native projects

Mit nuget 2,5 ist das nuget-Tool jetzt für Native Projekte in Visual Studio verfügbar.With NuGet 2.5, the NuGet tooling is now available for Native projects in Visual Studio. Wir gehen davon aus, dass die meisten systemeigenen Pakete die oben genannten MSBuild-Importe verwenden und ein Tool verwenden, das vom coapp-Projekterstellt wird.We expect most native packages will utilize the MSBuild imports feature above, using a tool created by the CoApp project. Weitere Informationen finden Sie in den Details zum Tool auf der coapp.org-Website.For more information, read the details about the tool on the coapp.org website.

Der zielframeworkname "Native" wird eingeführt, damit Pakete Dateien in "\build", "\Content" und "\Tools" enthalten, wenn das Paket in einem systemeigenen Projekt installiert wird.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. Der Ordner "`lib" wird für Native Projekte nicht verwendet.The `lib` folder is not used for native projects.