Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
NuGet 2.0 kibocsátási megjegyzések | NuGet 2.2 kibocsátási megjegyzések
A NuGet 2.1 2012. október 4-én jelent meg.
Hierarchikus Nuget.Config
A NuGet 2.1 nagyobb rugalmasságot biztosít a NuGet-beállítások szabályozásában, mivel rekurzív módon lépeget a mappastruktúrában, és fájlokat keres NuGet.Config , majd a konfigurációt az összes talált fájlból építi fel. Vegyük például azt a forgatókönyvet, amelyben a csapat rendelkezik egy belső csomagtárral más belső függőségek CI-buildjeihez. Az egyes projektek mappastruktúrája a következőhöz hasonlóan nézhet ki:
C:\
C:\myteam\
C:\myteam\solution1
C:\myteam\solution1\project1
Emellett ha a csomag visszaállítása engedélyezve van a megoldáshoz, a következő mappa is létezik:
C:\myteam\solution1\.nuget
Annak érdekében, hogy a csapat belső csomagtárháza elérhető legyen az összes projekthez, amelyen a csapat dolgozik, miközben nem teszi elérhetővé a gép összes projektjéhez, létrehozhatunk egy új Nuget.Config-fájlt, és elhelyezhetjük a c:\myteam mappában. Projektenként nem lehet csomagmappát beállítani.
<configuration>
<packageSources>
<add key="Official project team source" value="http://teamserver/api/v2/" />
</packageSources>
<disabledPackageSources />
<activePackageSource>
<add key="Official project team source" value="http://teamserver/api/v2/" />
</activePackageSource>
</configuration>
Most már láthatjuk, hogy a forrást úgy adták hozzá, hogy a c:\myteam alatti bármelyik mappából futtatja a "nuget.exe források" parancsot, ahogy az alább látható:
NuGet.Config fájlok keresése a következő sorrendben történt:
.nuget\Nuget.Config- Rekurzív bejárás a projektmappától a gyökérkönyvtárig
- Globális
Nuget.Config(%appdata%\NuGet\Nuget.Config)
A konfigurációk fordított sorrendben vannak alkalmazva, ami azt jelenti, hogy a fenti sorrend alapján először a globális Nuget.Config lesz alkalmazva, majd a felderített Nuget.Config-fájlok a gyökértől a projektmappáig, majd a .nuget\Nuget.Config. Ez különösen akkor fontos, ha az <clear/> elemet arra használja, hogy eltávolítson egy elemkészletet a konfigurációból.
A "packages" mappa helyének megadása
Korábban a NuGet felügyelte a megoldás csomagjait a megoldás gyökérmappája alatt található ismert "csomagok" mappából. Azoknak a fejlesztői csapatoknak, amelyekben számos különböző megoldás van telepítve NuGet-csomagokkal, ez azt eredményezheti, hogy ugyanazt a csomagot a fájlrendszer számos különböző pontján telepítik.
A NuGet 2.1 részletesebben szabályozza a csomagok mappájának helyét a repositoryPathNuGet.Config fájl elemén keresztül. A hierarchikus Nuget.Config-támogatás előző példájára építve tegyük fel, hogy a C:\myteam\ alatt lévő összes projektet ugyanazzal a csomagmappával szeretnénk megosztani. Ehhez egyszerűen adja hozzá a következő bejegyzést a c:\myteam\Nuget.Config-hez.
<configuration>
<config>
<add key="repositoryPath" value="C:\myteam\teampackages" />
</config>
...
</configuration>
Ebben a példában a megosztott Nuget.Config fájl egy megosztott csomagmappát határoz meg minden olyan projekthez, amely a C:\myteam alatt jön létre, mélységtől függetlenül. Vegye figyelembe, hogy ha a megoldás gyökérkönyvtára alatt van egy meglévő csomagmappa, törölnie kell, mielőtt a NuGet a csomagokat az új helyre helyezi.
Hordozható könyvtárak támogatása
A hordozható kódtárak a .NET 4-ben elsőként bevezetett funkció, amely lehetővé teszi olyan szerelvények összeállítását, amelyek módosítás nélkül használhatók a Különböző Microsoft-platformokon, a the.NET Framework verziójától a Silverlighton át a Windows Phone-on és még az Xbox 360-on is (bár jelenleg a NuGet nem támogatja az Xbox hordozható könyvtárcélját). A keretrendszerverziók és - profilok csomagkonvenciáinak kibővítésével a NuGet 2.1 mostantól támogatja a hordozható kódtárakat azáltal, hogy lehetővé teszi összetett keretrendszert és profil célmappákat lib tartalmazó csomagok létrehozását.
Példaként tekintse meg a következő hordozható osztálykódtár elérhető célplatformjait.
A kódtár létrehozása és a parancs nuget.exe pack MyPortableProject.csproj futtatása után az új hordozható kódtárcsomag mappastruktúrája a létrehozott NuGet-csomag tartalmának vizsgálatával tekinthető meg.
Amint látható, a hordozható kódtár mappanév-konvenciója a "portable-{framework 1}+{framework n}" mintát követi, ahol a keretrendszerazonosítók a meglévő keretrendszernév- és verziókonvenciákat követik. A Windows Phone-hoz használt keretrendszer-azonosító kivételt képez a név- és verziókonvenciók alól. Ennek a monikernek a "wp" (wp7, wp71 vagy wp8) keretrendszernevet kell használnia. A "silverlight-wp7" használata például hibát eredményez.
Az ebből a mappastruktúrából létrehozott csomag telepítésekor a NuGet mostantól több célra is alkalmazhatja a keretrendszer- és profilszabályokat a mappanévben megadott módon. A NuGet egyező szabályai mögött az az alapelv áll, hogy a "konkrétabb" célok elsőbbséget élveznek a "kevésbé specifikus" célokkal szemben. Ez azt jelenti, hogy az adott platformot célzó monikerek mindig előnyben lesznek részesítve a hordozhatókkal szemben, ha mindkettő kompatibilis egy projekttel. Továbbá, ha több hordozható cél is kompatibilis egy projekttel, a NuGet előnyben részesíti azt, ahol a támogatott platformok "legközelebbiek" a csomagra hivatkozó projekthez.
Windows 8- és Windows Phone 8-projektek megcélzása
A nuGet 2.1 amellett, hogy támogatja a hordozható könyvtárprojekteket, új keretrendszer-monikereket biztosít a Windows 8 Áruház és a Windows Phone 8-projektekhez, valamint néhány új általános monikert a Windows Áruházbeli és a Windows Phone-projektekhez, amelyek könnyebben kezelhetők lesznek a megfelelő platformok jövőbeli verzióiban.
Windows 8 Store-alkalmazások esetén az azonosítók a következőképpen néznek ki:
| NuGet 2.0 és korábbi verziók | NuGet 2.1 |
|---|---|
| winRT45, . NETCore45 | Windows, Windows8, win, win8 |
Windows Phone-projektek esetén az azonosítók a következőképpen néznek ki:
| Telefonos operációs rendszer | NuGet 2.0 és korábbi verziók | NuGet 2.1 |
|---|---|---|
| Windows Phone 7 | silverlight3-wp | wp, wp7, WindowsPhone, WindowsPhone7 |
| Windows Phone 7.5 (Mango) | silverlight4-wp71 | wp71, WindowsPhone71 |
| Windows Phone 8 | (nem támogatott) | wp8, WindowsPhone8 |
A fenti módosítások mindegyikében a NuGet 2.1 továbbra is teljes mértékben támogatja a régi keretrendszerneveket. A továbbiakban az új neveket kell használni, mivel ezek stabilabbak lesznek a megfelelő platformok jövőbeli verzióiban. Az új nevek *nem* lesznek támogatottak a NuGet 2.1 előtti verzióiban, ezért tervezze meg ennek megfelelően, hogy mikor váltson.
Továbbfejlesztett keresés a Package Manager párbeszédpanelen
Az elmúlt több iterációban olyan módosításokat vezettek be a NuGet-katalógusban, amelyek jelentősen javították a csomagkeresések sebességét és relevanciáját. Ezek a fejlesztések azonban csak a nuget.org webhelyre korlátozódtak. A NuGet 2.1 a Továbbfejlesztett keresési felületet teszi elérhetővé a NuGet-csomagkezelő párbeszédpanelen. Tegyük fel például, hogy a Windows Azure Caching Preview csomagot szeretné megtalálni. A csomag ésszerű keresési lekérdezése lehet az "Azure Cache". A csomagkezelő párbeszédpanel korábbi verzióiban a kívánt csomag még az eredmények első oldalán sem szerepel. A NuGet 2.1-ben azonban a kívánt csomag megjelenik a keresési eredmények tetején.
Csomagfrissítés kényszerítése
A NuGet 2.1 előtt a NuGet kihagyta a csomag frissítését, ha nem volt magas verziószám. Ez súrlódást vezetett be bizonyos forgatókönyvek esetében – különösen olyan buildelési vagy CI-forgatókönyvek esetében, ahol a csapat nem akarta növelni a csomag verziószámát az egyes buildekkel. A kívánt viselkedés a frissítés kényszerítése volt, bármilyen körülmények között. A NuGet 2.1 ezt az "újratelepítés" jelzővel kezeli. A NuGet korábbi verziói például a következőket eredményeznék, ha olyan csomagot próbálnak frissíteni, amely nem rendelkezik újabb csomagverzióval:
PM> Update-Package Moq
No updates available for 'Moq' in project 'MySolution.MyConsole'.
Az újratelepítési jelzővel a csomag frissül, függetlenül attól, hogy van-e újabb verzió.
PM> Update-Package Moq -Reinstall
Successfully removed 'Moq 4.0.10827' from MySolution.MyConsole.
Successfully uninstalled 'Moq 4.0.10827'.
Successfully installed 'Moq 4.0.10827'.
Successfully added 'Moq 4.0.10827' to MySolution.MyConsole.
Egy másik forgatókönyv, amikor az újratelepítés jelzője hasznosnak bizonyul, a keretrendszer újracélzása. A projekt célkeretének módosításakor (például .NET 4-ről .NET 4.5-ös verzióra) Update-Package -Reinstall frissítheti a projektben telepített összes NuGet-csomag megfelelő szerelvényekre mutató hivatkozásait.
Csomagforrások szerkesztése a Visual Studióban
A NuGet korábbi verzióiban a Visual Studio beállításai párbeszédpanelen lévő csomagforrás frissítéséhez törölni és újra hozzá kellett adni a csomag forrását. A NuGet 2.1 a konfigurációs felhasználói felület első osztályú funkciójaként támogatja a frissítést.
Hibajavítások
A NuGet 2.1 számos hibajavítást tartalmaz. A NuGet 2.0-ban rögzített munkaelemek teljes listájáért tekintse meg a [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Fixed&type=All&priority=All&release=NuGet%202.1&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0).