Zpráva k vydání verze pro Visual Studio 2017 verze 15.8
Komunita vývojářů | Požadavky na systém | Kompatibilita | Distribuovatelný kód | Licenční podmínky | Blogy | Známé problémy
Poznámka:
Nejedná se o nejnovější verzi sady Visual Studio. Pokud si chcete stáhnout nejnovější verzi, navštivte prosím web sady Visual Studio .
Časový rámec podpory
Tato verze už není podporována. Další informace o podpoře sady Visual Studio najdete v zásadách podpory pro Visual Studio 2017.
Přečtěte si nejnovější verzi poznámky k verzi nebo navštivte web sady Visual Studio a stáhněte si nejnovější podporovanou verzi sady Visual Studio 2017.
Visual Studio Blog
Blog o sadě Visual Studio je oficiální zdroj informací o produktu, které poskytuje tým technických specialistů sady Visual Studio. Podrobné informace o vydaných verzích sady Visual Studio 2017 verze 15.8 najdete v těchto příspěvcích:
- Visual Studio 2017 verze 15.8 -- Přečtěte si nejnovější příspěvek na blogu!
Vydané verze sady Visual Studio 2017 ve verzi 15.8
- 2. listopadu 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.9
- 24. října 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.8
- 10. října 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.7
- 2. října 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.6
- 20. září 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.5
- 11. září 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.4
- 6. září 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.3
- 28. srpna 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.2
- 17. srpna 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.1
- 14. srpna 2018 – Podverze sady Visual Studio 2017 verze 15.8
Důležité
Oznámení o poradci Security Advisory sady Visual Studio 2017 verze 15.8
- 10. října 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.7
- 11. září 2018 – Servisní aktualizace sady Visual Studio 2017 verze 15.8.4
- 14. srpna 2018 – Visual Studio 2017 verze 15.8
- 10. července 2018 – Visual Studio 2017 verze 15.8 Preview 4
- 26. června 2018 – Visual Studio 2017 verze 15.8 Preview 3
- 8. května 2018 – Visual Studio 2017 verze 15.8 Preview 1
Krátký přehled zajímavých nových funkcí ve verzi 15.8
- Instalační program teď nabízí možnost před spuštěním instalace stáhnout všechny soubory.
- Zvýšili jsme výkon při zavírání a opětovném načítání projektu a během přepínání větví.
- Když zakážete automatické obnovování dokumentů, může se zlepšit načítání řešení.
- Výrazně jsme zvýšili výkon testů v situacích, kdy se spustí velká řešení s několika projekty testů.
- Visual Basic teď přináší významné zvýšení výkonu.
- Profilace výkonu teď nabízí možnost pozastavit a pokračovat ve shromažďování dat a přidali jsme nový nástroj pro sledování přidělování objektů .NET.
- Vylepšili jsme nástroj Využití procesoru pro profilaci výkonu.
- Přidali jsme nové funkce pro produktivitu, třeba čištění kódu, refaktoring invertních podmínek, přechod na vnější blok, podporu více kurzorů a nové profily klávesnice.
- Při ladění rozšíření si teď můžete zvolit cílovou instanci.
- Snapshot Debugger můžete spouštět přímo ze stránky se souhrnem publikování.
- Zavedli jsme F# 4.5, novou jazykovou verzi, která plně podporuje
Span<'T>
a obsahuje významná vylepšení trasování zásobníku pro asynchronní kód. - Vylepšili jsme výkon a přidali jsme nové funkce v nástrojích jazyka F# , například Ctrl+Kliknutí na přejít k definici.
- Mezi vylepšení sady nástrojů C++ patří vylepšení optimalizátoru SSA a linkeru.
- Mezi funkce přidané pro vývoj multiplatformních aplikací C++ patří aktualizace ClangFormatu, šablony konfigurace v CMaku a otevírání složek pro MinGW, Linux a Windows.
- Změny produktivity C++ zahrnují IntelliSense pro šablony, Rychlé informace pro makra, žárovky pro převod na constexpr, podtrhávání vlnovkou na základě analýzy kódu v editoru a další.
- Mezi vylepšení ladění C++ patří aktualizace funkce Pouze můj kód a nové datové zarážky.
- JavaScriptu a TypeScriptu jsme přidali nové funkce a provedli jsme celou řadu vylepšení.
- Teď můžete ve svých projektech spravovat knihovny na straně klienta.
- Přidali jsme nové prostředí kontejneru Dockeru pro jednotlivé webové projekty ASP.NET Core.
- Díky vylepšením publikování v této verzi si můžete přizpůsobit značky pro image Dockeru.
- Mezi vylepšení Xamarinu patří podpora pro Xcode 9.4 a inteligentnější přírůstkové sestavování pro Android.
- Ve Windows 10 April 2018 Update můžete používat Google Android Emulator spolu s technologií Hyper-V.
- Přidali jsme rozdělené zobrazení editoru pro Xamarin.Android Designer.
- Xamarin.Forms Previewer teď podporuje sadu nástrojů a přesunuli jsme ho do editoru s rozděleným zobrazením.
- Pokud používáte Python 3.7.0rc1, můžete teď použít ladění různých jazyků.
- Operace Migrovat místní nastavení funkce Azure Functions do Azure teď zobrazuje nové hodnoty.
- Díky tomu, že se přidala podpora pro Azure Functions, máte teď v dialogu Azure v části Konfigurovat průběžné doručování k dispozici nového cílového hostitele.
- Vylepšení podokna souhrnu Průzkumníka testů teď nabízí více informací o stavu testu.
- Rozšíření Adaptér testu .NET: změna způsobující chybu a vyřazení
- Přidali jsme nativní podporu protokolu LSP (Language Server Protocol).
- Pro projekty ASP.NET .NET Framework je teď k dispozici podpora tajných kódů.
- Visual Studio vám teď pomáhá s upgradem aplikací ASP.NET .NET Framework, abyste dosáhli vyššího výkonu při sestavování.
- Visual Studio teď nabízí nástroje pro vývoj v rozhraní .NET Framework 4.7.2 pro podporované platformy se zahrnutým modulem runtime 4.7.2.
- Asynchronní automatické načítání balíčků je zpožděné, dokud se nedokončí spouštění a načítání řešení.
- Nástroje Visual Studio Build Tools 2017 nyní podporují Pracovní postup a obsahují sadu VSSDK.
- Při změně souboru v projektech .NET Core se teď správně aktualizuje stav Gitu a TFS (Team Foundation Server).
- Součástí se stala sada .NET Core SDK 2.1.400.
Hlavní chyby opravené ve verzi 15.8
Problémy hlášené zákazníky, které jsou vyřešené ve verzi 15.8:
- V nástrojích Visual Studio Build Tools 2017 není k dispozici SSDT.
- Anaconda se při upgradu neodinstaluje (Chyba 87).
- Upgrade na verzi 15.7 vygeneruje chybu: PackageId:Anaconda3.Exe.x64;PackageAction:Uninstall;ReturnCode:87;
- Aktualizace sady Visual Studio vygeneruje chyby UWP BuildError at MakePri 0x80073b0f and 0xdef00532 v řešení .
- VS 2017 má problémy s funkcí exportu šablony ASP.NET Core.
- Průzkumník testů (testy SpecFlow): přechází do souboru třídy funkce, ne souboru funkce.
- Šablona projektu exportovaná z projektu C++ obsahuje jen vcxproj a vcxproj.filters, ale ne zdrojový kód nebo hlavičky.
- Chybný codegen na architektuře x64
- Místní nabídka, která se zobrazuje kliknutím pravým tlačítkem na složku řešení, ve verzi Enterprise 15.8 Preview 2 nic nedělá.
- VS2017 si nepamatuje pozici a velikost obrazovky, když se používá na 3 obrazovkách.
- UTF8-no-BOM způsobuje, že okno rozdílů zobrazí chybná upozornění na kódování.
- Když se dvakrát klikne na nějaké slovo, vybere se jen začátek slova, ne slovo jako celek.
- VS2015 a VS2017 vytvářejí prázdnou složku Debug na cestě definované v $(SolutionDir), i když $(OutDir) a $(IntDir) používají úplně jiná nastavení.
- Pokud ve VS2017 v japonském prostředí vytvoříte projekt založený na dialozích MFC, úprava dialogu způsobí chybu v sestavení.
- Zobrazení textu průběhu stahování v Instalačním programu pro Visual Studio
- Klikněte pravým tlačítkem myši na spustitelný projekt v Průzkumník řešení – Ladění –>> Spuštění nové instance vybere náhodný projekt od řešení, které se má spustit.
- Sestavení příkazovým řádkem DEVENV neproběhne úspěšně s touto chybou: Tato operace se dá provést jen ve vlákně uživatelského rozhraní.
- Funkce Najít a nahradit si pamatuje typy souborů.
- Kvůli barvě písma a pozadí nejsou v konzole Správce balíčků čitelné chybové zprávy.
- Náhled publikování webu v sadě Visual Studio Community 2017 15.4.1 neproběhne úspěšně kvůli chybě autorizace.
- Otevření výsledků testu v sadě VS 2017 pro sestavení XAML.
Podívejte se na všechny problémy nahlášené zákazníky, které byly opraveny v sadě Visual Studio 2017 verze 15.8.
Podrobnosti o novinkách ve verzi 15.8
Visual Studio 2017 verze 15.8.0
Vydáno 14. srpna 2018
Nové funkce ve verzi 15.8
Instalace
Nyní si můžete stáhnout všechny instalační soubory před zahájením instalace.
- Pokud chcete tuto novou možnost využít, vyberte v instalačním programu volbu „Vše stáhnout, potom nainstalovat“ (obr. 1). Její použití se doporučuje, pokud máte pomalejší připojení k internetu.
- Výchozí možností zůstává „Nainstalovat při stahování“, při které probíhá stahování a instalace současně.
Výkon
Tato verze obsahuje následující vylepšení výkonu:
- Přepínání větví u projektů v jazycích C#, VB a C++ je u velkých řešení mnohem rychlejší, protože už se nevyžaduje opětovné načítání řešení.
- U velkých řešení jsme zkrátili dobu uvolnění a opětovného načtení malé sady projektů v jazycích C# a VB z řádu minut na několik sekund.
- Přidali jsme možnost zakázat opětovné otevření dokumentů, které byly otevřené v předchozí relaci, protože takové otevírání může u některých typů souborů nebo návrhářů zpozdit načtení řešení.
- Tuto možnost můžete přepnout v části Nástroje > Možnosti > Projekty > Řešení > Obecné.
Test výkonu
Výrazně jsme vylepšili výkon při spuštění několika testů u velkých řešení s více testovacími projekty. V našich testovacích prostředích provedlo řešení s více než 10 000 MSTesty jediný test až o 82 % rychleji.
Vylepšení výkonu jazyka Visual Basic
Visual Basic nově poskytuje výrazně vyšší výkon při použití vzoru CInt(Fix(number))
pro převod jiných než celých čísel na celočíselné typy.
Profilace výkonu
Tato verze obsahuje následující vylepšení profilace výkonu:
Přidali jsme možnost spuštění profilace v pozastaveném stavu:
Nástroj Využití CPU v profileru výkonu (ALT-F2) je nyní možné spustit v pozastaveném stavu (Obrázek 2). To se může hodit například tehdy, když čekáte na vhodný scénář pro šetření využití CPU. Pokud bude shromažďování dat o využití CPU při spuštění zakázané, profiler výkonu nebude sbírat žádná data zásobníku ze vzorkování využití procesoru až do doby, než ho výslovně povolíte. Ve výsledku se tak shromažďuje a analyzuje menší množství dat a zkoumání výkonu se zefektivní.
Pokud chcete spustit relaci se zakázaným vzorkováním využití CPU, klikněte na úvodní stránce profileru výkonu na ikonu ozubeného kola vedle nástroje Využití CPU. Na stránce vlastností tohoto nástroje zrušte zaškrtnutí políčka Povolit profilaci procesoru (vzorkování) a kliknutím na OK nastavení uložte.
Po spuštění cílové aplikace (kliknutím na Start na úvodní stránce profileru výkonu) se zobrazí graf využití procesoru (Obrázek 3), který vám umožní řídit profilaci procesoru. Pokud chcete povolit shromažďování dat zásobníku ze vzorkování využití procesoru, vyberte Povolit profilaci procesoru uprostřed zobrazení nebo klikněte na Zaznamenat profil CPU přímo pod grafem využití procesoru. Vzorkování dat můžete kliknutím na Zaznamenat profil CPU povolit nebo zakázat, kolikrát chcete. Barva grafu využití CPU se mění podle toho, jestli je v aktuální chvíli vzorkování povoleno nebo zakázáno.
Přidali jsme nástroj pro sledování přidělování objektů .NET:
- Nástroj pro sledování přidělování objektů .NET je dalším z řady nástrojů, které jsou k dispozici v profileru výkonu. Při jeho vyvolání v relaci profileru výkonu se začne shromažďovat trasování zásobníku pro každé přidělení objektu .NET, k němuž dojde v cílové aplikaci. Tato data zásobníku se analyzují spolu s informacemi o typu a velikosti objektu za účelem zjištění podrobností o aktivitě paměti aplikace. V kódu tak můžete rychle určit zákonitosti přidělování a identifikovat anomálie. Kromě toho můžete na základě událostí uvolnění paměti snadno zjistit, které z objektů se shromáždily a uchovaly, a tím také rychle určit typy objektů, které ve využití paměti aplikace převládají.
- To ocení hlavně tvůrci rozhraní API, kterým tato novinka pomůže minimalizovat přidělení. U řady aplikací sice dojde k přetečení limitů vyrovnávací paměti, které jsou součástí shromažďování diagnostických dat, ale u malých testovacích aplikací provádějících klíčové scénáře rozhraní API funguje diagnostika poměrně dobře. V době, kdy je testovací aplikace spuštěná, je v profileru výkonu k dispozici spojnicový graf živých objektů (počet) i pruhový graf rozdílu objektů (% změn).
- Pokud chcete nástroj pro sledování přidělování objektů .NET použít, otevřete úvodní stránku profileru výkonu (Obrázek 4), vyberte cíl profilu (výchozí cíl je spouštěný projekt v řešení), v části Dostupné nástroje zaškrtněte Sledování přidělování objektů .NET a potom klikněte na Start.
Profilace výkonu (využití procesoru)
Tato verze obsahuje následující vylepšení nástroje Využití CPU v profileru výkonu (k dispozici prostřednictvím ALT-F2):
- Zobrazení stromu volání nyní ve výchozím nastavení zobrazuje asynchronní spouštění logickým zásobníkem volání. Toto chování můžete vypnout zrušením zaškrtnutí možnosti Spojit asynchronní kód v rozevírací nabídce Filtr hlavního zobrazení nástroje Využití CPU.
- Přidali jsme zobrazení modulů a funkcí, které zobrazuje informace o výkonu podle modulu (DLL) a funkce v rámci modulu. Zobrazení modulů a funkcí otevřete v místní nabídce dostupné po výběru funkce v hlavním zobrazení nástroje Využití CPU nebo v rozevírací nabídce Zobrazení v zobrazení stromu volání nebo v zobrazení volajícího a volaného.
- Do grafu využití procesoru v hlavním zobrazení nástroje Využití CPU jsme přidali označení instance. V době provádění funkce (například v zásobníku) můžete instance zobrazit dvojím kliknutím na funkci uvedenou v jakémkoli zobrazení nástroje Využití CPU.
Produktivita
Tato verze obsahuje následující vylepšení produktivity:
- V jazyce C# můžete provádět doplňková čištění kódu pomocí možnosti Formátovat dokument (Ctrl + K, D nebo Ctrl + E, D). Čištění nakonfigurujete kliknutím na Nástroje>Možnosti>Textový editor>C#>Styl kódu>Formátování>Obecné.
- Přidali jsme další refaktoringy a rychlé akce pomocí ctrl + . nebo Alt + Enter:
- Invertovat If umožňuje invertovat logiku v příkazech typu if-else. Tento refaktoring aktivujete umístěním kurzoru na klíčové slovo
if
. - Možnost Add parameter from method callsite (Přidat parametr z metody callsite) umožňuje přidat do metody parametr vložením argumentu do metody callsite a aktivací možnosti Rychlé akce a refaktoring.
- Možnost Odebrat nadbytečné závorky odebere závorky okolo binárních operátorů, které nejsou pro kompilaci zásadní. Toto pravidlo stylu můžete nakonfigurovat prostřednictvím editoru nástrojů>>Editoru textu>C#>Styl>kódu Obecné nebo .editorconfig:
dotnet_style_parentheses_in_arithmetic_binary_operators
dotnet_style_parentheses_in_relational_binary_operators
dotnet_style_parentheses_in_other_binary_operators
dotnet_style_parentheses_in_other_operators
- Použití ternárních podmíněných výrazů v přiřazeních a návratových příkazech lze také nakonfigurovat jako pravidlo stylu v nástrojích>Možnosti>... nebo prostřednictvím .editorconfig:
dotnet_style_prefer_conditional_expression_over_assignment
dotnet_style_prefer_conditional_expression_over_return
- Invertovat If umožňuje invertovat logiku v příkazech typu if-else. Tento refaktoring aktivujete umístěním kurzoru na klíčové slovo
- Do okna Přejít na vše jsme přidali nové příkazy a vylepšení:
- Možnost Go to Enclosing Block (Přejít na vnější blok) (Ctrl + Alt + šipka nahoru) umožňuje rychlou navigaci směrem nahoru na začátek vnějšího bloku kódu.
- Možnost Přejít na další/předchozí problém (Alt + PgUp/PgDn) umožňuje přeskočit na další, respektive předchozí chybu, podtržení vlnovkou nebo žárovku.
- Možnost Přejít na člen (Ctrl + T, M) se nyní ve výchozím nastavení váže na soubor. To můžete vrátit zpět na řešení přepnutím volby Rozsah na Aktuální dokument (Ctrl + Alt + C).
- Díky podpoře více kurzorů můžete nyní libovolně vytvářet body vložení a výběry na více místech v souboru. To vám umožní přidávat, upravovat a odstraňovat text na větším počtu míst najednou.
- Kurzory vložíte pomocí Ctrl + Alt + levé tlačítko myši.
- Výběr a kurzor přidáte na další umístění odpovídající aktuálnímu výběru pomocí Shift + Alt + Ins.
- Kompletní seznam akcí si zobrazíte kliknutím na Upravit > Více kurzorů.
- Přístup ke kontextové navigační nabídce je možný pomocí Alt + `.
- Konzistenci klávesových zkratek lze zajistit pomocí dvou nových profilů pro klávesnice: Visual Studio Code a ReSharper (Visual Studio). Tato schémata najdete v horní rozevírací nabídce v části Nástroje > Možnosti > Prostředí > Klávesnice.
Ladění
Tato verze obsahuje následující vylepšení ladění:
Pokud máte nainstalovaných více instancí sady Visual Studio 2017, můžete nyní vybrat, která z nich se má při ladění nasadit do rozšíření (obr. 5). Díky tomu můžete například pracovat v prodejním kanálu sady Visual Studio a současně mít v náhledovém kanálu spuštěné ladění.
Nově můžete připojit Snapshot Debugger přímo ze stránky se souhrnem publikování (Obrázek 6).
Nyní při ladění s minimálním výpisem s haldou podporujeme zobrazení spravovaných úloh prostřednictvím okna Úlohy.
Nástroje pro vývojáře Univerzální platforma Windows
Provedli jsme řadu důležitých vylepšení návrháře XAML u projektů určených pro univerzální platformu Windows s verzí cílové platformy Windows 10 Fall Creators Update (sestavení 16299) nebo novější. Mezi tato vylepšení patří:
- Kolekce nově můžete upravovat v Kontrole vlastností.
- Návrhář nyní umožňuje úpravy šablon a stylů včetně případů, kdy se definice těchto entit nacházejí v jiných dokumentech.
- Vlastnosti typu IconElement (například Icon v AppBarButton) mají nově v Kontrole vlastností vlastní editor, takže je jejich nastavení jednodušší.
- Návrhář, editor a možnost Upravit a pokračovat by už měly s x:DefaultBindMode fungovat správně.
- Prostředí ve Správci vizuálního stavu v nástroji Blend nyní podporuje AdaptiveTrigger.
F# 4.5 a F# Tools for Visual Studio
V této verzi jsme představili jazyk F# verze 4.5. To také odpovídá nové rodině 4.5.x FSharp.Core (základní knihovna F#). Specifikace pro každou z těchto změn si můžete přečíst v úložišti F# RFC. V této verzi je také mnoho vylepšení nástrojů jazyka F# pro Visual Studio.
F# 4.5
Tady jsou některé z hlavních bodů jazyka F# verze 4.5:
Podpora span't<>
Implementovali Span<'T>
jsme a související funkce, které umožňují efektivní spotřebu a produkci rozhraní API využívajících Memory
Span
ref
a -like konstruktorů, které jsou možné s jazykem F#. Mezi tyto funkce patří:
- Nový typ
voidptr
- Nové funkce
NativePtr.ofVoidPtr
aNativePtr.toVoidPtr
v FSharp.Core - Nové typy
inref<'T>
aoutref<'T>
, které představují parametry ByRef jen pro čtení, respektive jen pro zápis. V jazyce C# odpovídajíin ref
aout ref
. - Možnost vytvářet struktury
ByRefLike
(napříkladSpan
neboReadOnlySpan
) - Možnost vytvářet struktury
IsReadOnly
- Implicitní přístup přes ukazatel, pokud se z metod vrací
byref
ainref
- Možnost vytvářet členy rozšíření v
byref
/inref
/outref
Tato sada funkcí opravuje chybu v počátečním návrhu parametru byref
-return v jazyce F# 4.1, kde funkce, metody a vlastnosti vracející byref
's nebyly implicitně dereferencovat návratovou hodnotu. Tuto změnu jsme zavedli proto, aby funkce zpracovávala návraty s ref
stejným způsobem jako jazyk C#. Pokud anotace typu indikuje, že se právě používá implicitní přístup k návratům typu ref
přes ukazatel, zobrazí se chybová zpráva.
Kromě toho tato sada funkcí také opravuje chybu v kompilátoru jazyka F#, kde bylo možné "nahrazení zlé struktury"; Tj. volání metody ve struktuře jazyka F# by mohlo nahradit skutečnou strukturu, která byla volána jiným. Parametr this
ve struktuře se nyní považuje za inref<MyStruct>
a chybová zpráva vám navrhuje přidat proměnlivé pole, pokud si přejete strukturu upravit.
Další informace o konstrukcích typu span
a ref
se dozvíte v dokumentu RFC pro tuto sadu funkcí.
Utkání! ve výpočetních výrazech
F# 4.5 zavádí match!
nové klíčové slovo pro použití v rámci výpočetních výrazů, přispěl zcela John Wostenberg. Tento syntaktický cukr je ekvivalentem let!
a jeho výsledkem je match
. Další informace najdete v dokumentu RFC pro match!
.
Rozvolnění nutnosti přetypovat nahoru tam, kde výrazy sekvencí, seznamů a polí využívají yield
F# 4.5 nyní uvolní některé případy, kdy upcast při použití yield
bylo nutné převést podtyp na supertyp. Toto omezení již nebylo pro tyto výrazy nezbytné, protože jazyk F# 3.1 při použití yield
, takže to dělá věci konzistentnější s existujícím chováním. Další informace najdete v dokumentu RFC pro tuto funkci.
Povolení odsazení u závorek seznamů a polí
F# 4.5 teď uvolní pravidlo odsazení pro závorky seznamu a matice, které vyžadovaly odsazení jednoho oboru dopředu, když je na vlastním řádku. Tento předchozí požadavek byl vždy docela matoucí, zejména pro začátečníky do F#. Kromě toho se nevyžaduje pro výrazy sekvence jazyka F#. Výrazy polí a seznamů jsou tak stejně konzistentní jako výrazy pořadí. Další informace najdete v dokumentu RFC pro tuto funkci.
Případy výčtu generované jako veřejné
F# 4.5 nyní generuje případy výčtu jako veřejné za všech okolností, aby bylo v souladu s tím, jak jazyk C# generuje případy výčtu. To také usnadňuje nástrojům profilace analýzu protokolů z kódu F#, kde se hodnota místo názvu popisku vygenerovala. Další informace najdete v dokumentu RFC pro tuto funkci.
Vylepšení kompilátoru F#
Vylepšení kompilátoru jazyka F# kromě dříve zmíněných jazykových funkcí jsou v jazyce F# 4.5. Tady jsou některé z nich:
- Vylepšili jsme výkon kompilátoru odebráním až 2,2 % všech přidělení v kompilátoru jazyka F# (v různých scénářích).
- Opravili jsme chybu způsobující
AccessViolatioNException
při použitíyield!
s výčty založenými na strukturách. - Nyní je znovu možné dědit z
FSharpFunc
. - Koncová volání jsou ve výchozím nastavení zakázaná pro sestavení ladění jazyka F# pro .NET Core. Jsou povolené pro vydání, takže odpovídají desktopovým kompilátoru jazyka F#.
- Normalizace odkazů F# byla opravena, aby bylo možné řídit přechodné odkazy sestavení zapsané do výstupního souboru. V .NET Core tak můžete provádět ekvivalent přesměrování sestav.
- Opravili jsme chybu, která způsobovala ignorování chybové zpráv při pokusu o použití dynamického vyvolání u vložených funkcí. Tato zpráva se teď už rozšíří.
- Jazyk F# teď respektuje
WarningsNotAsErrors
příznak, který můžete nastavit v souborech projektu. - Isaac Abraham vylepšil chybovou zprávu, která se zobrazovaná v případě, že větve porovnání vzorů nevracely stejnou podmínku typu.
- Steffen Forkmann opravil problém způsobující vnitřní chybu při kompilaci implementace rozhraní bez implementace přetížení metody.
- Gauthier Segay odebral některá nepotřebná kopírování polí ve fázi lexikální analýzy kompilátoru.
- Neúplné shody vzorů v výčtech jazyka F# nyní vytvoří podrobné upozornění, které poskytuje příklad případu, který není pokryt, přispěl John Wostenberg.
- Nově se respektuje `#nowarn "2003". Touto aktualizací přispěl Matthias Diitrich.
- Steffen Forkmann opravil chybu, která způsobovala selhání metod rozšíření jazyka C#v překladu přetížení jazyka F#.
- Steffen Forkmann odstranil vnitřní chybu datové struktury QueueList.
- Na různých drobnějších optimalizacích a čištění kódu se podíleli Steffen Forkmann, Eugene Auduchinok a ncave.
Základní knihovna F# 4.5.x
Nyní jsou k dispozici následující doplňky k základní knihovně jazyka F#:
- Vykonali jsme velký kus práce na vylepšování trasování zásobníků u výpočetních výrazů
async { }
. Nově byste v trasování zásobníků měli vidět uživatelský kód a uživatelská čísla řádků. Další informace najdete v dokumentu RFC pro tuto funkci. - Byla přidána rozhraní API typu
FuncConvert.FromFunc
aFuncConvert.FromAction
přetížená typemSystem.Func
aSystem.Action
za účelem lepší vzájemné spolupráce s jazykem C#. Další informace najdete v dokumentu RFC pro tuto funkci. - K dispozici je nový typ
ValueOption
, první ze sady plánovaných funkcí určených pro lepší výkon aktivních vzorů. Další informace najdete v dokumentu RFC pro tuto funkci. TryGetValue
je nyní novým členem typu mapování jazyka F#. Další informace najdete v dokumentu RFC pro tuto funkci.- Odstranili jsme problém s vysokým využitím procesoru při prvním volání
MailboxProcessor.TryReceive
. - Při porovnávání pro
bool
se nyní využívá rychlé obecné srovnání. Autorem je Vasil Kirichenko. - Souhrnný text k
Array.allPairs
je přispěním Patricka McDonalda aktualizovaný a správný.
Vylepšení nástrojů jazyka F#
Tato verze obsahuje významná vylepšení nástrojů F#, jako jsou vylepšení výkonu a některé nové funkce editoru. Stejně jako vždy, s velkým počtem příspěvků od opensourcové komunity jazyka F#. Zde jsou ty nejdůležitější:
- Zlepšili jsme výkon IntelliSense pro všechny formy projektů založených na sadě .NET SDK včetně těch, které využívají cílení na více verzí.
- Ke komunitou iniciované snaze analyzovat a vylepšovat výkon funkce IntelliSense u velmi rozsáhlých souborů přispěli Vasil Kirichenko, Steffen Forkmann a Gauthier Segay. Funkce IntelliSense je u takových projektů (nad 10 tisíc řádků kódu) nyní asi dvakrát rychlejší.
- V projektech založených na sadě .NET SDK se už nezobrazuje upozornění na zastaralé FSharp.Core (bez ohledu na nainstalovaný balíček).
- Popis tlačítka zobrazující dokumentaci XML pro člena po
.
ve funkci IntelliSense se zobrazuje i po uplynutí deseti sekund. - Byla opravena chyba, kdy nešlo nastavit zarážky v argumentech konstruktoru objektů.
- Byla odstraněna chyba, kdy se přejmenovaný symbol duplikoval, pokud představoval obecný parametr.
- Šablony pro .NET Framework (klasické šablony F#) teď využívají FSharp.Core z balíčku NuGet, aby byly v souladu se šablonami sady .NET SDK F#.
- Automatické, transakční uzavírání hranatých závorek je teď k dispozici pro tyto páry závorek:
()
,[]
,{}
,[||]
a[<>]
. Na tomto jsme spolupracovali s Gibranem Rosou. - Teď můžete přejít k definici pomocí ctrl a kliknutí na symbol F#. Nastavení tohoto gesta platí i v okně Nástroje > Možnosti.
- Výkonné uživatelské rozhraní IntelliSense jsme upravili tak, aby u různých funkcí integrovaného vývojového prostředí (IDE) umožňovalo konfiguraci zastaralých informací o kontrole typů. Vysvětlení jednotlivých možností jsou teď k dispozici v popisech pro nastavení.
- Zvýraznění spárovaných závorek teď závorky zvýrazní správně. Dokončeno ve spolupráci s Vasilyem Kirichenkem.
- Definice „Přejít na“ teď přejde správně, pokud je typ definovaný rekurzivně. Pomocí přispěl Vasily Kirichenko.
- Vasily Kirichenko opravil chybu, při které se neotevřel automaticky importovaný obor názvů, když byl začátek souboru prázdný.
- Vasily Kirichenko opravil chybu, při které specifikátory
printf
obsahující tečky měly špatnou barvu. - Vasily Kirichenko opravil chybu, při které se všechna otevření považovala v rekurzivním modulu za nepoužívaná.
- Vasily Kirichenko značně zlepšil výkon analyzátoru nepoužívaných otevření.
- Automatické doplňování pro atributy teď navrhuje pouze možnosti, které ve skutečnosti atributy jsou. Pomocí přispěl Vasily Kirichenko.
- Popisy tlačítek nápovědy k podpisu se nyní generují pro statické parametry zprostředkovatele typu na webu volání konstruktoru. Pomocí přispěl Vasily Kirichenko.
- Vasily Kirichenko opravil chybu, při které typy hodnot používané jako jednotky měr měly stejnou barvu jako odkazové typy.
- Vasily Kirichenko opravil chybu, při které sémantické barevné zvýraznění mohlo při posouvání u některých souborů zmizet.
- Nyní existuje experimentální implementace funkce CodeLens. Pomocí přispěl Victor Peter Rouven Müller. Můžete ho zapnout v editoru možností > textového editoru > F# > Code Lens.
- Sebastian Urban opravil chybu, kdy služba kompilátoru jazyka F# nesprávně stanovila názvy modulů v dokumentaci XML.
- Eugene Auduchinok změnil kód, který používá
Dictionary
sContainsKey
a následnými volánímiItem
tak, aby používalTryGetValue
. - Při úpravě využívání jiného rozhraní API pro popisy tlačítek přispěl také Jakob Majoka.
Vylepšení infrastruktury, vytváření balíčků a Open Sourcu
V rámci infrastruktury, vytváření balíčků a přispívání v prostředí Open Sourcu jsme provedli následující vylepšení:
- Kompilátor jazyka F# distribuovaný se sadou Visual Studio se už nenainstaluje jako jediné umístění v sadě SDK kompilátoru jazyka F#. Nyní je zcela vedle sady Visual Studio, což znamená, že souběžné instalace sady Visual Studio budou mít skutečně souběžné nástroje a jazykové prostředí jazyka F#.
- Balíček FSharp.Core NuGet je nyní podepsaný.
- Protokolování Trasování událostí pro Windows bylo přidáno do nástrojů a kompilátoru jazyka F#.
- Velmi velké soubory
control.fs
/control.fsi
v FSharp.Core jsme rozdělili do souborůasync.fs
/async.fsi
,event.fs
/event.fsi
,eventmodule.fs
/eventmodule.fsi
,mailbox.fs
/mailbox.fsi
aobservable.fs
/observable.fsi
. - Přidali jsme verze našich artefaktů zátěžového testu projektové výkonnosti založených na sadě .NET SDK.
- Z našeho základu kódu jsme odebrali Newtonsoft.json, takže teď máte o jeden stažený balíček pro přispěvatele OSS méně.
- Nyní používáme nejnovější verze System.Collections.Immutable a System.Reflection.Metadata.
Vylepšení souladu a nástrojů jazyka C++
Tato verze obsahuje následující vylepšení souladu a sady nástrojů jazyka C++:
- Nový, experimentální preprocesor založený na tokenech, který je v souladu s 11 standardy (včetně preprocesorových funkcí C99), zapnete přepínačem /experimental:preprocessor. Ten je ovládaný makrem
_MSVC_TRADITIONAL
, které je definované číslem 1, když používá tradiční preprocesor, a číslem 0, když používá nový, experimentální preprocesor splňující standardy. - Příkazový řádek pro vývojáře v sadě Visual Studio umožňuje používat moduly Runtime Visual C++ se zmírněním dopadu útoků Spectre varianta 1 (
-vcvars_spectre_libs = spectre
). Další informace o zmírněních chyby zabezpečení Spectre najdete na týmovém blogu Visual C++. - Dva nové doplňky optimalizátoru SSA zaměřené na moderní generování kódu jazyka C++: odstranění nadbytečného úložiště a skládání nadbytečných větví.
- Optimalizovaný výkon vstupně-výstupních operací v linkeru mapovaných v paměti urychluje propojování.
Vývoj pro různé platformy jazyka C++
V této verzi jsme přidali a vylepšili následující vývoj pro různé platformy jazyka C++:
- Podle konvencí psaní kódu pro ClangFormat jsme v části Nástroje>Možnosti přidali šablonu Přidat>Nová položka pro generování souboru clang-format. Pokud je konvence sady Visual Studio vybraná, generovaný soubor se pokusí soubor vytvořit podle aktuální konfigurace formátování uživatele sady Visual Studio v části Nástroje > Možnosti.
- Soubor clang-format.exe jsme aktualizovali na verzi 6.0.0.
- Vytvořili jsme šablony zjednodušující přidávání konfigurací do souboru CppProperties.json.
- Přidali jsme šablony zjednodušující přidávání konfigurací do souboru CMakeSettings.json (Obrázek 7).
Produktivita jazyka C++
V rámci produktivity jazyka C++ jsme provedli následující vylepšení:
- Popisky Rychlé informace pro makra v jazyce C++ teď místo definice zobrazují, jak vypadají po rozbalení. To se hodí hlavně u komplexních maker, která odkazují na další makra, protože to vysvětlí, čím preprocesor nahradí identifikátor makra.
- Přidali jsme novou žárovku rychlé opravy, která jako nový nástroj modernizace kódu převede základní makra na constexpr.
- IntelliSense pro šablony vám poskytne více podrobností o argumentech šablony, abyste mohli IntelliSense v těle šablony plně využít (Obrázek 8).
- Pracujeme na aktualizaci našeho prostředí analýzy kódu. Nové, nedokončené funkce můžete nyní povolit v části Nástroje>Možnosti>Textový editor>C++>Experimentální>Analýza kódu. Analýza kódu může běžet na pozadí, když jsou soubory otevřené nebo uložené, a výsledky se zobrazí v seznamu chyb a jako zelené podtržení vlnovkou v editoru (Obrázek 9).
Vylepšení ladění jazyka C++
Provedli jsme následující vylepšení ladění:
- Funkce Pouze můj kód vám teď kromě sbalení volání v okně zásobníku volání umožňuje i krokovat kód ze systému nebo knihoven C++ třetích stran. Když je váš kód zkompilovaný pomocí /JMC a cesty k neuživatelským knihovnám jsou uvedené v souboru .natjmc, můžete toto chování ovládat u všech knihoven C++. Pokud systémová knihovna volá uživatelský kód, když do něj vkročíte, ladicí program přeskočí veškerý systémový kód a zastaví se na prvním řádku zpětného volání uživatelského kódu (Obrázek 10).
- Datové zarážky je teď možné nastavit uvnitř oken Kukátko, Rychlé kukátko, Automatické hodnoty a Místní hodnoty, takže když se hodnota uložená v paměti změní, můžete několika rychlými kliknutími vytvořit zarážku.
- Zdrojový odkaz vám umožní během kompilace vkládat informace o původním zdrojovém kódu spustitelného souboru nebo knihovny do PDB.
- Když program ukončí operaci, zůstane teď při ladění okno konzoly ve výchozím nastavení otevřené (podobně jako když program spustíte bez ladicího programu). Toto chování (aby se konzola zavírala automaticky) můžete přepnout zpět v části Nástroje > Možnosti > Ladění > Obecné.
Vylepšení JavaScriptu a TypeScriptu
TypeScript 3.0
Visual Studio 2017 verze 15.8 teď ve výchozím nastavení obsahuje TypeScript 3.0. Podrobné informace o této verzi najdete v článku s oznámením o vydání TypeScriptu verze 3.0.
Vylepšená podpora Vue.js
Vylepšili jsme podporu pro knihovnu Vue.js, zejména podporu pro soubory .vue označované také jako „součásti v jednom souboru“. Zlepšuje se tím úprava bloků skriptu uvnitř souborů .vue, včetně podpory pro bloky skriptů napsané v jazyce TypeScript prostřednictvím atributu lang="ts"
elementu skriptu. (Poznámka: Proces sestavení používající WebPack nebo podobný musí být použit k převodu souborů .vue na soubory HTML a JS potřebné za běhu. Další podrobnosti najdete na stránce s komponentami s jedním souborem.
Pokud je nainstalovaná úloha Node.js, budou teď v okně Nový projekt u cesty „JavaScript / Node.js“ nebo „TypeScript / Node.js“ šablony „Basic Vue.js Web Application“. Níže uvedený příklad zobrazuje úpravu kódu jazyka TypeScript uvnitř bloku skriptu v souboru .vue (Obrázek 11).
Vylepšení ESLintu
V této verzi jsme opět přidali podporu ESLintu. ESLint obsahuje následující vylepšení a rozšíření:
- Visual Studio teď bude analyzovat nejen kód uložených javascriptových souborů, ale i kód souborů, které právě upravujete.
- Výsledky můžete ohlásit nejen pro otevřené soubory, ale pro všechny javascriptové soubory v projektu. Pokud u některých částí projektu nechcete kód analyzovat, můžete teď použít soubor .eslintignore, kterým určíte adresáře a soubory, které se mají ignorovat.
- ESLint jsme aktualizovali, aby používal ve výchozím nastavení ESLint 4, ale pokud má váš projekt místní instalaci ESLintu, použije tuto verzi.
ESLint můžete v celém Visual Studiu zakázat zrušením zaškrtnutí u nastavení Povolit ESLint v části **Nástroje > Možnosti > Textový editor > Javascript/Typescript > Analyzování kódu ** (Obrázek 12).
Vylepšení otevřené složky pro Node.js
Když máte nainstalovanou „úlohu Node.js“, existuje při práci s JavaScriptem a TypeScriptem ve scénáři otevřené složky spousta vylepšení. Například správa balíčků NPM, sestavování TypeScriptu, spouštění a ladění pomocí Node.exe, spouštění skriptů NPM a spouštění testů jednotek.
Další informace najdete v článku o vývoji kódu jazyka JavaScript a TypeScript v sadě Visual Studio bez řešení nebo projektů.
Vylepšení výkonu editoru
V předchozích verzích všechny operace služby jazyka JavaScript a TypeScript obsluhoval jediný proces Node.js. To mohlo způsobit zpomalení editoru, kdyby se příkazy, které ovlivňují zadávání uživatelem (jako je automatické formátování za novým řádkem), odeslaly ve stejnou chvíli, ve které už běžela jiná potenciálně dlouhotrvající operace (jako je kontrola chyb v kódu). Abychom tomu předešli, používá se nyní pro operace nejvíce ovlivňující zadávání samostatný proces. Tento proces je podstatně méně náročný na systémové prostředky než existující proces služby jazyka. Pokud však chcete tento nový proces zakázat, tak v části Nástroje > Možnosti > Textový editor > JavaScript/TypeScript> Služba jazyka zaškrtněte pole Zakázat vyhrazený proces syntaxe.
Visual Studio Web Tools
Správce knihovny je nová funkce zahrnutá v sadě Visual Studio 2017. Pomůže vám ve vašich projektech spravovat knihovny na straně klienta.
Nástroje pro kontejnery
Přidali jsme nové prostředí kontejneru Dockeru pro jednotlivé webové projekty ASP.NET Core. Doplňuje už existující nástroj pro kontejnery založený na Docker Compose a přináší jednodušší způsob vytváření, ladění a sestavování kontejnerů Dockeru přímo v sadě Visual Studio.
Podporu Dockeru můžete přidat při vytváření projektu (Obrázek 13):
Podporu Dockeru také můžete povolit pro existující projekt prostřednictvím místní nabídky projektu v Průzkumníku řešení (Obrázek 14). Jakmile to uděláte, Visual Studio vytvoří v projektu soubor Dockerfile. Máte možnost si vybrat mezi Windows a Linuxem.
Visual Studio přidá Dockeru také profil spuštění ladicího programu (Obrázek 15), abyste mohli projekt v rámci kontejneru ladit za běhu.
Pokud máte řešení s více projekty Dockeru, spustí se ve výchozím nastavení pouze jeden kontejner, když se rozhodnete řešení spustit. Pokud chcete spustit více kontejnerů současně, můžete u všech projektů, které chcete spustit, kliknout pravým tlačítkem na řešení v Průzkumníku řešení a vybrat Nastavit projekty po spuštění, pak Více projektů po spuštění a nakonec rozevírací seznam Akce nastavit na Spustit nebo Spustit bez ladění.
Jakmile kontejnerizovaný projekt poběží požadovaným způsobem a vy budete připravení nahrát image do Azure Container Registry nebo DockerHubu, můžete kliknout pravým tlačítkem na projekt a vybrat Sestavit Image Dockeru, abyste ji sestavili místně.
Do webového projektu ASP.NET Core můžete také prostřednictvím nové možnosti Container Orchestrator Support (Podpora orchestrátoru kontejnerů) přidat existující funkci založenou na Docker Compose (Obrázek 16). Klikněte v Průzkumníku řešení pravým tlačítkem na webový projekt ASP.NET Core, vyberte Přidat > Container Orchestrator Support a pak z rozevírací nabídky vyberte Docker Compose.
Vylepšení publikování
Tato verze obsahuje následující vylepšení publikování:
- Při publikování kontejneru Dockeru do registru kontejneru teď můžete přizpůsobit značku obrázku. Můžete buď značku přidat ručně (výchozí hodnota je „latest“ (nejnovější)), nebo použít automaticky vygenerovanou značku, abyste měli jistotu, že jsou jednotlivé značky jedinečné.
- Při vytváření nové služby Azure App Service můžete také nakonfigurovat službu Application Insights, aby automaticky shromažďovala telemetrická data. Pokud zvolíte oblast, která už službu Application Insights má, bude ve výchozím nastavení povolená. Pokud zvolíte oblast, která ještě Application Insights nemá, můžete pro váš prostředek služby Application Insights zadat ručně jinou oblast z rozevíracího seznamu.
- Při publikování projektů Azure Functions je můžete publikovat pomocí nové funkce Run-From-Zip.
Nástroje sady Visual Studio pro Xamarin
Tato verze obsahuje následující aktualizace pro Xamarin:
- Přidali jsme podporu pro Xcode 9.4.
- Když vytvoříte nový projekt Xamarin.Forms, výchozí možnost sdílení kódu je teď .NET Standard. Možnost sdíleného projektu je stále k dispozici.
- Přidali jsme vylepšení přírůstkového sestavení pro Android. Xamarin.Android používá soubory vygenerované do adresáře s dočasným výstupem. S jejich pomocí může sestavovat přírůstkově, což je rychlejší než úplné sestavování. Když jste dříve změnili cílovou architekturu projektu, znamenalo to zneplatnění souborů a při dalším spuštění se muselo provést úplné sestavení. V této verzi zachováváme soubory ve složkách podle jednotlivých rozhraní, abyste mohli přepínat mezi cílovými architekturami a stále využívat výhod přírůstkového sestavování. Vyčištění projektu umožňuje uvolnit místo na disku využité zachovanými soubory.
- Do sady Visual Studio 2017 jsme přidali minimální podporu pro vazební projekty Xamarin.Mac. To sadě Visual Studio umožňuje načítat a rozpoznávat vazební projekty Xamarin.Mac jako podporované. Vazební projekty Xamarin.Mac můžete i sestavovat. Proces sestavení se ale provádí místně bez nativního řetězce nástrojů Macu, takže vygenerovaná sestavení IL se nedají použít ke spuštění a ladění v aplikacích.
Podpora emulátoru Androidu technologie Hyper-V
Tato verze přidává podporu pro Google Android Emulator, který je kompatibilní s technologií Hyper-V, když se spustí na Windows 10 April 2018 Update (obrázek 17). To umožňuje používat Google Android Emulator spolu s ostatními technologiemi založenými na Hyper-V, včetně virtuálních počítačů Hyper-V, nástrojů Docker, emulátoru HoloLens a dalších. Vývojáři mobilních aplikací, kteří používají Hyper-V, teď mají přístup k rychlému emulátoru Androidu, který vždy podporuje nejnovější rozhraní API Androidu, ihned po instalaci spolupracuje se službami Google Play a podporuje všechny funkce Android Emulatoru, včetně fotoaparátu, zjišťování geografické polohy a Rychlého spouštění.
Xamarin.Android Designer
Významně jsme vylepšili prostředí návrháře pro Xamarin.Android. Nejdůležitější novinky:
- Přibylo rozdělené zobrazení editoru, které umožňuje vytvářet, upravovat a zobrazovat náhledy rozložení najednou (Obrázek 18).
- Vylepšené prostředí IntelliSense a spolehlivost vlastních ovládacích prvků
- Podpora ukázkových dat pro systémem poskytnuté hodnoty
Xamarin.Forms Previewer
Když se používá Xamarin.Forms ve verzi 3.1.0.583944 nebo vyšší, Xamarin.Forms Previewer teď podporuje sadu nástrojů. V sadě nástrojů se budou zobrazovat ovládací prvky Xamarin.Forms, aby je ti, kteří práci se sadou nástrojů ještě neznají, snadněji našli. Přidat ovládací prvek na stránku můžete i tak, že ho přetáhnete do editoru kódu XAML. Xamarin.Forms Previewer je teď součástí editoru XAML. Můžete ho otevřít a zavřít pomocí ikony pro rozbalení na okraji podokna editoru.
Python
Vývojářům v Pythonu tato verze přináší následující vylepšení:
- Python IntelliSense teď používá definice typeshed, pomocí kterých poskytuje propracovanější výsledky pro knihovny, kde se automatické dokončování nedá vyvodit statickou analýzou.
- Experimentální ladicí program, který se poprvé oznámil ve verzích Preview 15.7, je teď pro Python výchozí ladicí stroj. Nabízí totiž rychlejší a spolehlivější ladění pythonového kódu.
- Přidali jsme podporu Pythonu 3.7, včetně oprav, které umožní používat funkce připojení ladění, profilace a smíšeného režimu (s různými jazyky).
- Další informace o výše uvedených funkcích najdete na našem blogovém příspěvku o Pythonu v sadě Visual Studio 2017 verze 15.8.
Migrace místního nastavení funkce Azure Functions
Dialog Spravovat nastavení aplikace, který najdete na stránce se souhrnem publikování, teď zobrazuje hodnoty ze souboru local.settings.json a umožňuje migrovat hodnoty do vzdálené aplikace Azure Functions hostované v Azure.
Připojené služby
Pro řešení s projekty Azure Functions teď můžete konfigurovat průběžné doručování funkcí Azure Functions přímo ze sady Visual Studio 2017.
Vylepšení Průzkumníka testů
Když se v Průzkumníkovi testů vybere jedno ze seskupení v hierarchickém zobrazení, v podokně souhrnu stavu testu (podokno Průzkumníka testů dole) se teď zobrazuje více informací. Podokno teď ukazuje, kolik testů neproběhlo úspěšně, kolik jich úspěšných naopak bylo nebo kolik se jich pro dané seskupení nespustilo.
Nové funkce rozšíření
Protokol jazyka serveru
Visual Studio teď nativně podporuje protokol LSP (Language Server Protocol). Autoři rozšíření můžou vytvářet rozšíření, která komunikují s existujícími jazykovými servery. Díky tomu můžou do sady Visual Studio přidat další podporu jazyků. Uživatelé těchto rozšíření si je můžou nainstalovat a začít v sadě Visual Studio používat svůj oblíbený jazyk, třeba Rust.
Šablona AsyncPackage
Autoři rozšíření teď můžou používat šablony položek, pomocí kterých vytvoří balíčky AsyncPackage. Ty jim pomůžou optimalizovat výkon rozšíření. Získejte další informace o balíčcích AsyncPackage.
Balíčky rozšíření
Pomocí balíčku rozšíření můžete snadno sdílet svou oblíbenou sadu rozšíření nebo vytvořit novou instalaci sady Visual Studio se všemi svými rozšířeními. Balíčky rozšíření umožňují vytvořit seznam rozšíření a zabalit je do jednoho rozšíření, pomocí kterého se pak všechna rozšíření rychle nainstalují najednou.
Publikování rozšíření pomocí příkazového řádku
Svá rozšíření můžete publikovat do Visual Studio Marketplace pomocí příkazového řádku.
.NET Core SDK 2.1.400
Visual Studio 2017 verze 15.8 obsahuje .NET Core SDK 2.1.400. Mezi nové funkce sady SDK patří:
- Přidaly se šablony NUnit.
- Přidala se podpora podepsaných globálních nástrojů.
- Vylepšil se text nápovědy, který je teď jasnější.
V .NET Core CLI se uzavřelo 32 problémů.
V sadě .NET Core SDK se uzavřelo 20 problémů.
Správa zdrojového kódu
U projektů .NET Core budou soubory, které se do projektu přidaly přes Průzkumníka souborů, zobrazovat v Průzkumníkovi řešení správné ikony sledování Gitu a TFS (Team Foundation Server) bez toho, aby se muselo znovu načíst řešení.
Rozšíření testovacího adaptéru .NET
Adaptér testu .NET obsahuje následující změnu způsobující chybu a vyřazení:
- Změna způsobující chybu: Všechny projekty testů musí v souboru csproj obsahovat odkaz na NuGet adaptéru testu .NET. Pokud ne, zobrazí se tento výstup testu v projektu, pokud se po sestavení spustí zjišťování rozšířením testovacího adaptéru nebo pokud se uživatel pokusí spustit vybrané testy:
- Testovací projekt {<Úplná cesta testovacího projektu>} neodkazuje na žádný adaptér NuGet .NET. Pro tento projekt možná nebude fungovat zjišťování a spouštění testů. Doporučuje se odkazovat na adaptéry testů v každém projektu testů v řešení.
- Testovací systémy .NET vydávají své adaptéry v balíčcích NuGet a opouštějí rozšíření sady Visual Studio. Podpora adaptérů testů .NET doručených prostřednictvím rozšíření je zastaralá, ale stále se podporuje. To znamená, že v nabídce Nástroje> Možnosti >Test jsou k dispozici dvě nové možnosti.
- První možnost umožňuje sadě Visual Studio používat jen adaptéry testů, které najde ve složce sestavení testu (naplněné odkazem NuGet na adaptér testu) nebo podle obsahu souboru runsettings.
- Druhá možnost umožňuje sadě Visual Studio vrátit se ke starému chování a pro projekty, které nemají odkaz NuGet na adaptér testu, vyhledávat rozšíření adaptéru testu. Obě možnosti jsou standardně zaškrtnuté, proto se v této verzi nemění žádné výchozí chování.
- Poznámka: Na adaptéry testů technologie jiné než .NET tato změna nemá vliv.
podpora tajných kódů rozhraní .NET Framework ASP.NET
Projekty ASP.NET .NET Framework, které cílí na .NET Framework 4.7.1 a vyšší, teď můžou otevírat a ukládat tajné kódy, které nechcete mít ve zdrojovém kódu, do souboru usersecrets.xml. Stačí kliknout pravým tlačítkem na projekt a vybrat Spravovat tajné kódy uživatelů.
Vylepšení výkonu rozhraní .NET Framework ASP.NET
Pokud je balíček .NET Compiler, na který se odkazuje, v projektu ASP.NET .NET Framework zastaralý, Visual Studio vás při otevření projektu vyzve k upgradu tohoto balíčku, aby se zlepšil výkon při sestavování.
.NET Framework 4.7.2
Visual Studio 2017 verze 15.8 teď nabízí nástroje pro vývoj .NET Framework 4.7.2 pro všechny podporované platformy se zahrnutým modulem runtime 4.7.2. .NET Framework 4.7.2 nabízí několik nových funkcí a vylepšení, jakož i četné opravy v oblasti spolehlivosti, stability, zabezpečení a výkonu.
Další podrobnosti o rozhraní .NET Framework 4.7.2 najdete v těchto článcích:
- Blog k .NET Framework 4.7.2 RTM
- Zpráva k vydání verze rozhraní .NET Framework 4.7.2
- Známé problémy v rozhraní .NET Framework 4.7.2
- Kompatibilita aplikací v rozhraní .NET Framework 4.7.2
- Změny rozhraní API
Zpoždění načtení balíčku
Visual Studio teď zpožďuje načítání asynchronních balíčků, které jsou nakonfigurované na automatické načítání, dokud se integrované vývojové prostředí (IDE) Visual Studio zcela nespustí a nenačte se řešení. Tato změna nemá vliv na synchronně automaticky načtené balíčky. Uživatelé můžou stav sledovat v Centru stavu úloh v dolním levém rohu stavového řádku. Autoři rozšíření, kteří vytvářejí asynchronní balíčky, by měli otestovat svá rozšíření. Další informace najdete v článku o aktualizaci chování automatického načítání pro rozšíření, která vylepšuje rychlost odezvy kritických scénářů.
---
Oznámení o informačním zpravodaji zabezpečení pro Visual Studio 2017 verze 15.8
Servisní vydání sady Visual Studio 2017 verze 15.8.7 – vydáno 10. října 2018
CVE-2018-8292 – ohrožení zabezpečení spočívající ve zpřístupnění informací v .NET Core
V .NET Core bylo zjištěno ohrožení zabezpečení spočívající v obejití funkce zabezpečení, kdy by ověřovací údaje HTTP mohly být nechtěně zpřístupněny v odchozí žádosti, která se setká s přesměrováním HTTP. Útočník, který by tuto chybu zabezpečení úspěšně zneužil, by mohl získané informace využít k dalšímu narušení webové aplikace. Tato aktualizace zabezpečení řeší toto ohrožení zabezpečení tím, že opravuje způsob, jakým aplikace .NET Core zpracovávají přesměrování HTTP.
Servisní vydání sady Visual Studio 2017 verze 15.8.4 – vydáno 11. září 2018
CVE-2018-8409 – Ohrožení zabezpečení rozhraní .NET Core v podobě útoku DoS
Ohrožení zabezpečení v podobě odmítnutí služby (DoS) existuje v rozhraní .NET Core 2.1, když System.IO.Pipelines nesprávně zpracovává žádosti. Útočník, který tuto chybu zabezpečení úspěšně zneužije, by mohl na aplikaci, která využívá System.IO.Pipelines, provést útok DoS. Tuto chybu může zneužít vzdáleně, bez ověřování. Vzdálený neověřený útočník by mohl zneužít tuto chybu zabezpečení tak, že do aplikace zadá speciálně upravené žádosti.
CVE-2018-8409 – Ohrožení zabezpečení rozhraní ASP.NET Core v podobě útoku DoS
Ohrožení zabezpečení v podobě odmítnutí služby (DoS) existuje v rozhraní ASP.NET Core 2.1, které nesprávně zpracovává webové žádosti. Útočník, který tuto chybu zabezpečení úspěšně zneužije, by mohl provést útok DoS na webovou aplikaci ASP.NET Core. Tuto chybu může zneužít vzdáleně, bez ověřování. Vzdálený neověřený útočník by mohl zneužít tuto chybu zabezpečení tak, že do aplikace ASP.NET Core zadá speciálně upravené webové žádosti.
Visual Studio 2017 verze 15.8 – vydáno 14. srpna 2018
CVE-2018-0952 Ohrožení zabezpečení z důvodu možnosti zvýšení oprávnění standardního kolektoru diagnostického centra
Ve službě Visual Studio existuje ohrožení zabezpečení z důvodu možnosti zvýšení oprávnění, které může při zapisování souborů umožnit uživateli bez role správce získat systémová oprávnění. Útočník, který by toho využil, by mohl zapisovat soubory jako systém a přitom by měl pouze přístup na úrovni uživatele. Tato aktualizace zabezpečení tento problém řeší zosobněním aktuálního uživatele pro ověření přístupu k umístění souboru.
Visual Studio 2017 verze 15.8 Preview 4 – vydáno 10. července 2018
CVE-2018-8172 Ohrožení zabezpečení z důvodu možnosti vzdáleného spuštění kódu v sadě Visual Studio
Ohrožení zabezpečení z důvodu vzdáleného spuštění kódu, které může vést ke zneužití počítače uživatele, protože útočníkovi umožňuje otevřít speciálně vytvořený projekt nebo soubor prostředků. Tato aktualizace zabezpečení řeší toto ohrožení zabezpečení tím, že opraví způsob, jakým Visual Studio kontroluje zdrojový kód souboru.
CVE-2018-8260 Ohrožení zabezpečení z důvodu možnosti vzdáleného spuštění kódu v rozhraní .NET Framework
V softwaru .NET existuje ohrožení zabezpečení z důvodu možnosti vzdáleného spuštění kódu, které může vést ke zneužití počítače uživatele, protože umožňuje útočníkům spustit libovolný kód v kontextu aktuálního uživatele. Tato aktualizace zabezpečení řeší toto ohrožení zabezpečení tím, že opraví způsob, jakým .NET kontroluje zdrojový kód souboru.
CVE-2018-8232 Ohrožení zabezpečení z důvodu možných neoprávněných úprav v jazyce MASM (Microsoft Macro Assembler) v rozhraní .NET
Ohrožení zabezpečení z důvodu možných neoprávněných úprav kvůli nesprávnému ověřování kódu v jazyce MASM. Tato aktualizace zabezpečení řeší toto ohrožení zabezpečení tím, že zajišťuje správné ověření logiky kódu v jazyce MASM.
CVE-2018-8171 Ohrožení zabezpečení z důvodu obejití funkce zabezpečení v ASP.NET Core
K ohrožení zabezpečení z důvodu obejití funkce zabezpečení v ASP.NET Core dojde, když se neověří počet nesprávných pokusů o přihlášení. Toto ohrožení zabezpečení může vést k tomu, že se útočník bude pokoušet o neomezený počet pokusů o ověření. Tato aktualizace řeší toto ohrožení zabezpečení tím, že ověřuje počet nesprávných pokusů o přihlášení.
Visual Studio 2017 verze 15.8 Preview 3 – vydáno 26. června 2018
CVE-2018-11235 Poradce Microsoft Security Advisory pro ohrožení zabezpečení Gitu
Opravili jsme chybu zabezpečení v Gitu, na kterou nás upozornila komunita uživatelů Gitu. To mohlo způsobit svévolné provádění kódu, pokud uživatel naklonoval škodlivé úložiště.
Visual Studio 2017 verze 15.8 Preview 1 – vydáno 8. května 2018
CVE-2018-0765 Poradce Microsoft Security Advisory pro ohrožení zabezpečení technologie .NET Core útokem DoS (Denial of Service)
- Microsoft vydává tohoto poradce Security Advisory, aby poskytoval informace o ohrožení zabezpečení v technologiích .NET Core a .NET Native verze 2.0. Tento poradce navíc obsahuje pokyny, jak mají vývojáři aktualizovat aplikace, aby toto ohrožení zabezpečení odstranili.
- Microsoft má informace o ohrožení zabezpečení útokem DoS (Denial of Service), ke kterému dochází, když architektury .NET Framework a .NET Core nesprávně zpracovávají dokumenty XML. Útočník, který tuto chybu zabezpečení úspěšně zneužije, může na aplikaci architektury .NET Framework, .NET Core nebo .NET Native provést útok DoS.
- Tato aktualizace řeší tuto chybu zabezpečení opravou toho, jak architektury .NET Framework, .NET Core a .NET Native řeší zpracování dokumentů XML.
- Pokud vaše aplikace používá architekturu ASP.NET Core, vývojářům se často doporučuje, aby aktualizovali na ASP.NET Core 2.0.8.
Visual Studio 2017 verze 15.8.1
Vydáno 17. srpna 2018
Hlavní chyby opravené ve verzi 15.8.1
Toto jsou problémy vyřešené ve verzi 15.8.1:
- Opravili jsme problém, který se projevoval tak, že se po zavření okna prohlížeče při ladění webového projektu neočekávaně zavřelo Visual Studio.
Visual Studio 2017 verze 15.8.2
Vydáno 28. srpna 2018
Hlavní chyby opravené ve verzi 15.8.2
Problémy hlášené zákazníky, které jsou vyřešené ve verzi 15.8.2:
- V místní nabídce chybí položka pro publikování jednoho souboru.
- Síťové operace Git nefungují: Nelze spustit git-askpass.exe.
- Při načítání balíčku editoru prostředků aplikace Visual C++ dochází k chybě.
- Při zobrazování náhledu transformace dochází k chybě.
- Nelze zadat pravou závorku.
- Při nasazování projektu Service Fabric po provedení aktualizace 15.8.0 se odkaz na objekt nenastaví na instanci objektu.
- Zobrazuje se chyba instalace s informacemi o tom, že uvedený formát cesty není podporován.
- V úloze ExpandPriContent došlo k chybě. Neplatné znaky v cestě.
- Zobrazuje se chybová zpráva instalačního programu s informacemi o tom, že nelze vytvořit instanci typu System.Collections.Genertic.Iset'1[Signer].
- Při nasazování Service Fabric ve verzi 15.8.0 dochází k chybě.
- Balíček aplikace pro Windows Store nelze vytvořit.
- Nesprávné generování kódu pro prostředky se silnými typy
- Klávesová zkratka pro rozložení klávesnice pro italštinu
- Chyba IntelliSense #9999
- Pokud se teď během práce s projektem Unity přepíše více souborů projektu, Visual Studio Tools for Unity automaticky dané řešení znovu načte.
- Pokud aplikace Office blokují instalaci sady Visual Studio a způsobují chybu 1303, zobrazí se teď zákazníkovi dialogové okno s výzvou, aby tyto aplikace zavřel.
Visual Studio 2017 verze 15.8.3
vydáno 6. září 2018
Hlavní chyby opravené ve verzi 15.8.3
Problémy hlášené zákazníky, které jsou vyřešené ve verzi 15.8.3:
- Visual Studio 2017 verze 15.8.2 obsahovalo předběžný build sady .NET Core SDK 2.1.401, který není kompatibilní se sadou Visual Studio. V sadě Visual Studio 2017 verze 15.8.3 už je tento problém vyřešen.
- Selhání vytváření testovacího případu VSCppUnit
- Python IntelliSense nefunguje s Pythonem 2.7.
- Návrhář XAML způsobuje neočekávané ukončení sady Visual Studio.
Visual Studio 2017 verze 15.8.4
vydáno 11. září 2018
Hlavní chyby opravené ve verzi 15.8.4
Problémy hlášené zákazníky, které jsou vyřešené ve verzi 15.8.4:
- Funkce Constexpr s explicitními parametry (void) způsobuje ve verzi MSVC 15.8.0 chybu.
- TypeScriptLspCodeActionProvider zjistil chybu a byl zakázán.
- Balíček Sdílené webové součásti (Shared Web Components) se nenačetl správně.
- Úpravy šablon stylů CSS s povoleným Browser Linkem můžou způsobit chybu sady Visual Studio.
- Při nasazování Service Fabricu ve verzi 15.8.0 dochází k chybě.
- Nesprávná chyba pro ukazatel constexpr na členy se sadou VS2017 15.8.
- Constexpr nepodporuje __declspec(dllimport) v sadě VS2017 15.8.
- Rozdíl v ukazateli členské funkce mezi režimy C++14 a C++17 v aktualizaci C++ VS 2017 Update 8 vede k chybě.
- TestExplorer zamyká uživatelské rozhraní v nejnovější verzi.
- [WebKit] „To je už definovaný symbol“ pro definici člena statické šablony (regrese).
- Vnitřní chyba kompilátoru v sadě VS 15.8.0.
- Vnitřní chyba kompilátoru ve funkci constexpr.
- Okno Průzkumníka testů zůstává v expresní verzi prázdné.
- Visual Studio 2017 se neotevře na počítači s podporou standardu FIPS.
- VS2017 15.8 – vnitřní chyba kompilátoru msc1.cpp, řádek 1518 při vyhodnocování jednoduché funkce constexpr.
- Závažná chyba C1001 po aktualizaci na VS 15.8.0.
- Migrace na VS2017 15.8: Vnitřní chyba kompilátoru při použití funkcí constexpr jako parametrů šablony.
- Vnitřní chyba kompilátoru při kompilaci funkce šablony s výrazem constexpr ve VC ++ 15.8.0.
- Kód vygenerovaný kompilátorem VC 15.8.1 vedl k chybě.
Oznámení o informačním zpravodaji zabezpečení
- CVE-2018-8409 – Ohrožení zabezpečení rozhraní .NET Core v podobě útoku DoS
- CVE-2018-8409 – Ohrožení zabezpečení rozhraní ASP.NET Core v podobě útoku DoS
Visual Studio 2017 verze 15.8.5
Vydáno 20. září 2018
Shrnutí novinek ve verzi 15.8.5
- Nástroje Visual Studio Tools pro Xamarin teď podporují Xcode 10.
Hlavní chyby opravené ve verzi 15.8.5
Problémy hlášené zákazníky, které jsou vyřešené ve verzi 15.8.5:
- Popis tlačítka ladicího programu se nerozbaluje v relaci ladění Xamarin.iOS.
- Ladicí program mi neumožňuje opustit bod provádění (Android).
- Po aktualizaci 15.8.1 se při ladění nezobrazuje datový tip.
- Datový tip ladicího programu nejde rozbalit [Editor].
- Výjimka: MSB0001: Vnitřní chyba MSBuild: Už byla zaregistrována pro dobu sestavování.
- Nesprávná cesta k prostředku v manifestu pro ClickOnce po upgradu na VS 15.8.1.
- Chyba manifestu ClickOnce ve verzi 15.8.
- Pro publikování ClickOnce chybí některé reference.
- ClickOnce: Soubor jazyka se kopíroval do nesprávného umístění.
- Ve složce pro publikování ClickOnce chybí reference.
- Kompilování výsledků projektů, které nejsou projekty F# ve stylu .NET SDK, má za následek vnitřní chybu MSBuild, pokud není paralelismus nastavený na 1.
- F# se v sadě Visual Studio negeneruje přes NGEN.
- F# nasadí binární soubory FSharp.Core 4.5.0.0 v umístění 4.4.3.0.
Podrobnosti o novinkách ve verzi 15.8.5
Nástroje sady Visual Studio pro Xamarin
Nástroje Visual Studio Tools pro Xamarin nyní podporují Xcode 10, což vám umožňuje sestavování a ladění aplikací pro iOS 12, tvOS 12 a watchOS 5. Podívejte se na to, jak se připravit na iOS 12, a na náš úvod do iOSu 12, abyste získali podrobné informace o nových funkcích, které jsou k dispozici.
Visual Studio 2017 verze 15.8.6
Vydáno 2. října 2018
Shrnutí novinek ve verzi 15.8.6
- Je k dispozici nejnovější sada Windows 10 SDK.
Hlavní chyby opravené ve verzi 15.8.6
Problémy hlášené zákazníky, které jsou vyřešené ve verzi 15.8.6:
- Balíčky NuGet pro Intellisense jsou porušené.
- Visual Studio se ukončí po otevření sln.
- Editor XML App.Config zamrzá i ve verzi 15.8.4.
Podrobnosti o novinkách ve verzi 15.8.6
Nejnovější sada Windows 10 SDK pro vývojáře aplikací pro Univerzální platformu Windows
Nejnovější sada Windows 10 SDK (build 17763) je teď k dispozici jako volitelná komponenta sady funkcí pro vývoj pro Univerzální platformu Windows. Tuto sadu SDK můžete do sady funkcí přidat zaškrtnutím políčka Windows 10 SDK (10.0.17763.0).
Visual Studio 2017 verze 15.8.7
Vydáno 10. října 2018
Novinky ve verzi 15.8.7
Azure DevOps
Služba Visual Studio Team Services se teď jmenuje Azure DevOps! Tento nový název uvidíte v Team Exploreru a v odkazech v sadě Visual Studio.
Oznámení o informačním zpravodaji zabezpečení
CVE-2018-8292 – ohrožení zabezpečení spočívající ve zpřístupnění informací v .NET Core
Visual Studio 2017 verze 15.8.8
Vydáno 24. října 2018
Hlavní chyby opravené ve verzi 15.8.8
Toto jsou problémy oznámené zákazníky a vyřešené ve verzi 15.8.8:
- /DEBUG:FASTLINK: Nejsou dostupné žádné ladicí informace pro typy STL zahrnuté prostřednictvím předkompilované hlavičky (PCH).
- Zjištěn chybný codegen v kompilátoru 15.8 RTW.
- Poškození haldy v rámci uvolňování zásobníku při vkládání funkce
- Linker využívá pro konkrétní testovací případ 6 GB paměti.
Visual Studio 2017 verze 15.8.9
Vydáno 2. listopadu 2018
Hlavní chyby opravené ve verzi 15.8.9
Problémy hlášené zákazníky, které jsou vyřešené ve verzi 15.8.9:
- Přidána podpora pro Xcode 10.1 v sadě Visual Studio Tools for Xamarin
- Šablona Xamarin.Forms aktualizována na verzi 3.3.0
- Aktualizace 15.8.6 narušuje projekty instalačního programu.
- Vnitřní chyba kompilátoru ve VS15.8 msc1.cpp, řádek 1518
- Projekty instalačního programu 0.8.8 pro Microsoft Visual Studio 2017 a VS 15.8.6
- SFINAE nedokáže detekovat odpovídající přetíženou funkci v sadě Visual Studio ve verzi Preview 3 15.9.0.
- Chybové ukončení Návrháře XAML při ukončení sady Visual Studio
Známé problémy
Podívejte se na všechny dosud známé problémy a možná alternativní řešení v sadě Visual Studio 2017 verze 15.8.
Názory a návrhy
Rádi uslyšíme váš názor! O problémech nás můžete informovat prostřednictvím možnosti Nahlásit problém v pravém horním rohu instalačního programu nebo v samotném integrovaném vývojovém prostředí sady Visual Studio. Ikona se nachází v pravém horním rohu. Na stránce komunity vývojářů sady Visual Studio můžete posílat návrhy k produktu a sledovat svoje nahlášené problémy. Můžete tu pokládat otázky, hledat odpovědi a navrhovat nové funkce. Naše podpora na živém chatu vám navíc poskytne bezplatnou pomoc s instalací.
Blogy
Využijte přehledů a doporučení, které najdete na webu Blogy o vývojářských nástrojích, abyste si udržovali přehled o všech nových vydaných verzích a měli k dispozici podrobné příspěvky popisující širokou škálu funkcí.
Historie zpráv k vydání verzí pro Visual Studio 2017
Další informace týkající se minulých verzí sady Visual Studio 2017 najdete na stránce Historie zpráv k vydání verzí pro Visual Studio 2017.