Číst v angličtině

Sdílet prostřednictvím


Zpráva k vydání verze NuGet 2.5

Zpráva k vydání verze NuGet 2.2.1– zpráva | k vydání verze NuGet 2.6

NuGet 2.5 byl vydán 25. dubna 2013. Tato verze byla tak velká, cítili jsme se nuceni přeskočit verze 2.3 a 2.4! K dnešnímu dni se jedná o největší verzi, kterou jsme měli pro NuGet, a v této verzi jsme skončili [160 work items](https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.5&status=all) .

Poděkování

Chtěli bychom poděkovat následujícím externím přispěvatelům za jejich významné příspěvky na NuGet 2.5:

  1. [Daniel Plaisted](https://www.codeplex.com/site/users/view/dsplaisted) (@dsplaisted)
    • [#2847](https://nuget.codeplex.com/workitem/2847) - Přidejte MonoAndroid, MonoTouch a MonoMac do seznamu známých identifikátorů cílové architektury.
  2. [Andres G. Aragoneses](https://www.codeplex.com/site/users/view/knocte) (@knocte)
    • [#2865](https://nuget.codeplex.com/workitem/2865) – Oprava pravopisu operačního systému citlivého NuGet.targets na malá a velká písmena
  3. [David Fowler](https://www.codeplex.com/site/users/view/dfowler) (@davidfowl)
    • Vytvořte řešení na mono.
  4. [Andrew Theken](https://www.codeplex.com/site/users/view/atheken) (@atheken)
    • Oprava selhání testů jednotek na Mono
  5. [Olivier Dagenais](https://www.codeplex.com/site/users/view/OliIsCool) (@OliIsCool)
    • [#2920](https://nuget.codeplex.com/workitem/2920) – příkaz nuget.exe pack nerozšíruje vlastnosti do nástroje MSBuild.
  6. [Miroslav Bajtos](https://www.codeplex.com/site/users/view/MiroslavBajtos) (@bajtos)
    • [#1511](https://nuget.codeplex.com/workitem/1511) - Upravený kód zpracování XML pro zachování formátování.
  7. [Adam Ralph](http://www.codeplex.com/site/users/view/adamralph) (@adamralph)
    • Přidali jsme rozpoznaná slova do vlastního slovníku, aby bylo možné build.cmd uspět.
  8. [Bruno Roggeri](https://www.codeplex.com/site/users/view/broggeri)
    • Oprava testů jednotek při spuštění v lokalizovaném VS
  9. [Gareth Evans](https://www.codeplex.com/site/users/view/garethevans)
    • Extrahované rozhraní z PackageService
  10. [Maxime Brugidou](https://www.codeplex.com/site/users/view/brugidou) (@brugidou)
    • [#936](https://nuget.codeplex.com/workitem/936) – Zpracování závislostí projektu při balení
  11. [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) – Podpora hesla pro vymazání textu při ukládání přihlašovacích údajů ke zdroji balíčků v souborech nuget.cofig
  12. [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) – Oprava popisu nápovědy k získání balíčku

Také si vážíme následujících jednotlivců, kteří hledají chyby s verzí NuGet 2.5 Beta/RC, které byly schváleny a opraveny před finální verzí:

  1. [Tony Wall](https://www.codeplex.com/site/users/view/CodeChief) (@CodeChief)
    • [#3200](https://nuget.codeplex.com/workitem/3200) – MSTest nefunguje s nejnovějšími buildy NuGet 2.4 a 2.5

Notable features in the release

Povolit uživatelům přepsat soubory obsahu, které už existují

Jednou z nejžádanějších funkcí je možnost přepsat soubory obsahu, které už existují na disku, když je součástí balíčku NuGet. Počínaje verzí NuGet 2.5 jsou tyto konflikty identifikovány a zobrazí se výzva k přepsání souborů, zatímco dříve se tyto soubory vždy přeskočily.

Overwrite content files

Aktualizace nuget.exe a Install-Package teď mají novou možnost -FileConflictAction, která nastaví výchozí nastavení pro scénáře příkazového řádku.

Nastavte výchozí akci, pokud soubor z balíčku již v cílovém projektu existuje. Pokud chcete vždy přepsat soubory, nastavte na hodnotu Přepsání. Pokud chcete přeskočit soubory, nastavte na Ignorovat. Pokud není zadaný, zobrazí se výzva pro každý konfliktní soubor.

Automatický import cílů a souborů MSBuildu

Na nejvyšší úrovni balíčku NuGet byla vytvořena nová konvenční složka. Jako partnerský vztah \lib\content\toolsa teď můžete do balíčku zahrnout \build složku. V této složce můžete umístit dva soubory s pevnými názvy nebo {packageid}.targets{packageid}.props. Tyto dva soubory můžou být buď přímo v build rámci, nebo v rámci složek specifických pro architekturu stejně jako ostatní složky. Pravidlo pro výběr nejvhodnější složky architektury je úplně stejné jako v těch.

Když NuGet nainstaluje balíček se soubory \build, přidá do souboru projektu prvek MSBuild <Import> odkazující na .targets soubory a .props soubory. Soubor .props se přidá v horní části, zatímco .targets soubor se přidá do dolní části.

Určení různých odkazů na platformu pomocí <References/> elementu

Před 2.5 může uživatel v .nuspec souboru zadat pouze referenční soubory, které se mají přidat pro všechny architektury. Nyní s touto novou funkcí ve verzi 2.5 může uživatel vytvořit <reference/> prvek pro každou z podporovaných platforem, například:

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

Tady je tok, jak NuGet přidává odkazy na projekty založené na .nuspec souboru:

  1. lib Vyhledejte složku, která je vhodná pro cílovou architekturu, a získejte seznam sestavení z této složky.
  2. Samostatně vyhledejte skupinu odkazů, která je vhodná pro cílovou architekturu, a získejte seznam sestavení z této skupiny. Referenční skupina bez zadané cílové architektury je záložní skupina.
  3. Najděte průsečík dvou seznamů a použijte ho jako odkazy, které chcete přidat.

Tato nová funkce umožní autorům balíčků používat funkci Reference k použití podmnožina sestavení na různé architektury, pokud by jinak potřebovali mít duplicitní sestavení ve více lib složkách.

Poznámka: K použití této funkce musíte v současné době používat balíček nuget.exe; Průzkumník balíčků NuGet ho zatím nepodporuje.

Tlačítko Aktualizovat vše pro povolení aktualizace všech balíčků najednou

Mnozí z vás vědí o rutině PowerShellu Update-Package, která aktualizuje všechny balíčky; teď je to snadný způsob, jak to udělat také prostřednictvím uživatelského rozhraní.

Pokud chcete vyzkoušet tuto funkci:

  1. Vytvoření nové aplikace ASP.NET MVC
  2. Spuštění dialogového okna Spravovat balíčky NuGet
  3. Vyberte Aktualizace.
  4. Klikněte na tlačítko Aktualizovat vše.

Update All button in the dialog

Vylepšená referenční podpora projektu pro nuget.exe Pack

Nyní nuget.exe pack procesy příkazů odkazované na projekty s následujícími pravidly:

  1. Pokud odkazovaný projekt obsahuje odpovídající .nuspec soubor, například existuje soubor, který je volán proj1.nuspec ve stejné složce jako proj1.csproj, pak se tento projekt přidá jako závislost do balíčku pomocí ID a verze načtené .nuspec ze souboru.
  2. V opačném případě se soubory odkazovaného projektu zabalí do balíčku. Projekty odkazované tímto projektem se pak budou zpracovávat rekurzivně pomocí stejných pravidel.
  3. Všechny knihovny DLL a .pdb.exe soubory jsou přidány.
  4. Všechny ostatní soubory obsahu se přidají.
  5. Všechny závislosti se sloučí.

To umožňuje, aby odkazovaný projekt byl považován za závislost, pokud existuje .nuspec soubor, jinak se stane součástí balíčku.

Další podrobnosti najdete tady: [http://nuget.codeplex.com/workitem/936](http://nuget.codeplex.com/workitem/936)

Přidání vlastnosti Minimální verze NuGet do balíčků

Nový atribut metadat s názvem minClientVersion teď může značit minimální verzi klienta NuGet potřebnou k využívání balíčku.

Tato funkce pomáhá autorovi balíčku určit, že balíček bude fungovat až po konkrétní verzi NuGetu. Po přidání nových .nuspec funkcí po NuGetu 2.5 budou balíčky moci deklarovat minimální verzi NuGetu.

<metadata minClientVersion="2.6">

Pokud má uživatel nainstalovaný NuGet 2.5 a balíček se identifikuje jako vyžadování verze 2.6, zobrazí se uživateli vizuální upozornění, že balíček nebude možné nainstalovat. Uživatel se pak bude řídit aktualizací své verze NuGetu.

Tím se zlepší stávající prostředí, ve kterém se balíčky začnou instalovat, ale pak selžou indikující, že byla identifikována nerozpoznaná verze schématu.

Závislosti se už během instalace balíčku zbytečně neaktualizují.

Před NuGetem 2.5 se při instalaci balíčku, který závisí na již nainstalovaném balíčku v projektu, bude závislost v rámci nové instalace aktualizována, i když existující verze závislosti splnila.

Počínaje NuGetem 2.5, pokud už je verze závislosti splněná, závislost se během jiných instalací balíčků neaktualizuje.

Scénář:

  1. Zdrojové úložiště obsahuje balíček B verze 1.0.0 a 1.0.2. Obsahuje také balíček A, který má závislost na B (>= 1.0.0).
  2. Předpokládejme, že aktuální projekt již má nainstalovaný balíček B verze 1.0.0. Teď chcete nainstalovat balíček A.

V NuGetu 2.2 a starším:

  • Při instalaci balíčku A nuGet automaticky aktualizuje B na verzi 1.0.2, i když stávající verze 1.0.0 již splňuje omezení verze závislosti, což je >= 1.0.0.

V NuGetu 2.5 a novějším:

  • NuGet už nebude aktualizovat B, protože zjistí, že stávající verze 1.0.0 splňuje omezení verze závislosti.

Další informace o této změně najdete v podrobných [work item](https://nuget.codeplex.com/workitem/1681) informacích a souvisejících informacích [discussion thread](https://nuget.codeplex.com/discussions/436712).

nuget.exe výstupy požadavků HTTP s podrobnou podrobností

Pokud řešíte potíže nuget.exe nebo jen zajímáte, jaké požadavky HTTP se provádějí během operací, přepínač podrobností podrobně zobrazí výstup všech provedených požadavků HTTP.

HTTP output from nuget.exe

nuget.exe nasdílení změn teď podporuje zdroje UNC a složek.

Před NuGet 2.5, pokud jste se pokusili spustit příkaz "nuget.exe push" do zdroje balíčku na základě cesty UNC nebo místní složky, nabízené oznámení by se nezdařilo. S nedávno přidanou hierarchickou funkcí konfigurace se stala společná pro nuget.exe, že je potřeba cílit na zdroj UNC/složky nebo galerii NuGet založenou na protokolu HTTP.

Počínaje NuGetem 2.5, pokud nuget.exe identifikuje zdroj UNC/složky, provede kopírování souboru do zdroje.

Teď bude fungovat následující příkaz:

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

nuget.exe podporuje explicitně zadané konfigurační soubory

nuget.exe příkazy, které přistupují ke konfiguraci (kromě specifikace a balíčku), teď podporují novou možnost -ConfigFile, která vynutí použití konkrétního konfiguračního souboru místo výchozího konfiguračního souboru na adrese %AppData%\nuget\Nuget.Config.

Příklad:

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

Podpora nativních projektů

Díky NuGetu 2.5 je teď nástroje NuGet dostupné pro nativní projekty v sadě Visual Studio. Očekáváme, že většina nativních balíčků bude využívat funkci importů MSBuild výše pomocí nástroje vytvořeného projektem CoApp. Další informace najdete v podrobnostech o nástroji na coapp.org webu.

Název cílové architektury "nativní" se zavádí pro balíčky, které při instalaci balíčku do nativního projektu zahrnují soubory v \build, \content a \tools. Složka lib se nepoužívá pro nativní projekty.