Visual Studio 2015 Update 3

Last Update: 7. 4. 2017

Datum vydání: 27. června 2016

Dnes s radostí oznamujeme vydání sady Visual Studio 2015 Update 3. Jeden z hlavních problémů nahlášených ve verzi Update 2 souvisel s vysokým využitím paměti. Tento problém jsme řešili ve verzi Update 3 RC. Oslovili jsme zákazníky, kteří tento problém nahlásili, a ohlasy byly pozitivní. Ve verzi Update 3 se setkáte s řadou podobných oprav, které souvisejí s připomínkami zákazníků ohledně výkonu a stability. Pokud zde není zpráva k vydání verze, kterou jste čekali, přešli jste ke zprávě k vydání pro nejaktuálnější verzi.

K odeslání připomínek použijte v sadě Visual Studio možnost Zpětná vazba. Svoje návrhy můžete odeslat také prostřednictvím webu Visual Studio 2015 UserVoice.

Stáhnout

Visual Studio 2015 si můžete stáhnout z webu My.VisualStudio.com. Web My.VisualStudio.com vyžaduje bezplatné předplatné Dev Essentials nebo předplatné sady Visual Studio.

Další informace najdete v článku Postupy: Instalace konkrétní verze sady Visual Studio.

Co je nového?

Související verze

Další změny

Nástroje pro Apache Cordova

Visual Studio 2015 Update 3 zahrnuje Nástroje pro Apache Cordova Update 10, včetně následujících vylepšení. Další informace o tomto vydání najdete ve zprávě k vydání verze Nástrojů pro Apache Cordova pro aktualizace Update 9 a Update 10. Nejnovější informace o našich nástrojích najdete na našem blogu pro vývojáře na Githubu.

  • Přidali jsme podporu pro Cordovu 6.1.1, to je výchozí verze pro nové projekty.
  • Vyřadili jsme registr modulů plug-in Cordovy, který se používal v Cordově 4.x. To znamená, že pro přidání modulů plug-in teď vyžadujeme nejméně Cordovu 5.x nebo novější.
  • Seznam základních modulů plug-in byla aktualizován a nyní zahrnuje moduly plug-in pro podnikové scénáře, jako je Intune, zapojení Azure, zabezpečení a místní úložiště SQLite.
  • Nyní lze přidat moduly plug-in z návrháře konfigurace pomocí názvu balíčku npm nebo pomocí ID.

plugin-byid

  • Můžete také přidat moduly plug-in, které vyžadují parametry z návrháře konfigurace.

plugin-parameters

Developer Analytics Tools

Do sady Developer Analytics Tools v7.0.2 jsme přidali následující vylepšení:

  • Trendy Application Insights, nástroj pro hledání trendů v telemetrii aplikace.
  • Nová telemetrie výjimek ve funkci CodeLens.
  • K výjimkám v diagnostických nástrojích byly přidány produkční telemetrické informace.
  • Podpora pro přidání Application Insights do projektů ASP.NET Core RC2 ze sady Visual Studio.
  • Události diagnostických nástrojů pro projekty ASP.NET 5 RC1 a ASP.NET Core RC2.
  • Automatické aktualizace hledání Application Insights, když jsou vybrané podrobné filtry, časové rozsahy a události.
  • Přechod z požadavků v hledání do kódu.
  • Vylepšené přihlašovací prostředí pro HockeyApp.

Další informace najdete v technické zprávě k vydání verze v dokumentaci k Microsoft Azure.

Ladění a diagnostika

Do verze Update 3 byla přidaná podpora diagnostických nástrojů pro aplikace spuštěné na zařízeních OneCore, včetně HoloLens a IoT.

Vylepšení funkce Upravit a pokračovat v C++:

  • Vyšší výkon a spolehlivost, když je povolený FASTLINK.
  • Výsledkem úspěšného použití změn kódu statických knihoven už není zastaralý kód.
  • Pro falešně pozitivní změny typu během rekompilace se už nezobrazují upozornění C4656.
  • Podpora přidání nového typu se stejným názvem v rámci několika kompilačních jednotek.

Vylepšení ladění uživatelského rozhraní jazyka XAML:

  • Když se ve vaší aplikaci změní fokus, nová funkce pro sledování fokusu v dynamickém vizuálním stromu způsobí, že se výběr v dynamickém vizuálním stromu aktualizuje a nastaví na element, který má aktuálně nastavený fokus.

Integrované vývojové prostředí sady Visual Studio

Předplatná a kódy Product Key

Ve verzi Update 3 jsme vyřešili připomínky zákazníků týkající se použití předplatného prostřednictvím online identity nebo kódů Product Key k odemknutí integrovaného vývojového prostředí, a to následujícími způsoby:

  • Pokud chcete aktivovat přiřazené cloudové předplatné sady Visual Studio, už nemusíte přecházet na web https://my.visualstudio.com. Integrované vývojové prostředí sady Visual Studio můžete okamžitě začít využívat, jakmile se předplatné přiřadí.
  • Vylepšili jsme zpracování chyb při použití kódu Product Key.
  • Všechny operace s uživatelskými účty a licencemi jsou teď zabezpečené pomocí HTTPS.
  • V dialogovém okně Nastavení účtu jsme provedli jsme vylepšení přístupnosti pro aktivaci předplatného a zadání kódu Product Key.
  • Novinka K zachování aktivního účtu přizpůsobení a synchronizaci nastavení roamingu už není nutné opakované ověření každých 8 dní.

Nástroje pro univerzální aplikace pro Windows

Visual Studio 2015 Update 3 obsahuje několik vylepšení Nástrojů pro univerzální aplikace pro Windows. Jedno z našich klíčových vylepšení umožňuje přihlásit se při vytváření balíčku pro odeslání do Windows Storu k účtu AAD Storu pomocí přihlašovacích údajů Azure Active Directory. Jakmile se projekt přidruží k Windows Storu, už se před vytvořením balíčku pro odeslání do Storu nebudete muset přihlašovat.

.NET Native pro univerzální aplikace pro Windows

.NET Native 1.4 je dílčí servisní verze, která vylepšuje výkon, řeší některé chyby nahlášené zákazníky a u velkých aplikací zkracuje dobu kompilace sestavení pro vydání. Aplikace XAML a hry Unity, které využívají .NET Native 1.4, budou mít lepší běhový výkon. Těchto vylepšení bylo dosaženo zrychlením volání reflexního a nativního rozhraní API.

Nástroje pro architekturu

Zaměřili jsme se na připomínky zákazníků týkající se vylepšení výkonu a spolehlivosti.

Grafičtí návrháři pro konkrétní domény (včetně EDMX a DBML)

Pokud je ve Windows 10 na obrazovce zobrazená klávesnice, při otevírání nebo při pokusu o úpravu velkých diagramů EDMX nebo DBML diagramy už Visual Studio nepřestává reagovat.

Mapa kódu

  • Visual Studio už při pokusu o spuštění funkce Generovat mapu kódu pro řešení nepřestává reagovat, když toto řešení obsahuje projekty instalačního programu (.vdproj).
  • Visual Studio už při spuštění příkazu mapy kódu z editoru kódu a zavření okna Mapa kódu, jakmile se zobrazí, nepřestává reagovat.

Ověření vrstev

  • Při sestavování řešení s projektem modelování, který obsahuje diagram vrstev s akcí ověření, se po dokončení sestavení už nevyužívá jádro procesoru.
  • Nyní můžete ověřit diagram vrstev, pokud nadřazený projekt modelování odkazuje na knihovny PCL (například ODP.Net).

Node.js Tools for Visual Studio

Novinka Node.js Tools 1.2 RC pro Visual Studio je nyní k dispozici ke stažení. Očekáváme, že tato verze zajistí výrazné vylepšení stability a výkonu, včetně omezení výskytu chyb způsobených nedostatkem paměti, ke kterým docházelo v předchozích verzích.

Mezi další vylepšení patří:

  • Rychlejší a lepší ES6 IntelliSense
  • Spolehlivější ladění
  • Vylepšené prostředí testování částí (včetně podpory pásek)
  • Příkaz .npm ve více typech projektů

Kompletní informace a soubory ke stažení najdete na stránce vydání Node.js Tools 1.2 RC.

Web Developer Tools

Když je u projektů webové aplikace ASP.NET zrušené zaškrtnutí políčka Povolit operaci Upravit a pokračovat, proces IIS Express už nepřestane pracovat pokaždé, když zastavíte ladění.

Visual C++

Součástí Update 3 se stala vylepšení, jako jsou nové kontroly a zprávy upozornění pro C++ Compiler, a také podpora a vylepšení výkonu pro kódování v jazycích C# a Visual Basic.

Kompilátor C++

  • Nyní kontrolujeme přístup odstraněného triviálního konstruktoru copy/move. Bez této kontroly jsme mohli nesprávně volat výchozí konstruktor copy (ve kterém implementace může být nesprávně vytvořená) a způsobit tak potenciální běhové generování chybného kódu.
  • Std::is_convertible nyní správně rozpozná vlastní přiřazení typu třídy, pokud je konstruktor copy odstraněný nebo soukromý.
  • V rámci poslední fáze vyřazování podpory ATL s atributy, která byla zahájená v sadě Visual Studio 2008, jsme do kompilátoru doplnili nové upozornění na zastarání. V sadě Visual Studio 2015 Update 3 použití kódu ATL s atributy vyvolá upozornění úrovně 1, které je ve výchozím nastavení aktivované. C4467
  • Při použití souborů PCH způsobí nyní neshodující se adresáře include (-I) pro kompilátor mezi kompilacemi -Yc a -Yu nové upozornění. C4599
  • Při použití souborů PCH způsobí nyní neshodující se direktivy #include ve zdrojových souborech mezi kompilacemi -Yc a -Yu upozornění. C4598

Další informace o tom, jak tyto změny mohou ovlivnit váš stávající kód, najdete v tématu Průvodce přenosem a upgradováním Visual C++ na webu MSDN.

Knihovny jazyka C++

  • Obnovili jsme výkon režimu ladění při ničení rozsahů triviálních objektů, který v aktualizaci Update 2 poklesl, jako je třeba u funkce vector.
  • Implementovali jsme vyměnitelné vlastnosti z pracovní dokumentace C++17 (z návrhu P0185 Adding [nothrow-]swappable traits). Jako spekulativní funkce C++17 jsou vlastnosti (is_swappable, is_swappable_with, is_nothrow_swappable a is_nothrow_swappable_with) viditelné a omezení u std::swap aktivní jenom tehdy, když kompilujete s /std:c++latest.
  • Odebrali jsme z knihovny vcruntime140.dll a statických knihoven volání ETW eventing, která se dřív aktivovala během spuštění procesu a zpracování funkce dllmain.
  • Novinka Odebrali jsme délku názvu symbolu v běžných nástrojích využívaných kontejnery STL, jako je std::vector. Sníží se tak pravděpodobnost upozornění C4503. Například následující typ už negeneruje upozornění: concurrency::concurrent_unordered_map<>>>>.

  • ATL/MFC/AMP/PPL: V souvislosti s dvoufázovým vyhledáváním se provedla řada oprav pro zajištění shody:

    • _com_ptr_t má nyní konstruktor move a operátor move assignment.
    • MFC: Vyřešilo se zpracování hodnot HMENU, které někdy bránily ve správném zobrazení nabídek v 64bitových aplikacích.

    • ATL/MFC: Už negeneruje následující upozornění:

    • Skrytí/přepisování funkce: C4263, C4264, C4266
    • Neshoda specifikace výjimek: C4986
    • /analyze: C6386

    • ATL: Všechny varianty AtlThrow jsou nyní správně označené pomocí __declspec(noreturn). To brání v generování chybných upozornění SAL.

    • ATL: Vyřešili nebo upravili jsme několik poznámek SAL.

    • /std:c++latest podporuje následující nové funkce: P0025R1 "clamp()", P0185R1 "is_swappable, is_nothrow_swappable" a P0272R1 "Non-const basic_string::data().".

    • /std:c++latest také kontroluje odebrání následujících starých funkcí: N4190 „Removing auto_ptr, random_shuffle(), And Old Stuff“, P0004R1 „Removing Deprecated Iostreams Aliases“, LWG 2385 „function::assign allocator argument doesn't make sense“ a různých nestandardních funkcí (obor názvů std::tr1, některé nástroje pouze pro TR1 a struktura std::identity).

    • Byla opravena bezobslužná nesprávná funkce codegen v atomic/atomic pro x86.

    • STL nyní nevyužívá statické objekty Magic bezpečné pro přístup z více vláken s výjimkou případů, kdy je to nezbytně nutné. Výsledkem je vylepšení generovaného kódu.

    • Konstruktor perfect forwarding řazené kolekce členů už nevytlačuje konstruktor copy, což v některých případech řeší chyby kompilátoru.

  • Korutiny:

    • Vyřadili jsme následující klíčová slova: __yield_value & __await. Místo nich se používá co_await / co_yield.
    • Ke členům to_address a from_promise třídy coroutine_handle jsme přidali upozornění na vyřazení. Místo coroutine_handle::to_address() použijte coroutine_handle::address().
    • Místo coroutine_handle::from_promise(Promise *P) použijte coroutine_handle::from_promise(Promise &P).
  • Vylepšili jsme výkon std::equal a std::lexicographical_compare agresivnějším odesláním do memcmp a memchr. Výsledkem jsou velká vylepšení výkonu v některých scénářích, například equal(char,char,char, char) na 64bitových platformách.

    • Výrazně se vylepšilo ladění díky omezení počtu volání účtovacích funkcí v našich nástrojích pro iterační ladění.
    • Funkce string::push_back se ve srovnání s aktualizací Update 2 v sestaveních pro vydání vylepšila o dalších 40 % (výraznější vylepšení je u sestavení ladicí verze). (To je ještě nad rámec velkých vylepšení výkonu, která poskytuje aktualizace Update 2.)
    • Ladicí sestavení napříč všemi standardními algoritmy se zlepšilo odstraněním několik typů volání podpory metaprogramování s prázdnou šablonou (například _Iter_cat), přes všechny algoritmy, které přebírají predikáty snížením počtu kopií predikátu.
    • std::mismatch pod _ITERATOR_DEBUG_LEVEL 1 a 2 má lepší výkon díky kontrole druhého rozsahu před iterací, kde je to možné.
  • Použili jsme vylepšenou diagnostiku pro zprávy _SCL_INSECURE_DEPRECATE na zbývající algoritmy (v aktualizaci Update 2 byl do nového mechanismu zastarání zapojen pouze malý počet algoritmů). To také zlepšuje funkce ladění při ladění do standardních algoritmů, protože už neexistují interakce preprocesoru _ITERATOR_DEBUG_LEVEL deklarující více kopií standardních algoritmů. Vyřešili jsme také následující:

    • Vyřešili jsme nemožnost kompilace některých funkcí jako mismatch(iter, iter, T[]) kvůli interakci mezi naším nestandardním algoritmem _ITERATOR_DEBUG_ARRAY_OVERLOADS a algoritmy pro duální rozsahy.
  • Vyřešili jsme porušení upozornění C4242 v STL, které je ve výchozím nastavení vypnuté.
  • Vyřešili jsme možnou chybu celočíselného přetečení v std::pop_heap.
  • Vyřešili jsme potenciální zablokování v /clr:pure kvůli voláním LoadLibrary vloženým pomocí CLR s držením zámku národního prostředí.

Ladění C++/CLI

  • Novinka Vyhodnocování výrazů C++/CLI nyní podporuje funkce ladicího programu, jako je Natvis, které se dříve podporovaly jenom pro čistě nativní aplikace. Nyní se objekty uvedené v proměnném okně (nebo uvnitř datového tipu) ve smíšené spravované/nativní aplikaci rozbalí stejným způsobem, jako kdyby byly v čistě nativní aplikaci (podle definice vizualizérů typu).

plugin-byid

Sada nástrojů platformy Clang/C2

Integrovali jsme vydání Clang 3.8 do Clang/C2 a poskytli 64bitovou hostovanou sadu nástrojů.

C++ MDD

Zajistili jsme podporu pro nejnovější Android NDK verze R11C a možnost upgradovat aktuální projekty tak, aby cílily na nejnovější NDK.

TypeScript

Novinka Visual Studio 2015 Update 3 zahrnuje TypeScript 1.8.34. Vyřešili jsme chyby typu nedostatek paměti u některých velkých projektů TypeScriptu, které využívají AngularJS.

C# a Visual Basic

Novinka Investovali jsme do snížení paměťových nároků a vylepšení výkonu diagnostiky kódu. Omezí se tak řada chyb typu nedostatek paměti, ke kterým docházelo v předchozích verzích. Vylepšili jsme výkon při spuštění diagnostiky kódu v rámci celého řešení. Další informace o vylepšení výkonu diagnostiky kódu najdete na stránce věnované postupům pro povolení a zákaz analýzy celého řešení pro spravovaný kód na webu MSDN.

Mezi další vylepšení patří:

  • Možnost přidat odkaz na balíček NuGet jako rychlou opravu:

plugin-byid

Tuto možnost můžete povolit pomocí příkazu Nástroje > Možnosti > Textový editor > C# > Upřesnit v části Direktivy Using:

plugin-byid

  • Vylepšili jsme podporu pro knihovny tříd Portable, které cílí na standard platformy .NET.
  • Vylepšili jsme výkon funkcí Přejít na implementaci a Najít všechny odkazy pro C#. Můžete si je vyzkoušet tak, že vyberete objekt, kliknete na něj pravým tlačítkem a potom je vyberete z místní nabídky.
  • Když použijete akci typu Opravit vše pro dokument, projekt nebo řešení, zobrazuje se teď indikátor průběhu.
  • Novinka Vylepšení výkonu při opětovném načtení projektů C# a VB ve velkých řešeních. Další informace a tipy najdete v článku věnovaném důležitým informacím o výkonu pro velká řešení.

Team Explorer

Novinka V Team Exploreru bylo opraveno několik chyb:

  • Nejde zobrazit obsah souboru, který byl odstraněn z úložiště Git.
  • Při zobrazení historie větve by ikona Přejít k podřízenému měla být zablokovaná, pokud je fokus nastavený na nejnovější potvrzení změn.
  • Při změně větví pomocí Git.exe může v sadě Visual Studio dojít k chybě nebo se může dostat do neznámého stavu.
  • Při zobrazení historie větve v úložišti Git nefunguje zvýraznění v histogramu úplně bez chyb.
  • Při vytváření větve v nástroji Team Explorer je klávesová zkratka Alt + B pro vytvoření větve v konfliktu s nabídkou Sestavit.
  • Pokud se v situaci s vysokým využitím paměti pokusíte rozbalit objekt větší, než je dostupná paměť, Git nezobrazí chybu typu Nedostatek paměti, ale chybu typu Objekt nebyl nalezen – žádný odpovídající volný ().
  • Překlep v chybové zprávě „... Chcete-li otevřít toto řešení, ...“.
  • Pokud při zobrazení historie větve kliknete pravým tlačítkem na první potvrzení změn v historii, funkce výběru určitých položek je zakázaná.
  • Při vytváření žádosti o přijetí změn ze stránky větví Team Exploreru kontextová nabídka místo vybrané větve používá aktuální větev.

Xamarin pro Visual Studio

Novinka Visual Studio 2015 Update 3 nyní zahrnuje Xamarin 4.1. Tato verze kromě řady opravených chyb také nově nabízí podporu pro tvOS, vylepšuje podporu pro katalog prostředků iOS, vylepšuje prostředí pro úpravy XML a při vytváření aplikací pro iOS přidává selektory pro implementace HttpClient a SSL/TLS. Další informace najdete ve zprávě k vydání verze Xamarinu.

Známé problémy

Úplný popis známých problémů v tomto vydání najdete v následujícím článku na webu MSDN: Známé problémy v sadě Visual Studio Update 3.