Megosztás:


NuGet 2.0 kibocsátási megjegyzések

NuGet 1.8 kibocsátási megjegyzések | NuGet 2.1 kibocsátási megjegyzések

A NuGet 2.0 2012. június 19-én jelent meg.

Ismert telepítési probléma

Ha a VS 2010 SP1-et futtatja, a NuGet frissítésének megkísérlésekor telepítési hibába ütközhet, ha egy régebbi verzió van telepítve.

A megkerülő megoldás az, hogy egyszerűen eltávolítja a NuGetet, majd telepíti a VS Bővítménytárból. További https://support.microsoft.com/kb/2581019 információért nézze meg, vagy menjen közvetlenül a VS gyorsjavításhoz.

Megjegyzés: Ha a Visual Studio nem engedélyezi a bővítmény eltávolítását (az Eltávolítás gomb le van tiltva), akkor valószínűleg újra kell indítania a Visual Studiót a "Futtatás rendszergazdaként" paranccsel.

A csomag-visszaállítási hozzájárulásról szóló bejegyzésben leírtak szerint a NuGet 2.0 mostantól megköveteli, hogy a csomag-visszaállítás online állapotba lépjen, és letöltse a csomagokat. Győződjön meg arról, hogy a csomagkezelő konfigurációs párbeszédpaneljén vagy az EnableNuGetPackageRestore környezeti változón keresztül adta meg a hozzájárulást.

Függőségek csoportosítása cél-keretrendszerek szerint

A 2.0-s verziótól kezdve a csomagfüggőségek a célprojekt keretrendszerprofilja alapján változhatnak. Ez egy frissített .nuspec séma használatával történik. Az <dependencies> elem mostantól tartalmazhat egy <group> elemkészletet. Minden csoport nulla vagy több <dependency> elemet és attribútumot targetFramework tartalmaz. A csoporton belüli összes függőség együtt lesz telepítve, ha a cél keretrendszer kompatibilis a célprojekt-keretrendszer profiljával. Például:

<dependencies>
    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>

    <group targetFramework="net40">
        <dependency id="jQuery" />
        <dependency id="WebActivator" />
    </group>

    <group targetFramework="sl30">
    </group>
</dependencies>

Vegye figyelembe, hogy egy csoport nulla függőséget tartalmazhat. A fenti példában, ha a csomag olyan projektbe van telepítve, amely a Silverlight 3.0-s vagy újabb verzióját célozza, nem lesznek telepítve függőségek. Ha a csomag olyan projektbe van telepítve, amely a .NET 4.0-s vagy újabb verzióját célozza, két függőség, a jQuery és a WebActivator lesz telepítve. Ha a csomag olyan projektbe van telepítve, amely a 2 keretrendszer korai verzióját vagy bármely más keretrendszert célozza, a RouteMagic 1.1.0 telepítve lesz. A csoportok között nincs öröklés. Ha egy projekt cél-keretrendszere megegyezik egy targetFramework csoport attribútumával, csak az adott csoporton belüli függőségek lesznek telepítve.

A csomagok kétféle formátumban adhatják meg a csomagfüggőségeket: az elemek vagy csoportok egyszerű listájának régi formátumát <dependency> . Ha a <group> formátumot használja, a csomag nem telepíthető a NuGet 2.0-nál korábbi verzióiba.

Vegye figyelembe, hogy a két formátum keverése nem engedélyezett. Az alábbi kódrészlet például érvénytelen , és a NuGet elutasítja.

<dependencies>
    <dependency id="jQuery" />
    <dependency id="WebActivator" />

    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>
</dependencies>

Tartalomfájlok és PowerShell-szkriptek csoportosítása cél-keretrendszer szerint

A szerelvényhivatkozások mellett a tartalomfájlok és a PowerShell-szkriptek cél-keretrendszer szerint is csoportosíthatók. A cél-keretrendszer megadására szolgáló lib mappában található ugyanaz a mappastruktúra mostantól ugyanúgy alkalmazható a content és tools mappákra is. Például:

\content
    \net11
        \MyContent.txt
    \net20
        \MyContent20.txt
    \net40
    \sl40
        \MySilverlightContent.html

\tools
    \init.ps1
    \net40
        \install.ps1
        \uninstall.ps1
    \sl40
        \install.ps1
        \uninstall.ps1

Megjegyzés: Mivel init.ps1 a végrehajtás a megoldás szintjén történik, és nem függ egyetlen projekttől sem, közvetlenül a tools mappába kell helyezni. Ha egy keretrendszer-specifikus mappába kerül, a rendszer figyelmen kívül hagyja.

Emellett a NuGet 2.0 új funkciója, hogy a keretrendszermappák üresek lehetnek, ebben az esetben a NuGet nem ad hozzá szerelvényhivatkozásokat, nem ad hozzá tartalomfájlokat, és nem futtat PowerShell-szkripteket az adott keretrendszerverzióhoz. A fenti példában a mappa content\net40 üres.

Továbbfejlesztett lapkiegészítési teljesítmény

A NuGet Package Manager konzol lapkiegészítési funkcióját frissítettük a teljesítmény jelentős javítása érdekében. A tabulátorbillentyű lenyomásának időpontjától kezdve a javaslat legördülő listájának megjelenéséig sokkal kisebb lesz a késleltetés.

Hibajavítások

A NuGet 2.0 számos hibajavítást tartalmaz, különös tekintettel a csomag-visszaállítási hozzájárulásra és a teljesítményre. 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=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0).