Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Releaseopmerkingen voor | Releaseopmerkingen voor NuGet 2.6
NuGet 2.5 is uitgebracht op 25 april 2013. Deze release was zo groot, we voelden ons gedwongen om versies 2.3 en 2.4 over te slaan! Tot nu toe is dit de grootste release die we voor NuGet hebben gehad, met meer dan [160 work items](https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.5&status=all) in de release.
Dankbetuigingen
We willen de volgende externe inzenders bedanken voor hun aanzienlijke bijdragen aan NuGet 2.5:
-
[Daniel Plaisted](https://www.codeplex.com/site/users/view/dsplaisted)(@dsplaisted)-
[#2847](https://nuget.codeplex.com/workitem/2847)- Voeg MonoAndroid, MonoTouch en MonoMac toe aan de lijst met bekende doelframework-id's.
-
-
[Andres G. Aragoneses](https://www.codeplex.com/site/users/view/knocte)(@knocte)-
[#2865](https://nuget.codeplex.com/workitem/2865)- Spelling vanNuGet.targetsvoor een hoofdlettergevoelig besturingssysteem corrigeren
-
-
[David Fowler](https://www.codeplex.com/site/users/view/dfowler)(@davidfowl)- Bouw de oplossing op Mono.
-
[Andrew Theken](https://www.codeplex.com/site/users/view/atheken)(@atheken)- Oplossing voor eenheidstests die mislukken op Mono.
-
[Olivier Dagenais](https://www.codeplex.com/site/users/view/OliIsCool)(@OliIsCool)-
[#2920](https://nuget.codeplex.com/workitem/2920)- opdracht nuget.exe pack geeft eigenschappen niet door aan MSBuild
-
-
[Miroslav Bajtos](https://www.codeplex.com/site/users/view/MiroslavBajtos)(@bajtos)-
[#1511](https://nuget.codeplex.com/workitem/1511)- Gewijzigde XML-verwerkingscode om opmaak te behouden.
-
-
[Adam Ralph](http://www.codeplex.com/site/users/view/adamralph)(@adamralph)- Herkende woorden toegevoegd aan aangepaste woordenlijst, zodat build.cmd kan slagen.
[Bruno Roggeri](https://www.codeplex.com/site/users/view/broggeri)- Unittests corrigeren wanneer uitgevoerd in een gelokaliseerde versie van Visual Studio.
[Gareth Evans](https://www.codeplex.com/site/users/view/garethevans)- Geëxtraheerde interface uit PackageService
-
[Maxime Brugidou](https://www.codeplex.com/site/users/view/brugidou)(@brugidou)-
[#936](https://nuget.codeplex.com/workitem/936)- Projectafhankelijkheden verwerken bij het inpakken
-
-
[Xavier Decoster](https://www.codeplex.com/site/users/view/XavierDecoster)(@XavierDecoster)-
[#2991](https://nuget.codeplex.com/workitem/2991),[#3164](https://nuget.codeplex.com/workitem/3164)- Ondersteuning voor wachtwoord voor duidelijke tekst bij het opslaan van pakketbronreferenties in nuget.cofig-bestanden
-
-
[James Manning](http://www.codeplex.com/site/users/view/jmanning)(@manningj)-
[#3190](http://nuget.codeplex.com/workitem/3190),[#3191](https://nuget.codeplex.com/workitem/3191)- Help-beschrijving van Get-Package oplossen
-
We waarderen ook de volgende personen voor het vinden van bugs met NuGet 2.5 Beta/RC die zijn goedgekeurd en opgelost vóór de definitieve release:
-
[Tony Wall](https://www.codeplex.com/site/users/view/CodeChief)(@CodeChief)-
[#3200](https://nuget.codeplex.com/workitem/3200)- MSTest verbroken met de laatste NuGet 2.4 en 2.5 builds
-
Belangrijke functies in de release
Gebruikers toestaan inhoudsbestanden te overschrijven die al bestaan
Een van de meest aangevraagde functies is de mogelijkheid om inhoudsbestanden die al bestaan op schijf te overschrijven wanneer ze zijn opgenomen in een NuGet-pakket. Vanaf NuGet 2.5 worden deze conflicten geïdentificeerd en wordt u gevraagd de bestanden te overschrijven, terwijl deze bestanden eerder altijd zijn overgeslagen.
'nuget.exe update' en 'Install-Package' hebben nu beide een nieuwe optie '-FileConflictAction' om een aantal standaardinstellingen in te stellen voor opdrachtregelscenario's.
Stel een standaardactie in wanneer een bestand uit een pakket al bestaat in het doelproject. Ingesteld op Overschrijven om bestanden altijd te overschrijven. Ingesteld op Negeren om bestanden over te slaan. Als dit niet is opgegeven, wordt om elk conflicterend bestand gevraagd.
Automatisch importeren van MSBuild-doelen en props-bestanden
Er is een nieuwe conventionele map gemaakt op het hoogste niveau van het NuGet-pakket. Als gelijke van \lib, \content, en \tools kunt u nu een \build map in uw pakket opnemen. Onder deze map kunt u twee bestanden met vaste namen plaatsen, {packageid}.targets of {packageid}.props. Deze twee bestanden kunnen zich direct onder build of onder frameworkspecifieke mappen bevinden, net als de andere mappen. De regel voor het kiezen van de best overeenkomende frameworkmap is precies hetzelfde als in die.
Wanneer NuGet een pakket met \build-bestanden installeert, wordt er een MSBuild-element <Import> toegevoegd in het projectbestand dat verwijst naar de .targets en .props bestanden. Het .props bestand wordt bovenaan toegevoegd, terwijl het .targets bestand onderaan wordt toegevoegd.
Verschillende verwijzingen per platform opgeven met behulp van <References/> element
Vóór 2.5 kan de gebruiker in .nuspec het bestand alleen de referentiebestanden opgeven die voor alle frameworks moeten worden toegevoegd. Met deze nieuwe functie in 2.5 kan de gebruiker nu het <reference/> element ontwerpen voor elk van het ondersteunde platform, bijvoorbeeld:
<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 volgt de stroom voor hoe NuGet verwijzingen toevoegt aan projecten op basis van het .nuspec bestand:
- Zoek de
libmap die geschikt is voor het doelframework en haal de lijst met assembly's op uit die map - Zoek afzonderlijk de referentiegroep die geschikt is voor het doelframework en haal de lijst met assembly's van die groep op. Referentiegroep zonder opgegeven doelframework is de terugvalgroep.
- Zoek het snijpunt van de twee lijsten en gebruik dit als verwijzingen om toe te voegen
Met deze nieuwe functie kunnen pakketauteurs de functie Verwijzingen gebruiken om subsets van assembly's toe te passen op verschillende frameworks wanneer ze anders dubbele assembly's in meerdere lib mappen moeten uitvoeren.
Opmerking: u moet momenteel nuget.exe pack gebruiken om deze functie te kunnen gebruiken; NuGet Package Explorer ondersteunt deze nog niet.
Knop Alles bijwerken zodat alle pakketten tegelijk kunnen worden bijgewerkt
Velen van u weten over de PowerShell-cmdlet Update-Package om al uw pakketten bij te werken; nu is er ook een eenvoudige manier om dit te doen via de gebruikersinterface.
Ga als volgt te werk om deze functie uit te proberen:
- Een nieuwe ASP.NET MVC-toepassing maken
- Start het dialoogvenster 'NuGet-pakketten beheren'
- Updates selecteren
- Klik op de knop Alles bijwerken
Verbeterde ondersteuning voor projectreferenties voor nuget.exe Pack
Nu voert de nuget.exe pack-opdracht de verwijzingen naar projecten uit verwerkt volgens de volgende regels:
- Als het project waarnaar wordt verwezen, het bijbehorende
.nuspecbestand heeft, bijvoorbeeld dat er een bestandproj1.nuspecin dezelfde map staat alsproj1.csproj, wordt dit project toegevoegd als een afhankelijkheid van het pakket, met behulp van de id en versie die uit het.nuspecbestand is gelezen. - Anders worden de bestanden van het project waarnaar wordt verwezen, gebundeld in het pakket. Vervolgens worden projecten waarnaar wordt verwezen door dit project, recursief verwerkt met behulp van dezelfde regels.
- Alle DLL-bestanden
.pdben.exebestanden worden toegevoegd. - Alle andere inhoudsbestanden worden toegevoegd.
- Alle afhankelijkheden worden samengevoegd.
Hierdoor kan een project waarnaar wordt verwezen, worden behandeld als een afhankelijkheid als er een .nuspec bestand is, anders wordt het onderdeel van het pakket.
Meer informatie hier: [http://nuget.codeplex.com/workitem/936](http://nuget.codeplex.com/workitem/936)
Een eigenschap Minimale NuGet-versie toevoegen aan pakketten
Een nieuw metagegevenskenmerk met de naam 'minClientVersion' kan nu aangeven welke minimale NuGet-clientversie vereist is om een pakket te gebruiken.
Met deze functie kan de auteur van het pakket opgeven dat een pakket pas werkt na een bepaalde versie van NuGet. Als er nieuwe .nuspec functies worden toegevoegd na NuGet 2.5, kunnen pakketten een minimale NuGet-versie claimen.
<metadata minClientVersion="2.6">
Als de gebruiker NuGet 2.5 heeft geïnstalleerd en een pakket wordt geïdentificeerd als vereist 2.6, worden visuele aanwijzingen aan de gebruiker gegeven die aangeeft dat het pakket niet kan worden geïnstalleerd. De gebruiker wordt vervolgens begeleid bij het bijwerken van hun versie van NuGet.
Dit verbetert de bestaande ervaring waarbij pakketten beginnen te installeren, maar mislukken, wat aangeeft dat er een niet-herkende schemaversie is geïdentificeerd.
Afhankelijkheden worden niet meer onnodig bijgewerkt tijdens de installatie van het pakket
Vóór NuGet 2.5, wanneer een pakket werd geïnstalleerd dat afhankelijk was van een pakket dat al in het project is geïnstalleerd, zou de afhankelijkheid worden bijgewerkt als onderdeel van de nieuwe installatie, zelfs als de bestaande versie voldeed aan de afhankelijkheid.
Vanaf NuGet 2.5 wordt de afhankelijkheid niet bijgewerkt tijdens andere pakketinstallaties als er al aan een afhankelijkheidsversie is voldaan.
Het scenario:
- De bronopslagplaats bevat pakket B met versie 1.0.0 en 1.0.2. Het bevat ook pakket A met een afhankelijkheid van B (>= 1.0.0).
- Stel dat in het huidige project al pakket B versie 1.0.0 is geïnstalleerd. Nu wilt u pakket A installeren.
In NuGet 2.2 en ouder:
- Wanneer u pakket A installeert, zal NuGet B automatisch bijwerken naar 1.0.2, zelfs als de bestaande versie 1.0.0 al voldoet aan de afhankelijkheidsversiebeperking, die > = 1.0.0 is.
In NuGet 2.5 en hoger:
- NuGet werkt B niet meer bij, omdat wordt gedetecteerd dat de bestaande versie 1.0.0 voldoet aan de beperking van de afhankelijkheidsversie.
Lees de gedetailleerde en gerelateerde [work item](https://nuget.codeplex.com/workitem/1681)[discussion thread](https://nuget.codeplex.com/discussions/436712)informatie voor meer achtergrondinformatie over deze wijziging.
nuget.exe voert http-aanvragen met gedetailleerde uitgebreidheid uit
Als u problemen met nuget.exe wilt oplossen of alleen nieuwsgierig bent welke HTTP-aanvragen worden gedaan tijdens bewerkingen, zal de '-detailniveau gedetailleerd' switch nu alle uitgevoerde HTTP-aanvragen weergeven.
nuget.exe push ondersteunt nu UNC- en mapbronnen
Voor NuGet 2.5 zou de push mislukt als u 'nuget.exe push' naar een pakketbron probeerde uit te voeren op basis van een UNC-pad of lokale map. Met de onlangs toegevoegde hiërarchische configuratiefunctie was het gebruikelijk dat nuget.exe zich moest richten op een UNC-/mapbron of een NuGet-galerie op basis van HTTP.
Vanaf NuGet 2.5, wanneer nuget.exe een UNC-map als bron identificeert, wordt de kopie van het bestand naar de bron uitgevoerd.
De volgende opdracht werkt nu:
nuget push -source \\mycompany\repo\ mypackage.1.0.0.nupkg
nuget.exe ondersteunt expliciet opgegeven configuratiebestanden
nuget.exe opdrachten die toegang hebben tot de configuratie (allemaal behalve 'spec' en 'pack') bieden nu ondersteuning voor een nieuwe optie -ConfigFile, waardoor een specifiek configuratiebestand moet worden gebruikt in plaats van het standaardconfiguratiebestand op %AppData%\nuget\Nuget.Config.
Voorbeeld:
nuget sources add -name test -source http://test -ConfigFile C:\test\.nuget\Nuget.Config
Ondersteuning voor systeemeigen projecten
Met NuGet 2.5 is de NuGet-hulpprogramma's nu beschikbaar voor systeemeigen projecten in Visual Studio. We verwachten dat de meeste systeemeigen pakketten gebruikmaken van de bovenstaande MSBuild-importfunctie, met behulp van een hulpprogramma dat is gemaakt door het CoApp-project. Lees de details van het hulpprogramma op de coapp.org website voor meer informatie.
De naam van het doelframework van 'native' wordt geïntroduceerd voor pakketten voor het opnemen van bestanden in \build, \content en \tools wanneer het pakket is geïnstalleerd in een systeemeigen project. De map 'lib' wordt niet gebruikt voor systeemeigen projecten.