Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Releaseopmerkingen voor
Opmerking
De ondersteunde versie van Visual Studio 2017 is versie 15.9.
Belangrijk
Dit is niet de nieuwste versie van Visual Studio. Als u de nieuwste versie wilt downloaden, gaat u naar https://visualstudio.microsoft.com/downloads/ de releaseopmerkingen van Visual Studio 2022 en bekijkt u deze.
Visual Studio-blog
De Visual Studio-blog is de officiële bron van product insight van het Visual Studio Engineering-team. In de volgende berichten vindt u uitgebreide informatie over versie 15.8 van Visual Studio 2017:
- Visual Studio 2017 versie 15.8 -- Lees het laatste blogbericht!
Visual Studio 2017 versie 15.8 Releases
- 2 november 2018 -- Visual Studio 2017 versie 15.8.9 Servicing Update
- 24 oktober 2018 -- Visual Studio 2017 versie 15.8.8 Servicing Update
- 10 oktober 2018 - Visual Studio 2017 versie 15.8.7 Onderhoudsupdate
- 02 oktober 2018 - Visual Studio 2017 versie 15.8.6 Onderhoudsupdate
- 20 september 2018 -- Visual Studio 2017 versie 15.8.5 Onderhoudsupdate
- 11 september 2018 -- Visual Studio 2017 versie 15.8.4 Onderhoudsupdate
- 6 september 2018 -- Visual Studio 2017 versie 15.8.3 Onderhoudsupdate
- 28 augustus 2018 -- Visual Studio 2017 versie 15.8.2 Onderhoudsupdate
- 17 augustus 2018 -- Visual Studio 2017 versie 15.8.1 Onderhoudsupdate
- 14 augustus 2018 -- Visual Studio 2017 versie 15.8 Minor Release
Belangrijk
Kennisgevingen van beveiligingsadvies voor Visual Studio 2017 versie 15.8
- 10 oktober 2018 - Visual Studio 2017 versie 15.8.7 Onderhoudsupdate
- 11 september 2018 -- Visual Studio 2017 versie 15.8.4 Onderhoudsupdate
- 14 augustus 2018 -- Visual Studio 2017 versie 15.8
- 10 juli 2018 -- Visual Studio 2017 versie 15.8 Preview 4
- 26 juni 2018 -- Visual Studio 2017 versie 15.8 Preview 3
- 08 mei 2018 -- Visual Studio 2017 versie 15.8 Preview 1
Samenvatting van belangrijke nieuwe functies in 15.8
- Het installatieprogramma biedt nu de mogelijkheid om alle bestanden te downloaden voordat de installatie wordt gestart.
- We hebben de prestaties verbeterd tijdens het verwijderen/opnieuw laden van projecten en het overschakelen van vertakkingen.
- Laadtijden van oplossingen kunnen worden verbeterd door het automatisch terugzetten van documenten uit te schakelen.
- We hebben aanzienlijke prestatieverbeteringen aangebracht tijdens het uitvoeren van grote oplossingen met meerdere testprojecten.
- Visual Basic biedt u nu een aanzienlijke prestatieverbetering.
- Prestatieprofilering biedt nu de mogelijkheid om gegevensverzameling te onderbreken/hervatten en er is een nieuw hulpprogramma voor het bijhouden van .NET-objecten toegevoegd.
- We hebben verbeteringen aangebracht in het hulpprogramma CPU-gebruik voor prestatieprofilering.
- We hebben nieuwe productiviteitsfuncties toegevoegd, zoals het opschonen van code, terugdraaien als herstructureren, ga naar Blokkeren insluiten, Ondersteuning voor Multi-Caret en nieuwe toetsenbordprofielen.
- U kunt uw doelexemplaren kiezen bij het opsporen van fouten in extensies.
- Start het foutopsporingsprogramma voor momentopnamen rechtstreeks vanaf de overzichtspagina publiceren.
-
We hebben F# 4.5 geïntroduceerd, een nieuwe taalversie die volledig wordt ondersteund
Span<'T>en belangrijke verbeteringen bevat voor stacktraceringen voor asynchrone code. - We hebben de prestaties verbeterd en nieuwe functies toegevoegd in F# -hulpprogramma's, zoals Ctrl+Klikken om naar definitie te gaan.
- Verbeteringen in de C++-toolset omvatten verbeteringen in de SSA-optimalisatie en -linker.
- C++ platformoverschrijdende ontwikkeltoevoegingen omvatten ClangFormat-updates en configuratiesjablonen in CMake en Open Folder voor MinGW, Linux en Windows.
- Wijzigingen in de productiviteit van C++ zijn onder andere Sjabloon IntelliSense, knopinfo voor snelle informatie op macro's, converteren naar gloeilampen van constexpr, in-editor code-golven en meer.
- C++ foutopsporingsverbeteringen omvatten Just My Code-updates en nieuwe onderbrekingspunten voor gegevens.
- Er zijn talloze verbeteringen en functies voor JavaScript en TypeScript .
- U kunt nu bibliotheken aan de clientzijde beheren in uw webprojecten.
- Er is een nieuwe Docker-containerervaring voor één project toegevoegd voor ASP.NET Core-webprojecten.
- U kunt nu de tag voor een Docker-installatiekopieën aanpassen met de publicatieverbeteringen die in deze release zijn aangebracht.
- Xamarin-verbeteringen omvatten ondersteuning voor Xcode 9.4 en slimmere incrementele Android-builds.
- U kunt de Android-emulator van Google naast Hyper-V gebruiken in Windows 10 april 2018 Update.
- We hebben een split-view-editor toegevoegd voor de Xamarin.Android-ontwerper.
- Xamarin.Forms Previewer biedt nu ondersteuning voor werksets en we hebben deze verplaatst naar een editor voor gesplitste weergaven.
- U kunt nu foutopsporing in meerdere talen gebruiken met Python 3.7.0rc1.
- Met de instellingen van de lokale Azure-functie migreren naar Azure worden nu nieuwe waarden weergegeven.
- Met toegevoegde ondersteuning voor Azure Functions hebt u nu een nieuwe doelhost in het dialoogvenster Continue levering configureren naar Azure.
- Verbetering van het samenvattingsvenster van Test Explorer biedt nu meer informatieve teststatus.
- .NET-testadapterextensies: wijziging die fouten veroorzaken en afschaffen.
- We hebben systeemeigen ondersteuning toegevoegd voor het Language Server Protocol.
- U hebt nu geheimenondersteuning voor ASP.NET .NET Framework-projecten.
- Visual Studio helpt u nu bij het upgraden van ASP.NET .NET Framework-apps om de buildprestaties te verbeteren.
- Visual Studio biedt nu ontwikkelhulpprogramma's voor .NET Framework 4.7.2 voor ondersteunde platforms met runtime 4.7.2.
- Asynchrone pakketten voor automatisch laden worden uitgesteld totdat het opstarten en laden van de oplossing is voltooid.
- De Build Tools Visual Studio 2017 biedt nu ondersteuning voor Workflow en bevat de VSSDK.
- De Git- en TFS-status worden nu correct bijgewerkt voor wijzigingen in externe bestanden in .NET Core-projecten.
- .NET Core SDK 2.1.400 is inbegrepen.
Belangrijkste problemen opgelost in 15.8
Dit zijn de door de klant gerapporteerde problemen die in 15.8 zijn opgelost:
- SSDT is niet aanwezig in Visual Studio Build Tools 2017.
Anaconda kan niet worden verwijderd tijdens de upgrade (fout 87).> - Upgrade naar 15.7 genereert een fout: PackageId:Anaconda3.Exe.x64; PackageAction:Uninstall; ReturnCode:87;.
- Visual Studio-update genereert UWP BuildError bij MakePri 0x80073b0f en 0xdef00532 fouten in mijn oplossing.
- VS 2017 heeft problemen met de ASP.NET Core-exportsjabloonfunctie.
- Test Explorer (SpecFlow-tests): gaat naar het functieklassebestand en niet naar het functiebestand.
- Projectsjabloon die is geëxporteerd uit een C++-project bevat alleen een vcxproj- en vcxproj.filters, geen bron of headers.
- Ongeldig codegen op x64.
- Klik met de rechtermuisknop op een contextmenu in een oplossingsmap en doet niets in Enterprise 15.8 Preview 2.
- VS2017 onthoudt de schermpositie en -grootte niet voor gebruik op 3 beeldschermen.
- UTF8-no-BOM zorgt ervoor dat het diff-venster foutieve coderingswaarschuwing weergeeft.
- Als u dubbelklikt op een woord, wordt alleen het begin van het woord geselecteerd, niet het hele woord.
- VS2015 en VS2017 maken een lege map Voor foutopsporing in het pad dat is gedefinieerd door $(SolutionDir) ondanks zowel $(OutDir) als $(IntDir) met behulp van volledig verschillende instellingen.
- Als u een op MFC-dialoogvenster gebaseerd project maakt in de Japanse omgeving met VS2017, veroorzaakt het bewerken van het dialoogvenster fouten in de build.
- Download Voortgangstekstweergave in visual Studio Installer.
- Klik met de rechtermuisknop op uitvoerbaar project in Solution Explorer -> Foutopsporing:> met het starten van een nieuw exemplaar wordt een willekeurig project uit de oplossing gekozen om te beginnen.
- DeVENV-opdrachtregelbuild mislukt met: deze bewerking kan alleen plaatsvinden in de UI-thread.
- Hiermee worden bestandstypen gevonden en vervangen.
- Foutberichten zijn onleesbaar in de Package Manager-console vanwege tekstkleur en achtergrondkleur.
- Visual Studio Community 2017 15.4.1 Webpublicing preview mislukt met niet geautoriseerd.
- Open testresultaten in VS 2017 voor XAML-builds.
Bekijk alle door de klant gerapporteerde problemen die zijn opgelost in Visual Studio 2017 versie 15.8.
Details van wat er nieuw is in 15.8
Pictogram
Visual Studio 2017 versie 15.8.0
uitgebracht op 14 augustus 2018
Nieuwe functies in 15.8
Install
U hebt nu de mogelijkheid om alle installatiebestanden te downloaden voordat u de installatie start.
- Als u deze nieuwe optie wilt gebruiken, selecteert u de optie Alles downloaden en vervolgens installeren in het installatieprogramma (afbeelding 1). We raden deze optie aan als u een tragere internetverbinding hebt.
- De standaardoptie blijft 'Installeren tijdens downloaden', die parallel wordt gedownload en geïnstalleerd.
Performance
Deze release bevat de volgende prestatieverbeteringen:
- Vertakkingswisselingen voor C#-, VB- en C++-projecten zijn veel sneller voor grote oplossingen, omdat het opnieuw laden van oplossingen niet meer nodig is.
- We hebben de tijd verkort om een kleine set C# en VB-projecten te verwijderen en opnieuw te laden in grote oplossingen van minuten tot enkele seconden.
- We hebben een optie toegevoegd om het opnieuw openen van documenten uit te schakelen die in de vorige sessie zijn geopend, omdat het opnieuw openen van bepaalde typen bestanden of ontwerpers de belasting van de oplossing kan vertragen.
- Schakel deze optie in extra > opties > projecten >> algemeen in.
Testprestaties
We hebben de prestaties aanzienlijk verbeterd bij het uitvoeren van enkele tests in een grote oplossing met meerdere testprojecten. In onze labs heeft een oplossing met meer dan 10.000 MSTests één test uitgevoerd tot 82% sneller!
Prestatieverbetering van Visual Basic
Visual Basic biedt nu een aanzienlijke prestatieverbetering bij het gebruik van het patroon CInt(Fix(number)) om te converteren van niet-geheel getaltypen naar gehele getallen.
Prestatieprofilering
Deze release bevat de volgende prestatieprofileringsverbeteringen:
We hebben de mogelijkheid toegevoegd om profilering in een onderbroken status te starten:
Het hulpprogramma CPU-gebruik in de Performance Profiler (ALT-F2) kan nu worden gestart in een onderbroken status (afbeelding 2). Dit kan handig zijn tijdens het wachten op een scenario dat het cpu-gebruiksonderzoek waard is. Als het verzamelen van CPU-gebruik tijdens het opstarten is uitgeschakeld, verzamelt de Performance Profiler geen stackgegevens van het CPU-gebruik totdat deze specifiek is ingeschakeld. Dit resulteert in een kleinere hoeveelheid gegevens die moet worden verzameld en geanalyseerd, waardoor uw prestatieonderzoeken efficiënter worden.
Als u een sessie wilt starten waarbij de verzameling CPU-gebruiksvoorbeelden is uitgeschakeld, klikt u op het tandwielpictogram naast HET CPU-gebruik op de startpagina van Performance Profiler. Schakel op de eigenschappenpagina CPU-gebruik het selectievakje CPU-profilering inschakelen (sampling) uit en klik op OK om de instellingen op te slaan.
(Afbeelding 2) Instellingen voor het CPU-gebruiksprogramma Zodra u de doeltoepassing start (klik op Start op de startpagina van Performance Profiler), ziet u de grafiek cpu-gebruik (afbeelding 3) waarmee u CPU-profilering kunt beheren. Als u het verzamelen van stackgegevens van het CPU-gebruik wilt inschakelen, selecteert u CPU-profilering in het midden van de weergave inschakelen of klikt u op CPU-profiel net onder de grafiek cpu-gebruik. U kunt op CPU-profiel opnemen klikken om het verzamelen van voorbeeldgegevens zo vaak mogelijk in of uit te schakelen als u wilt. De grafiekkleur van het CPU-gebruik verandert om aan te geven of de voorbeeldverzameling op dat moment is ingeschakeld/uitgeschakeld.
(Afbeelding 3) Grafiek cpu-gebruiksgebruik
We hebben een hulpprogramma voor het bijhouden van .NET-objecten toegevoegd:
- Het hulpprogramma voor het bijhouden van .NET-objecten voegt de familie van hulpprogramma's toe die beschikbaar zijn via de Performance Profiler. Als u dit hulpprogramma aanroept voor een prestatieprofielsessie, wordt de verzameling van een stacktracering gestart voor elke .NET-objecttoewijzing die plaatsvindt in de doeltoepassing. Deze stackgegevens worden samen met informatie over het objecttype en de grootte geanalyseerd om details van de geheugenactiviteit van uw toepassing weer te geven. U kunt snel de toewijzingspatronen in uw code bepalen en afwijkingen identificeren. Daarnaast kunt u voor GC-gebeurtenissen (Garbagecollection) eenvoudig bepalen welke objecten zijn verzameld en bewaard en snel objecttypen identificeren die het geheugengebruik van de toepassing overheerst.
- Dit is vooral handig voor API-schrijvers om toewijzingen te minimaliseren. Veel toepassingen overschrijden de bufferlimieten die betrokken zijn bij het verzamelen van diagnostische gegevens, maar kleine testtoepassingen die de belangrijkste scenario's van een API uitoefenen, kunnen behoorlijk goed worden diagnosticeren. Terwijl uw testtoepassing wordt uitgevoerd, geeft de Performance Profiler een lijndiagram weer van liveobjecten (aantal), evenals een staafdiagram van Object Delta (% wijziging).
- Als u het hulpprogramma voor het bijhouden van .NET-objecten wilt gebruiken, geeft u de startpagina van performance profiler (afbeelding 4) weer, selecteert u een doel om te profileren (het standaarddoel is het opstartproject in de oplossing), controleert u .NET Objecttoewijzing bijhouden onder Beschikbare hulpprogramma's en klikt u vervolgens op Start.
(Afbeelding 4) Startpagina van Performance Profiler
Prestatieprofilering (CPU-gebruik)
Deze release bevat de volgende verbeteringen in het hulpprogramma CPU-gebruik van de Performance Profiler (beschikbaar via ALT-F2):
- In de weergave Oproepstructuur wordt nu standaard asynchrone uitvoering per logische aanroepstack weergegeven. U kunt dit gedrag uitschakelen door de optie Stitch Async Code uit te schakelen in de vervolgkeuzelijst Filter van de hoofdweergave CPU-gebruik.
- We hebben een modules/functions-weergave toegevoegd waarmee prestatiegegevens per module (dll) en functie in een module worden weergegeven. U kunt de weergave Modules/Functies weergeven in het contextmenu dat beschikbaar is wanneer u een functie selecteert in de hoofdweergave CPU-gebruik, of in de vervolgkeuzelijst Beeld in de weergave Oproepstructuur of Aanroeper/Oproepende weergave.
- Exemplaarindicatie is toegevoegd aan de grafiek CPU-gebruik in de hoofdweergave van het hulpprogramma CPU-gebruik. U kunt de exemplaren bekijken wanneer een functie wordt uitgevoerd (bijvoorbeeld op de stack) door te dubbelklikken op een functie die wordt vermeld in een van de weergaven cpu-gebruik.
Productiviteit
Deze release bevat de volgende productiviteitsverbeteringen:
- U kunt extra codeopschoning uitvoeren met Document opmaken (Ctrl + K, D of Ctrl + E, D) voor C#-ontwikkeling. Configureer opschonen door naar Extra>>Teksteditor>C#>Code Style>Format>General te gaan.
- We hebben meer herstructureringen en snelle acties toegevoegd met Ctrl + . of Alt + Enter:
-
Invert If stelt u in staat uw logica om te keren in if-else-instructies. Plaats de cursor in het
iftrefwoord om deze herstructurering te activeren. - Met parameter toevoegen vanuit methodeoproepite kunt u een parameter toevoegen aan een methode door een argument toe te voegen aan een methodeaanroepende methode en snelle acties en herstructureringen te activeren.
-
Verwijder overbodige haakjes verwijdert haakjes rond binaire operators die niet essentieel zijn voor compilatie. U kunt deze stijlregel configureren via Extra Opties>>Teksteditor>C#>Codestijl>Algemeen of .editorconfig:
dotnet_style_parentheses_in_arithmetic_binary_operatorsdotnet_style_parentheses_in_relational_binary_operatorsdotnet_style_parentheses_in_other_binary_operatorsdotnet_style_parentheses_in_other_operators
-
Gebruik ternaire voorwaarden in toewijzingen en retourinstructies kan ook worden geconfigureerd als een stijlregel inExtra-opties>>... of via .editorconfig:
dotnet_style_prefer_conditional_expression_over_assignmentdotnet_style_prefer_conditional_expression_over_return
-
Invert If stelt u in staat uw logica om te keren in if-else-instructies. Plaats de cursor in het
- We hebben nieuwe opdrachten en verbeteringen toegevoegd aan het venster Ga naar alles :
- Ga naar Enclosing Block (Ctrl + Alt + UpArrow) zodat u snel naar het begin van het insluitcodeblok kunt navigeren.
- Ga naar Volgende/Vorige probleem (Alt + PgUp/PgDn) zodat u naar het volgende/vorige probleem kunt gaan (fout, golvende, gloeilamp).
- Ga naar Lid (Ctrl+ T, M) is nu standaard ingesteld op het bestand. U kunt de standaardinstelling weer wijzigen in de oplossing door het bereik in te schakelen op huidig document (Ctrl + Alt + C).
- U kunt nu invoegpunten en selecties maken op meerdere, willekeurige locaties in een bestand met ondersteuning voor meerdere carets. Hiermee kunt u tekst op meerdere plaatsen tegelijk toevoegen, bewerken of verwijderen.
- Voeg carets in met Ctrl + Alt + LeftMouseClick.
- Voeg een selectie toe en zorg op de volgende locatie die overeenkomt met de huidige selectie met Shift + Alt + Ins.
- Zie Meerdere carets bewerken > voor een volledige lijst met acties.
- Open een contextueel navigatiemenu met Alt + '.
- Houd uw toetsbindingen consistent met twee nieuwe toetsenbordprofielen: Visual Studio Code en ReSharper (Visual Studio). U vindt deze schema's onder Extra > Opties > Omgeving > toetsenbord en de bovenste vervolgkeuzelijst.
Fouten opsporen
Deze release bevat de volgende verbeteringen voor foutopsporing:
Wanneer u meer dan één exemplaar van Visual Studio 2017 hebt geïnstalleerd, kunt u nu selecteren op welk exemplaar uw extensie moet worden geïmplementeerd wanneer er fouten worden opgespoord (afbeelding 5). Op die manier kunt u bijvoorbeeld ontwikkelen in het Visual Studio-releasekanaal tijdens foutopsporing in het preview-kanaal.
(Afbeelding 5) Foutopsporingsinstantie selecteren U kunt nu het foutopsporingsprogramma voor momentopnamen rechtstreeks toevoegen vanaf de pagina Samenvatting publiceren (afbeelding 6).
(Afbeelding 6) Snapshot Debugger bijvoegen vanuit de publicatiesamenvatting We ondersteunen nu het weergeven van beheerde taken via het venster Taken tijdens het opsporen van fouten in minidumps met heap.
Hulpprogramma's voor universeel Windows-platformontwikkelaars
We hebben veel belangrijke verbeteringen aangebracht in de XAML-ontwerpfunctie voor projecten die gericht zijn op het Universal Windows-platform met een doelplatformversie van de Windows 10 Fall Creators Update (build 16299) of hoger. Deze verbeteringen zijn:
- U kunt nu verzamelingen bewerken in eigenschapcontrole.
- Met de ontwerpfunctie kunnen nu sjablonen en stijlen worden bewerkt, ook wanneer de definities voor deze entiteiten worden gedefinieerd in andere documenten.
- Eigenschappen van het type IconElement (zoals Pictogram in een AppBarButton) hebben nu een aangepaste editor in de Eigenschappencontrole, waardoor deze eigenschappen gemakkelijker kunnen worden ingesteld.
- De ontwerper, editor en Bewerken en Doorgaan moeten nu allemaal correct werken met x:DefaultBindMode.
- De Visual State Manager-ervaring in Blend ondersteunt nu AdaptiveTrigger.
F# 4.5 en F#-hulpprogramma's voor Visual Studio
We hebben de F#-taal versie 4.5 geïntroduceerd met deze release. Dit komt ook overeen met de nieuwe 4.5.x-familie van FSharp.Core (de F#-kernbibliotheek). U kunt de specificaties voor elk van deze wijzigingen lezen in de F# RFC-opslagplaats. Er zijn ook veel verbeteringen in F#-hulpprogramma's voor Visual Studio met deze release.
F# 4.5
Hier volgen enkele van de hoogtepunten met de F#-taalversie 4.5:
Ondersteuning voor Span'T<>
We hebben functies geïmplementeerd Span<'T> en gerelateerd, zodat effectief verbruik en productie van API's met behulp Spanvan , Memoryen ref-like constructies mogelijk zijn met F#. De functies hiervoor zijn onder andere:
- Nieuw
voidptrtype. - Nieuwe
NativePtr.ofVoidPtrfuncties enNativePtr.toVoidPtrfuncties in FSharp.Core. - Nieuwe typen
inref<'T>enoutref<'T>, die respectievelijk alleen-lezen byrefs en alleen-schrijven perrefs zijn. Dit komt overeen metin refenout refin C#. - De mogelijkheid om structs te produceren
ByRefLike(zoalsSpanenReadOnlySpan). - De mogelijkheid om structs te produceren
IsReadOnly. - Impliciete deductie van
byref- eninref-retourneert van methoden. - De mogelijkheid om extensieleden te produceren op
byref/inref/outref.
Met deze functieset wordt een fout opgelost in het oorspronkelijke ontwerp van byref-returns in F# 4.1, waarbij functies, methoden en eigenschappen die worden geretourneerd byref, niet impliciet de retourwaarde deductie van de geretourneerde waarde hebben. We brengen deze wijziging aan om de functie in overeenstemming te brengen met de manier waarop C# -returns refverwerkt. Er wordt een foutbericht gebruikt wanneer een typeaantekening aangeeft dat een impliciete deductie van een ref- return nu wordt gebruikt.
Daarnaast lost deze functieset ook een bug op in de F#-compiler waar "Evil struct replacement" mogelijk was; Het aanroepen van een methode op een F#-struct kan de werkelijke struct die is aangeroepen, vervangen door een andere. De this parameter voor een struct wordt nu beschouwd als een inref<MyStruct>, met een fout die aangeeft dat u een veranderlijk veld toevoegt als u de struct wilt wijzigen.
Meer informatie over span en ref-like constructies vindt u in de RFC voor deze functieset.
Lucifer! in berekeningsexpressies
F# 4.5 introduceert match!, een nieuw trefwoord voor gebruik binnen berekeningsexpressies, dat volledig is bijgedragen door JohnWo. Deze syntactische suiker is gelijk aan een let! gevolgd door een match op het resultaat. Meer informatie vindt u in de RFC voor match!.
De noodzaak om upcast te maken met yield in volgorde, lijst en matrixexpressies
F# 4.5 versoepelen nu enkele gevallen waarin een upcast tijdens het gebruik yield vereist was om een subtype te converteren naar een supertype. Deze beperking was al niet nodig voor deze expressies sinds F# 3.1 wanneer deze niet werd gebruikt yield, dus dit maakt dingen consistenter met bestaand gedrag. Meer informatie vindt u in de RFC voor deze functie.
Inspringing toestaan op lijst- en matrixhaken
F# 4.5 versoepelen nu de inspringingsregel voor lijst- en matrixhaken waarvoor ze één bereik vooruit moesten laten inspringen wanneer ze op hun eigen regel staan. Deze vorige vereiste is altijd nogal verwarrend geweest, vooral voor beginners tot F#. Daarnaast is dit niet vereist voor F#-reeksexpressies. Dit brengt nu matrix- en lijstexpressies naar dezelfde consistente status als reeksexpressies. Meer informatie vindt u in de RFC voor deze functie.
Opsommingsaanvragen die als openbaar worden verzonden
F# 4.5 verzendt nu opsommingscases als openbaar onder alle omstandigheden, om af te stemmen op de wijze waarop C# opsommingscases verzendt. Dit maakt het ook eenvoudiger voor profileringshulpprogramma's om logboeken uit F#-code te analyseren, waarbij de waarde in plaats van de labelnaam is verzonden. Meer informatie vindt u in de RFC voor deze functie.
Verbeteringen in F#-compiler
Verbeteringen in de F#-compiler zijn naast de eerder genoemde taalfuncties beschikbaar in F# 4.5. Deze omvatten:
- We hebben de prestaties van de compiler verbeterd door maximaal 2.2% van alle toewijzingen in de F#-compiler (onder verschillende scenario's) te verwijderen.
- We hebben een bug opgelost die resulteert in een
AccessViolatioNExceptiongebruik metyield!op struct gebaseerde enumerables. - Het is nu mogelijk om opnieuw over te nemen van
FSharpFunc. - Tail-aanroepen zijn standaard uitgeschakeld voor foutopsporingsversies van F# voor .NET Core. Ze zijn ingeschakeld voor release, zodat deze overeenkomen met de F#-compiler van het bureaublad.
- F#-verwijzingsnormalisatie is opgelost, zodat u transitieve assemblyverwijzingen kunt beheren die naar een uitvoerbestand zijn geschreven. Hiermee kunt u het equivalent van assembly-omleiding op .NET Core uitvoeren.
- Er is een fout opgelost waarbij het foutbericht dat werd gebruikt bij het gebruik van dynamische aanroep op inlinefuncties werd genegeerd. Het foutbericht wordt nu doorgegeven.
- F# respecteert nu de
WarningsNotAsErrorsvlag die u kunt instellen in projectbestanden. - Wanneer vertakkingen van een patroonovereenkomst niet dezelfde foutmeldingstypevoorwaarde retourneren, is deze bijgewerkt om gebruiksvriendelijker te zijn door Isaac Abraham.
- Een interne foutfout bij een compiling interface-implementatie die geen overbelaste methode-implementatie mist, is opgelost door Steffen Forkmann.
- Sommige onnodige matrixkopie in de lexingfase van de compiler is verwijderd door Gauthier Segay.
- Onvolledige patroonovereenkomsten op F#-opsommingen produceren nu een gedetailleerde waarschuwing die een voorbeeld geeft van een case die niet wordt gedekt, bijgedragen door John Woseration.
- "#nowarn "2003" wordt nu gerespecteerd, bijgedragen door Azure Diitrich.
- Een fout waarbij het gebruik van C#-uitbreidingsmethoden kan mislukken in de F#-overbelastingsresolutie is opgelost door Steffen Forkmann.
- Er is een interne fout in de gegevensstructuur QueueList opgelost door Steffen Forkmann.
- Verschillende kleinere optimalisaties en inspanningen voor het opschonen van code zijn bijgedragen door Steffen Forkmann, Auduchink en ncave.
F# Core Library 4.5.x
De volgende toevoegingen aan de F# Core-bibliotheek zijn nu beschikbaar:
- Er is veel werk verricht om stacktraceringen voor
async { }rekenexpressies te verbeteren. U moet nu gebruikerscode en gebruikersregelnummers in stacktraceringen kunnen zien. Meer informatie vindt u in de RFC voor deze functie. -
FuncConvert.FromFuncenFuncConvert.FromActionAPI's die typenSystem.FuncenSystem.Actionoverbelastingen, om te helpen bij interoperation met C#. Meer informatie vindt u in de RFC voor deze functie. -
ValueOptionis een nieuw type dat beschikbaar is. Dit is de eerste in een reeks toekomstige functies die uiteindelijk gericht zijn op betere prestaties voor actieve patronen. Meer informatie vindt u in de RFC voor deze functie. -
TryGetValueis nu een nieuw lid van het type F#-kaart. Meer informatie vindt u in de RFC voor deze functie. - We hebben hoog CPU-gebruik opgelost bij de eerste aanroep van
MailboxProcessor.TryReceive. - Vergelijking voor
boolnu maakt gebruik van snelle generieke vergelijking, bijgedragen door Vasily Kirichenko. - De samenvattingstekst is
Array.allPairsbijgewerkt om correct te zijn, bijgedragen door Patrick McDonald
Verbeteringen in F#-hulpprogramma's
Belangrijke verbeteringen in de F#-hulpprogramma's, zoals prestatieverbeteringen en enkele nieuwe editorfuncties, zijn opgenomen in deze release. Zoals altijd, met een groot aantal bijdragen van de opensource-community van F#. Dit zijn de hoogtepunten:
- We hebben de prestaties van IntelliSense verbeterd voor .NET SDK-projecten van alle formulieren, inclusief projecten die meerdere targeting gebruiken.
- Een communitygestuurde inspanning voor het analyseren en verbeteren van IntelliSense-prestaties voor zeer grote bestanden is bijgedragen door Vasily Kirichenko, Steffen Forkmann en Gauthier Segay. IntelliSense in zeer grote bestanden (10.000 regels code) is nu ongeveer twee keer zo snel.
- De waarschuwing voor een verouderde FSharp.Core (ondanks dat het pakket wordt geïnstalleerd) is niet meer aanwezig in .NET SDK-projecten.
- De beschrijvingsknopinfo die XML-documentatie weergeeft voor een lid na
.in IntelliSense, treedt na 10 seconden geen time-out meer op. - Er is een fout opgelost waarbij u geen onderbrekingspunten in objectconstructorargumenten kon instellen.
- Een fout waarbij een hernoemd symbool wordt gedupliceerd wanneer het een algemene parameter is, is opgelost.
- Sjablonen voor .NET Framework (klassieke F#-sjablonen) verbruiken nu FSharp.Core vanuit een NuGet-pakket om te worden afgestemd op .NET SDK F#-sjablonen.
- Automatische voltooiing van transactionele accolades is nu beschikbaar voor
()paren ,[],{}en[||][<>]accolades. We hebben dit gedaan in samenwerking met Gibran Rosa. - U kunt nu naar de definitie gaan met Ctrl + klikken op een F#-symbool. De instellingen voor dit gebaar worden ook gerespecteerd in het venster Extra-opties>.
- De intelliSense-prestatiegebruikersinterface is gewijzigd om configuratie van verouderde typecontrolegegevens voor verschillende IDE-functies toe te staan. Uitleg voor elke optie is nu aanwezig in knopinfo voor de instellingen.
- Accolade match markeren nu correct markeert accolades, voltooid in samenwerking met Vasily Kirichenko.
- Ga naar de definitie navigeert nu correct wanneer een type recursief wordt gedefinieerd, bijgedragen door Vasily Kirichenko.
- Een fout waarbij een automatisch geïmporteerde naamruimte niet werd geopend toen het begin van een bestand leeg was, is opgelost door Vasily Kirichenko.
- Een bug waarbij
printfaanduidingen die puntjes bevatten verkeerd zijn verkleurd, is opgelost door Vasily Kirichenko. - Een fout waarbij alle geopenden als ongebruikt in een recursieve module werden beschouwd, is opgelost door Vasily Kirichenko.
- De prestaties van de Unused Opens Analyzer zijn aanzienlijk verbeterd door Vasily Kirichenko.
- Automatisch aanvullen voor kenmerken suggereert nu alleen opties die eigenlijk kenmerken zijn, bijgedragen door Vasily Kirichenko.
- Knopinfo voor handtekeninghulp wordt nu gegenereerd voor statische parameters van typeprovider op de site van de constructor-aanroep, bijgedragen door Vasily Kirichenko.
- Een bug waarbij waardetypen die worden gebruikt als maateenheden, zijn gekleurd als referentietypen, opgelost door Vasily Kirichenko.
- Een bug waarbij semantische colorisatie kon verdwijnen voor sommige bestanden tijdens het schuiven is opgelost door Vasily Kirichenko.
- Er is nu een experimentele CodeLens-implementatie, bijgedragen door Victor Peter Rouven Müller. U kunt deze inschakelen in opties > teksteditor > F# > Code Lens.
- Er is een fout opgetreden waarbij de F#-compilerservice de modulenamen in XML-documentatie onjuist zou ontwijken, is opgelost door Sebastian Urban.
- Code die wordt gebruikt
DictionarymetContainsKeyen volgendeItemaanroepen is gewijzigd in gebruikTryGetValue, door Auduchink. - Jakob Majoka heeft ook bijgedragen aan het verwerken van een andere API voor Tooltips.
Verbeteringen in infrastructuur, verpakking en opensource
We hebben de volgende verbeteringen aangebracht in infrastructuur, verpakking en onze opensource-bijdrage-ervaring:
- De F#-compiler die is gedistribueerd met Visual Studio, wordt niet meer geïnstalleerd als een singleton op de locatie van de F#Compiler SDK. Het is nu volledig naast Visual Studio, wat betekent dat naast elkaar installaties van Visual Studio eindelijk echt naast elkaar F#-hulpprogramma's en taalervaringen worden gebruikt.
- Het NuGet-pakket FSharp.Core is nu ondertekend.
- ETW-logboekregistratie is toegevoegd aan de F#-hulpprogramma's en compiler.
- De zeer grote
control.fs/control.fsibestanden in FSharp.Core zijn gesplitst inasync.fs/async.fsi,event.fs/event.fsi,eventmodule.fs/eventmodule.fsi,mailbox.fs/mailbox.fsien .observable.fs/observable.fsi - We hebben versies van de .NET SDK-stijl van onze testartefacten voor projectprestaties toegevoegd.
- We hebben Newtonsoft.json verwijderd uit onze codebasis en u hebt nu nog één pakket gedownload voor OSS-inzenders.
- We gebruiken nu de nieuwste versies van System.Collections.Immutable en System.Reflection.Metadata.
Verbeteringen in de C++ conformance en toolset
Deze release bevat de volgende C++-conformiteit en toolsetverbeteringen:
- Een nieuwe, experimentele, op tokens gebaseerde preprocessor die voldoet aan de C++11-standaarden (inclusief C99 preprocessorfuncties), ingeschakeld met de /experimentele:preprocessorswitch. Dit wordt beheerd met macro's
_MSVC_TRADITIONAL, die 1 zijn gedefinieerd bij het gebruik van de traditionele preprocessor en 0 wanneer de nieuwe experimentele standaarden voldoen aan preprocessor. - De Visual Studio Developer-opdrachtprompt biedt ondersteuning voor het inschakelen van visual C++ spectre variant 1 van verzachte runtimes (
-vcvars_spectre_libs = spectre). Meer informatie over spectre-oplossingen vindt u in de Visual C++-teamblog. - Twee nieuwe toevoegingen aan de SSA Optimizer gericht op het genereren van moderne C++-code: redundante opslagverwijdering en het vouwen van redundante vertakkingen.
- Geoptimaliseerde I/O-prestaties op basis van geheugen in de linker om de koppelingstijden te verminderen.
C++ platformoverschrijdende ontwikkeling
We hebben het volgende toegevoegd, verbeterd en toegevoegd aan de platformoverschrijdende ontwikkeling van C++ voor deze release:
- Er is eennieuwe itemsjabloon> voor het genereren van een .clang-format-bestand volgens de coderingsconventie die is opgegeven voor ClangFormat in Extra>Opties. Als de Visual Studio-conventie is geselecteerd, probeert het gegenereerde bestand overeen te komen met de huidige configuratie van Visual Studio-opmaak van de gebruiker vanuit extra > opties.
- De verzonden clang-format.exe versie bijgewerkt naar 6.0.0.
- Sjablonen om het toevoegen van configuraties aan CppProperties.jsonte vereenvoudigen.
- Sjablonen toegevoegd om het toevoegen van configuraties aan CMakeSettings.json(afbeelding 7) te vereenvoudigen.
C++ Productiviteit
We hebben de volgende verbeteringen en verbeteringen aangebracht in de productiviteit van C++ :
- Knopinfo voor snelle info in C++ voor macro's laat nu zien waar ze zich in uitvouwen, in plaats van alleen hun definitie. Dit is met name handig voor complexe macro's die verwijzen naar andere macro's, omdat hiermee wordt verduidelijkt wat de macro-id wordt vervangen door de preprocessor.
- Er is een nieuwe gloeilamp toegevoegd om eenvoudige macro's te converteren naar constexpr als een nieuw hulpmiddel om code te moderniseren.
- IntelliSense voor sjablonen bevat meer informatie over sjabloonargumenten om optimaal te profiteren van IntelliSense in de hoofdtekst van uw sjabloon (afbeelding 8).
- We werken aan het vernieuwen van onze ervaring voor codeanalyse. U kunt nu de nieuwe functies inschakelen die worden uitgevoerd onder Extra>Opties>Teksteditor>C++>Experimentele>codeanalyse. Codeanalyse kan op de achtergrond worden uitgevoerd wanneer bestanden worden geopend of opgeslagen, en resultaten worden weergegeven in de foutenlijst en als groene golvende golven in de editor (afbeelding 9).
Verbeteringen voor foutopsporing in C++
We hebben de volgende foutopsporingsverbeteringen aangebracht:
- Met Just My Code kunt u nu stapsgewijze code uitvoeren vanuit systeem- of C++-bibliotheken van derden, naast het samenvouwen van deze aanroepen in het aanroepstackvenster. U kunt dit gedrag voor alle C++-bibliotheken beheren wanneer uw code wordt gecompileerd met /JMC en de paden voor niet-gebruikersbibliotheken worden opgegeven in een NATJMC-bestand. Als de systeembibliotheek wordt aangeroepen in gebruikerscode, slaat het foutopsporingsprogramma alle systeemcode over en stopt het op de eerste regel van callback van gebruikerscode (afbeelding 10).
- Gegevensonderbrekingspunten kunnen nu worden ingesteld in de vensters Watch, Quickwatch, Autos en Locals, zodat u kunt breken wanneer een waarde die is opgeslagen in geheugenwijzigingen in slechts enkele, korte klikken.
- Met Source Link kunt u informatie insluiten over de oorspronkelijke broncode van een uitvoerbaar bestand of bibliotheek in de PDB tijdens de compilatie.
- Bij foutopsporing blijft het consolevenster nu standaard geopend wanneer het programma de uitvoering beëindigt (vergelijkbaar met het uitvoeren van het programma zonder het foutopsporingsprogramma). Dit gedrag kan worden teruggezet om de console automatisch te sluiten in extra > opties > foutopsporing > algemeen.
Verbeteringen in JavaScript en TypeScript
TypeScript 3.0
Visual Studio 2017 versie 15.8 bevat nu standaard TypeScript 3.0. Zie de aankondiging van de Release van TypeScript 3.0 voor meer informatie over deze release.
Verbeterde ondersteuning voor Vue.js
Ondersteuning voor de Vue.js-bibliotheek is verbeterd en met name ondersteuning voor .vue-bestanden, ook wel 'onderdelen van één bestand' genoemd. Dit biedt verbeteringen bij het bewerken van scriptblokken in .vue-bestanden, inclusief ondersteuning voor scriptblokken die zijn geschreven in TypeScript via het lang="ts" kenmerk op het scriptelement. (Opmerking: een buildproces met behulp van WebPack of vergelijkbaar moet worden gebruikt om de .vue-bestanden te converteren naar de HTML- en JS-bestanden die nodig zijn tijdens runtime. Zie de pagina Onderdelen voor één bestand voor meer informatie).
Als de Node.js-workload is geïnstalleerd, zijn er nu de sjablonen 'Basic Vue.js Web Application' onder de paden 'JavaScript/Node.js' of 'TypeScript/Node.js' in het dialoogvenster Nieuw project. Hieronder ziet u een voorbeeld van het bewerken van TypeScript-code in een scriptblok in een .vue-bestand (afbeelding 11).
ESLint-verbeteringen
We hebben de ESLint-ondersteuning voor deze release opnieuw geïmplementeerd. ESLint heeft de volgende verbeteringen en verbeteringen:
- In plaats van alleen opgeslagen bestanden te linten, worden JavaScript-bestanden nu ook door Visual Studio linten terwijl u bewerkt.
- Resultaten kunnen worden gerapporteerd voor alle JS-bestanden in uw project, niet alleen voor het openen van bestanden; als er delen van uw project zijn die u niet wilt verwijderen, kan een .eslintignore-bestand nu worden gebruikt om mappen en bestanden op te geven die moeten worden genegeerd.
- ESLint is standaard bijgewerkt voor gebruik van ESLint 4, maar als uw project een lokale installatie van ESLint heeft, wordt die versie gebruikt.
ESLint kan globaal worden uitgeschakeld in Visual Studio door de instelling ESLint inschakelen uit te schakelen in de >>> Javascript/Typescript > Linting ** (afbeelding 12).
Mapverbeteringen voor Node.js openen
Er zijn talloze verbeteringen die werken met JavaScript en TypeScript in het scenario Open Folder wanneer de 'Node.js workload' is geïnstalleerd. Bijvoorbeeld het beheren van NPM-pakketten, het bouwen van TypeScript, het starten en opsporen van fouten met Node.exe, het uitvoeren van NPM-scripts en het uitvoeren van eenheidstests.
Zie JavaScript- en TypeScript-code ontwikkelen in Visual Studio zonder oplossingen of projecten} voor meer informatie.
Verbeterde prestaties van editor
In eerdere versies werden alle bewerkingen van de JavaScript- en TypeScript-taalservice verwerkt door één Node.js proces. Dit kan leiden tot vertragingen in de editor als opdrachten die invloed hebben op het typen van gebruikers (zoals automatische opmaak na een nieuwe regel) zijn verzonden terwijl er al een langdurige bewerking is uitgevoerd (zoals het analyseren van code voor fouten). Om dit te verhelpen, wordt nu een afzonderlijk proces gebruikt voor de bewerkingen die van invloed zijn op het bewerken van het meest. Dit proces is aanzienlijk lichter voor systeemresources dan het bestaande taalserviceproces. Als u het nieuwe proces echter wilt uitschakelen, schakelt u het selectievakje Toegewezen syntaxisproces uitschakelen in de JavaScript-/TypeScript-taalservice > voor de teksteditor > extra >>in.
Visual Studio Web Tools
Bibliotheekbeheer is een nieuwe functie die is opgenomen in Visual Studio 2017. Het helpt u bij het beheren van bibliotheken aan de clientzijde in uw webprojecten.
Containerhulpprogramma's
Er is een nieuwe Docker-containerervaring voor één project toegevoegd voor ASP.NET Core-webprojecten. Dit vormt een aanvulling op de bestaande docker Compose-hulpprogramma's voor containers en biedt een eenvoudigere, eenvoudigere manier om Docker-containers rechtstreeks vanuit Visual Studio te maken, fouten op te sporen en te bouwen.
U kunt Docker-ondersteuning toevoegen bij het maken van het project (afbeelding 13):
U kunt ook Docker-ondersteuning inschakelen voor een bestaand project via het contextmenu van het project in Solution Explorer (afbeelding 14). Zodra u dit hebt uitgevoerd, maakt Visual Studio één Dockerfile in het project. U hebt de mogelijkheid om Windows of Linux te kiezen.
Visual Studio voegt ook een startprofiel voor foutopsporingsprogramma (afbeelding 15) voor Docker toe, zodat het project kan worden opgespoord tijdens het uitvoeren binnen een container.
Als u een oplossing met meerdere Docker-projecten hebt, wordt standaard slechts één container uitgevoerd wanneer u ervoor kiest om de oplossing te starten. Als u meerdere containers tegelijk wilt uitvoeren, klikt u met de rechtermuisknop op de oplossing in Solution Explorer en selecteert u Opstartprojecten instellen en vervolgens meerdere opstartprojecten en stelt u vervolgens de vervolgkeuzelijst Actie in op Starten of Starten zonder foutopsporing voor alle projecten die u wilt uitvoeren.
Zodra uw containerproject op de gewenste manier wordt uitgevoerd, kunt u met de rechtermuisknop op het project klikken en Docker-installatiekopieën bouwen selecteren om een installatiekopieën lokaal te bouwen, wanneer u klaar bent om naar Azure Container Registry of DockerHub te pushen.
U kunt ook de bestaande op Docker Compose gebaseerde functionaliteit toevoegen aan een ASP.NET Core-webproject via de nieuwe optie ondersteuning voor Container Orchestrator(afbeelding 16). Klik met de rechtermuisknop op het ASP.NET Core-webproject in Solution Explorer, selecteer Container Orchestrator-ondersteuning toevoegen >en selecteer Vervolgens Docker Compose in de vervolgkeuzelijst.
Verbeteringen publiceren
Deze release bevat de volgende publicatieverbeteringen:
- Wanneer u een Docker-container publiceert naar een containerregister, kunt u nu de tag voor de installatiekopieën aanpassen. U kunt handmatig een tag toevoegen (standaard is 'nieuwste') of een automatisch gegenereerde tag gebruiken om ervoor te zorgen dat elke tag uniek is.
- Wanneer u een nieuwe Azure App Service maakt, kunt u Application Insights ook configureren om automatisch telemetrie te verzamelen. Als u een regio kiest die ook Application Insights heeft, is deze standaard ingeschakeld. Als u een regio kiest die nog geen Application Insights bevat, kunt u handmatig een andere regio opgeven voor uw Application Insights-resource in de vervolgkeuzelijst.
- Wanneer u Azure Functions-projecten publiceert, kunt u ervoor kiezen om te publiceren met behulp van de nieuwe functie Uitvoeren vanaf zip .
Visual Studio Tools voor Xamarin
Deze release bevat de volgende updates voor Xamarin:
- We hebben ondersteuning toegevoegd voor Xcode 9.4.
- Wanneer u een nieuw Xamarin.Forms-project maakt, is de standaardoptie voor het delen van code nu .NET Standard. De optie gedeeld project is nog steeds beschikbaar.
- We hebben incrementele buildverbeteringen voor Android toegevoegd. Xamarin.Android maakt gebruik van bestanden die zijn gegenereerd in de tussenliggende uitvoermap om incrementele builds te bereiken die sneller zijn dan volledige builds. Als u eerder het doelframework van uw project hebt gewijzigd, zou dit de bestanden ongeldig maken en resulteren in een volledige build op de volgende uitvoering. In deze release behouden we nu de bestanden in mappen per framework, zodat u kunt schakelen tussen verschillende doelframeworks en nog steeds profiteren van incrementele builds. Door het project op te schonen, kunt u de schijfruimte vrijmaken die wordt gebruikt door de bewaarde bestanden.
- We hebben minimale ondersteuning toegevoegd voor Xamarin.Mac-bindingsprojecten in Visual Studio 2017. Hierdoor kan Visual Studio bindingsprojecten van Xamarin.Mac laden en herkennen zoals ondersteund. U kunt ook Xamarin.Mac-bindingsprojecten bouwen. Het buildproces wordt echter lokaal uitgevoerd zonder de systeemeigen Mac-hulpprogrammaketen te gebruiken, zodat de gegenereerde IL-assembly's niet kunnen worden gebruikt voor het uitvoeren of opsporen van fouten in apps.
Ondersteuning voor Hyper-V Android Emulator
Deze release voegt ondersteuning toe voor de Google Android-emulator die compatibel is met Hyper-V wanneer deze wordt uitgevoerd op de Update van Windows 10 april 2018 (afbeelding 17). Hiermee kunt u de Android-emulator van Google naast andere Hyper-V technologieën gebruiken, waaronder Hyper-V virtuele machines, Docker-hulpprogramma's, de HoloLens-emulator en meer. Ontwikkelaars van mobiele apps die gebruikmaken van Hyper-V hebben nu toegang tot een snelle Android-emulator die altijd ondersteuning biedt voor de nieuwste Android-API's, werkt met Google Play Services, en ondersteunt alle functies van de Android-emulator, waaronder camera, geolocatie en Quick Boot.
Xamarin.Android Designer
We hebben belangrijke verbeteringen aangebracht in de ontwerpervaring voor Xamarin.Android. Hoogtepunten zijn onder andere:
- Er is een editor voor gesplitste weergave geïntroduceerd waarmee u uw indelingen tegelijk kunt maken, bewerken en bekijken (afbeelding 18).
- Verbeterde IntelliSense-ervaring en betrouwbaarheid van aangepaste besturingselementen.
- Ondersteuning voor voorbeeldgegevens voor door het systeem geleverde waarden.
Xamarin.Forms Previewer
Xamarin.Forms Previewer biedt nu ondersteuning voor werksets bij het gebruik van Xamarin.Forms versie 3.1.0.583944 of hoger. Xamarin.Forms-besturingselementen worden weergegeven in de werkset, zodat ze beter kunnen worden gedetecteerd voor degenen die nieuw zijn in de toolkit. U kunt ook een besturingselement naar de XAML-code-editor slepen en neerzetten om het besturingselement toe te voegen aan de pagina. Xamarin.Forms Previewer maakt nu deel uit van de XAML-editor. U kunt het openen en sluiten met het uitvouwpictogram aan de rand van het deelvenster Editor.
Python
In deze release worden de volgende verbeteringen toegevoegd voor Python-ontwikkelaars:
- Python IntelliSense maakt nu gebruik van typen definities om uitgebreidere resultaten te bieden voor bibliotheken waarbij automatisch aanvullen niet kan worden afgeleid door statische analyse.
- Het experimentele foutopsporingsprogramma, dat voor het eerst werd aangekondigd in de preview-versies van 15.7, is nu de standaarddebug-engine die wordt gebruikt voor Python, en biedt snellere en betrouwbaardere foutopsporing voor Python-code.
- We hebben ondersteuning toegevoegd voor Python 3.7, waaronder oplossingen voor het inschakelen van foutopsporingskoppelingen, profilering en functies voor foutopsporing in gemengde modus (cross-language).
- Raadpleeg voor meer informatie over de bovenstaande functies ons blogbericht over Python in Visual Studio 2017 versie 15.8 .
Lokale Azure-functie-instellingen migreren
In het dialoogvenster Beheerde toepassingsinstellingen die beschikbaar zijn op de pagina Overzicht publiceren worden nu waarden uit uw local.settings.json-bestand weergegeven en kunt u waarden migreren naar uw externe Azure Function-app die wordt gehost in Azure.
Connected Services
U kunt nu continue levering voor Azure-functies rechtstreeks vanuit Visual Studio 2017 configureren voor oplossingen met Azure Function Projects.
Verbetering van Test Explorer
Test Explorer geeft nu een meer informatief samenvattingsvenster van de teststatus weer (onderste deelvenster van testverkenner) wanneer een van de groeperingen in de hiërarchieweergave is geselecteerd. In het deelvenster wordt nu weergegeven hoeveel tests zijn mislukt, geslaagd of niet worden uitgevoerd in die groep.
Nieuwe uitbreidbaarheidsfuncties
Taalserverprotocol
Visual Studio biedt nu systeemeigen ondersteuning voor het Language Server Protocol. Auteurs van extensies kunnen extensies maken die communiceren met bestaande taalservers om extra taalondersteuning toe te voegen aan Visual Studio. Gebruikers van extensies kunnen deze extensies installeren om hun favoriete taal te gebruiken in Visual Studio, zoals Rust.
AsyncPackage-sjabloon
Auteurs van extensies kunnen nu itemsjablonen gebruiken om AsyncPackages te maken om de prestaties van hun extensie te optimaliseren. Lees meer over AsyncPackages.
Uitbreidingspakketten
Deel eenvoudig uw favoriete set extensies of stel een nieuwe installatie van Visual Studio in met al uw extensies met behulp van een extensiepakket. Met extensiepakketten kunt u een lijst met extensies maken, ze verpakken in een extensie en deze snel gebruiken om deze extensies bulksgewijs te installeren.
Publicatie van opdrachtregeluitbreidingen
Publiceer uw extensies naar Visual Studio Marketplace met behulp van de opdrachtregel.
.NET Core SDK 2.1.400
Visual Studio 2017 versie 15.8 bevat .NET Core SDK 2.1.400. Nieuwe SDK-functies zijn onder andere:
- NUnit-sjablonen toegevoegd
- Ondersteuning toegevoegd voor ondertekende algemene hulpprogramma's
- Verbeterde Help-tekst voor betere duidelijkheid
32 problemen zijn gesloten op de .NET Core CLI.
Er zijn 20 problemen gesloten op de .NET Core SDK.
Broncodebeheer
Voor .NET Core-projecten worden de juiste Git- en TFS-traceringspictogrammen in Solution Explorer weergegeven zonder dat u de oplossing opnieuw hoeft te laden.
Extensie voor .NET-testadapter
De .NET-testadapter heeft de volgende belangrijke wijziging en afschaffing:
- Belangrijke wijziging: alle testprojecten moeten hun .NET-testadapter NuGet-verwijzing in hun csproj bevatten. Als dat niet zo is, wordt deze testuitvoer weergegeven in het project als de detectie door een testadapterextensie wordt gestart na een build of als de gebruiker de geselecteerde tests probeert uit te voeren:
- Testproject {<Volledig pad van testproject>} verwijst niet naar een .NET NuGet-adapter. Testdetectie of -uitvoering werkt mogelijk niet voor dit project. Het wordt aanbevolen om te verwijzen naar NuGet-testadapters in elk testproject in de oplossing.
- .NET-testframeworks hebben hun adapters uitgebracht in NuGet-pakketten en worden verwijderd van Visual Studio-extensies. De ondersteuning voor .NET-testadapters die via extensies worden geleverd, is afgeschaft, maar wordt nog steeds ondersteund. Dit betekent dat er twee nieuwe opties beschikbaar zijn in Extra > Opties > Testen.
- Met de eerste optie kan Visual Studio alleen de testadapters gebruiken die worden gevonden in de testassemblymap (ingevuld door de NuGet-verwijzing van de testadapter) of zoals opgegeven in het runettings-bestand.
- Met de tweede optie kan Visual Studio terugvallen op het oude gedrag en zoeken naar testadapterextensies voor projecten die geen NuGet-verwijzing voor testadapters hebben. Beide opties worden standaard gecontroleerd, dus er wordt geen standaardgedrag gewijzigd in deze release.
- Opmerking: Non-.NET testadapters worden niet beïnvloed door deze wijziging.
ondersteuning voor .NET Framework-geheimen ASP.NET
Voor ASP.NET kunt u .NET Framework-projecten die zijn gericht op .NET Framework 4.7.1 of hoger, nu geheimen openen en opslaan die u niet in uw broncode wilt opnemen in usersecrets.xml door met de rechtermuisknop op het project te klikken en beheerde gebruikersgeheimen te selecteren.
Prestaties van .NET Framework verbeteren ASP.NET
Als het .NET Compiler-pakket waarnaar wordt verwezen verouderd is in een ASP.NET .NET Framework-project, wordt u gevraagd het pakket bij te werken wanneer u het project opent om de buildprestaties te verbeteren.
.NET Framework 4.7.2
Visual Studio 2017 versie 15.8 biedt nu de ontwikkelhulpprogramma's van .NET Framework 4.7.2 voor alle ondersteunde platforms met de runtime 4.7.2. .NET Framework 4.7.2 biedt verschillende nieuwe functies en verbeteringen, evenals talloze betrouwbaarheids-, stabiliteits-, beveiligings- en prestatiecorrecties.
Meer informatie over .NET Framework 4.7.2 vindt u in deze artikelen:
- .NET Framework 4.7.2 RTM-blog
- Releaseopmerkingen voor .NET Framework 4.7.2
- Bekende problemen in .NET Framework 4.7.2
- Toepassingscompatibiliteit in .NET Framework 4.7.2
- API-wijzigingen
Pakketbelasting vertragen
Visual Studio vertraagt nu het laden van asynchrone pakketten die zijn geconfigureerd voor automatisch laden totdat de Visual Studio IDE volledig is gestart en de oplossing is geladen. Deze wijziging heeft geen invloed op synchroon automatisch geladen pakketten. Gebruikers kunnen het taakstatuscentrum in de linkerbenedenhoek van de statusbalk bekijken om de voortgang te controleren. Auteurs van extensies die asyncpackages maken, moeten hun extensie testen. Zie Verbetering van de reactiesnelheid van kritieke scenario's door het gedrag van automatische belasting voor extensies bij te werken voor meer informatie.
---
Kennisgevingen van beveiligingsadvies voor Visual Studio 2017 versie 15.8
Visual Studio 2017 versie 15.8.7 Service Release- uitgebracht op 10 oktober 2018
CVE-2018-8292 .NET Core Information Disclosure Vulnerability
Er bestaat een beveiligingsfunctie omzeilingsprobleem in .NET Core wanneer HTTP-verificatiegegevens per ongeluk worden weergegeven in een uitgaande aanvraag die een HTTP-omleiding tegenkomt. Een aanvaller die dit beveiligingsprobleem heeft misbruikt, kan de informatie gebruiken om de webtoepassing verder in gevaar te brengen. Met de beveiligingsupdate wordt het beveiligingsprobleem opgelost door te corrigeren hoe .NET Core-toepassingen HTTP-omleidingen verwerken.
Visual Studio 2017 versie 15.8.4 Service Release- uitgebracht op 11 september 2018
CVE-2018-8409 .NET Core Denial of Service Vulnerability
Er bestaat een denial of service-beveiligingsprobleem in .NET Core 2.1 wanneer System.IO.Pipelines aanvragen onjuist verwerkt. Een aanvaller die dit beveiligingsprobleem heeft misbruikt, kan een Denial of Service veroorzaken voor een toepassing die gebruikmaakt van System.IO.Pipelines. Het beveiligingsprobleem kan extern worden misbruikt, zonder verificatie. Een externe niet-geverifieerde aanvaller kan dit beveiligingsprobleem misbruiken door speciaal gemaakte aanvragen aan de toepassing te verstrekken.
CVE-2018-8409 ASP.NET Core Denial of Service Vulnerability
Er bestaat een denial of service-beveiligingsprobleem in ASP.NET Core 2.1 die webaanvragen onjuist verwerkt. Een aanvaller die dit beveiligingsprobleem heeft misbruikt, kan een denial of service veroorzaken voor een ASP.NET Core-webtoepassing. Het beveiligingsprobleem kan extern worden misbruikt, zonder verificatie. Een externe niet-geverifieerde aanvaller kan dit beveiligingsprobleem misbruiken door een speciaal samengestelde webaanvragen te verstrekken aan de ASP.NET Core-toepassing.
Visual Studio 2017 versie 15.8- uitgebracht op 14 augustus 2018
CVE-2018-0952 Beveiligingsprobleem met diagnostische hub Standard Collector-uitbreiding van bevoegdheden
Er bestaat een beveiligingsprobleem met uitbreiding van bevoegdheden in een Visual Studio-service, wat kan leiden tot systeembevoegdheden door een niet-beheerdersgebruiker bij het schrijven van bestanden. Een aanvaller die hiervan gebruik heeft gemaakt, kan bestanden schrijven als systeem en alleen toegang op gebruikersniveau hebben. Met deze beveiligingsupdate wordt dit probleem opgelost door de huidige gebruiker te imiteren om de toegang tot de bestandslocatie te valideren.
Visual Studio 2017 versie 15.8 Preview 4 - uitgebracht op 10 juli 2018
CVE-2018-8172 Beveiligingsprobleem met uitvoering van Externe code in Visual Studio
Een beveiligingsprobleem met de uitvoering van externe code dat kan leiden tot exploitatie van de computer van een gebruiker door een speciaal ontworpen project of resourcebestand te openen. Met de beveiligingsupdate wordt het beveiligingsprobleem opgelost door te corrigeren hoe Visual Studio de bronmarkeringen van een bestand controleert.
CVE-2018-8260 .NET Framework Remote Code Execution Vulnerability
Er bestaat een beveiligingsprobleem met de uitvoering van externe code in .NET-software die kan leiden tot exploitatie van de computer van een gebruiker door aanvallers toe te staan willekeurige code uit te voeren in de context van de huidige gebruiker. Met de beveiligingsupdate wordt het beveiligingsprobleem opgelost door te corrigeren hoe .NET de bronmarkeringen van een bestand controleert.
CVE-2018-8232 .NET Microsoft Macro Assemblyer Manipulatie Beveiligingsprobleem
Beveiligingsprobleem met betrekking tot manipulatie met betrekking tot de Microsoft Macro Assembler valideert onjuist code. Met de beveiligingsupdate wordt het beveiligingsprobleem opgelost door ervoor te zorgen dat Microsoft Macro Assembler codelogica correct valideert.
CVE-2018-8171 ASP.NET Beveiligingsfunctie omzeilen beveiligingsprobleem
Er bestaat een ASP.NET Beveiligingsfunctie omzeilingsprobleem wanneer het aantal onjuiste aanmeldingspogingen niet is gevalideerd dat kan leiden tot een aanvaller die oneindige verificatiepogingen probeert uit te voeren. De update lost het beveiligingsprobleem op door het aantal onjuiste aanmeldingspogingen te valideren.
Visual Studio 2017 versie 15.8 Preview 3 - uitgebracht op 26 juni 2018
CVE-2018-11235 Microsoft-beveiligingsadvies voor Git-beveiligingslek
We hebben een beveiligingsprobleem opgelost in Git dat is bekendgemaakt door de Git-community. Het beveiligingsprobleem kan leiden tot willekeurige uitvoering van code wanneer een gebruiker een schadelijke opslagplaats kloont.
Visual Studio 2017 versie 15.8 Preview 1 - uitgebracht op 08 mei 2018
CVE-2018-0765 Microsoft Security Advisory for .NET Core Denial of Service Vulnerability
- Microsoft brengt dit beveiligingsadvies uit om informatie te verstrekken over een beveiligingsprobleem in .NET Core en .NET native versie 2.0. Dit advies biedt ook richtlijnen voor wat ontwikkelaars kunnen doen om hun toepassingen bij te werken om dit beveiligingsprobleem te verwijderen.
- Microsoft is op de hoogte van een denial of service-beveiligingsprobleem dat bestaat wanneer XML-documenten door .NET Framework en .NET Core onjuist worden verwerkt. Een aanvaller die dit beveiligingsprobleem heeft misbruikt, kan een denial of service veroorzaken voor een .NET Framework-, .NET Core- of .NET-systeemeigen toepassing.
- Met de update wordt het beveiligingsprobleem opgelost door te corrigeren hoe .NET Framework-, .NET Core- en .NET-systeemeigen toepassingen XML-documentverwerking verwerken.
- Als uw toepassing een ASP.NET Core-toepassing is, wordt ontwikkelaars ook aangeraden om bij te werken naar ASP.NET Core 2.0.8.
Pictogram
Visual Studio 2017 versie 15.8.1
uitgebracht op 17 augustus 2018
Belangrijkste problemen opgelost in 15.8.1
Dit zijn de problemen die in 15.8.1 zijn opgelost:
- Er is een probleem opgelost waarbij Visual Studio onverwacht werd gesloten wanneer een browservenster werd gesloten tijdens het opsporen van fouten in een webproject.
Pictogram
Visual Studio 2017 versie 15.8.2
uitgebracht op 28 augustus 2018
Belangrijkste problemen opgelost in 15.8.2
Dit zijn de door de klant gerapporteerde problemen die in 15.8.2 zijn opgelost:
- Eén contextmenu-item van het bestand publiceren ontbreekt.
- Git-netwerkbewerkingen werken niet: kan niet git-askpass.exe.
- Het laden van het Visual C++ Resource Editor-pakket is mislukt.
- Preview-transformatie geeft een fout.
- Kan geen accolade typen.
- Objectverwijzing is niet ingesteld op een exemplaar van een object bij het implementeren van een Service Fabric-project na update 15.8.0.
- De installatiefout 'De indeling van het opgegeven pad wordt niet ondersteund'.
- Taak ExpandPriContent is mislukt. Ongeldige tekens in pad.
- De installatiefout 'Kan geen exemplaar van het type System.Collections.Genertic.Iset'1[Signer]' maken.
- Service Fabric-implementatie mislukt in 15.8.0.
- Kan geen app-pakket maken voor Windows Store.
- Onjuiste codegeneratie voor sterk getypte resources.
- Toetsenbordbinding voor Italiaanse indeling.
- IntelliSense gebroken #9999.
- Wanneer u aan een Unity-project werkt en Unity meerdere projectbestanden herschrijft, wordt de oplossing nu automatisch opnieuw geladen met Visual Studio Tools for Unity.
- De klant krijgt nu een dialoogvenster om Office-toepassingen te sluiten als ze de installatie van Visual Studio blokkeren en een fout van 1303 veroorzaken.
Pictogram
Visual Studio 2017 versie 15.8.3
uitgebracht op 6 september 2018
Belangrijkste problemen opgelost in 15.8.3
Dit zijn de door de klant gerapporteerde problemen die in 15.8.3 zijn opgelost:
- Visual Studio 2017 versie 15.8.2 bevat een voorlopige build van .NET Core SDK 2.1.401 die niet compatibel is met Visual Studio. Dit probleem is opgelost met Visual Studio 2017 versie 15.8.3.
- Fout bij het maken van een VSCppUnit-testcase.
- Python IntelliSense werkt niet in Python 2.7.
- XAML-ontwerper waardoor Visual Studio onverwacht wordt gesloten.
Pictogram
Visual Studio 2017 versie 15.8.4
uitgebracht op 11 september 2018
Belangrijkste problemen opgelost in 15.8.4
Dit zijn de door de klant gerapporteerde problemen die in 15.8.4 zijn opgelost:
- De constexpr-functie met expliciete (ongeldige) parameter loopt MSVC 15.8.0 release vast.
- Er is een fout opgetreden in TypeScriptLspCodeActionProvider en deze is uitgeschakeld.
- Het pakket Gedeelde webonderdelen is niet correct geladen.
- Het bewerken van CSS waarvoor Browser Link is ingeschakeld, kan Visual Studio vastlopen.
- Service Fabric-implementatie mislukt in 15.8.0.
- Onjuiste fout voor constexpr-aanwijzer naar leden met VS2017 15.8.
- Constexpr biedt geen ondersteuning voor __declspec(dllimport) in VS2017 15.8.
- C++ VS 2017 Update 8 verschil in de functiewijzer voor leden tussen C++14- en C++17-modi leidt tot crashes.
- TestExplorer vergrendelt de gebruikersinterface in de nieuwste build.
- [WebKit] "Al gedefinieerd symbool" voor definitie van het statische sjabloonlid (regressie).
- VS 15.8.0 Interne compilerfout.
- Interne compilerfout in constexpr-functie.
- Testverkennervenster blijft leeg met Express.
- Visual Studio 2017 kan niet worden geopend op een computer met FIPS-functionaliteit.
- VS2017 15.8 Interne compilerfout 'msc1.cpp', regel 1518 bij het evalueren van een eenvoudige constexpr-functie.
- Fatale fout C1001 na update naar VS 15.8.0.
- Migreren naar VS2017 15.8: Interne compilerfout bij gebruik van constexpr-functies als sjabloonparameters.
- Interne compilerfout bij het compileren van een sjabloonfunctie met een constexpr in VC++ 15.8.0.
- Code gegenereerd door vc 15.8.1 compiler leidt tot crash.
Kennisgevingen over beveiligingsadvies
- CVE-2018-8409 .NET Core Denial of Service Vulnerability
- CVE-2018-8409 ASP.NET Core Denial of Service Vulnerability
Pictogram
Visual Studio 2017 versie 15.8.5
uitgebracht op 20 september 2018
Samenvatting van wat is er nieuw in 15.8.5
- Visual Studio Tools voor Xamarin- ondersteunt nu Xcode 10.
Belangrijkste problemen opgelost in 15.8.5
Dit zijn de door de klant gerapporteerde problemen die in 15.8.5 zijn opgelost:
- Knopinfo voor foutopsporingsprogramma wordt niet uitgebreid in Xamarin.iOS-foutopsporingssessie.
- Met het foutopsporingsprogramma kan ik het uitvoeringspunt (Android) niet verlaten.
- Na het bijwerken naar 15.8.1 wordt de gegevenstip niet weergegeven bij foutopsporing.
- De tip voor foutopsporingsprogrammagegevens wordt niet uitgevouwen [Editor].
- Uitzondering:MSB0001: Interne MSBuild-fout: Al geregistreerd voor buildtijd.
- Onjuist pad naar resource in manifest voor ClickOnce na een upgrade naar VS 15.8.1.
- ClickOnce Manifest-fout in 15.8.
- ClickOnce Publish ontbreekt in bepaalde verwijzingen.
- ClickOnce: Taalbestand gekopieerd naar verkeerde locatie.
- Verwijzing ontbreekt in de publicatiemap ClickOnce.
- Het compileren van non-.NET SDK-stijl F#-projecten resulteert in een interne MSBuild-fout, tenzij MSBuild parallellisme is ingesteld op 1.
- F# is niet NGEN'd in Visual Studio.
- F# implementeert het binaire bestand FSharp.Core 4.5.0.0 op de locatie 4.4.3.0.
Details van wat er nieuw is in 15.8.5
Visual Studio Tools voor Xamarin
Visual Studio Tools voor Xamarin ondersteunt nu Xcode 10 waarmee u apps voor iOS 12, tvOS 12 en watchOS 5 kunt bouwen en er fouten in kunt opsporen. Bekijk hoe u zich kunt voorbereiden voor iOS 12 en onze inleiding tot iOS 12 voor meer informatie over de nieuwe functies die beschikbaar zijn.
Pictogram
Visual Studio 2017 versie 15.8.6
uitgebracht op 02 oktober 2018
Samenvatting van wat is er nieuw in 15.8.6
- De nieuwste Windows 10 SDK is beschikbaar.
Belangrijkste problemen opgelost in 15.8.6
Dit zijn de door de klant gerapporteerde problemen die in 15.8.6 zijn opgelost:
- NuGet-pakketten voor IntelliSense zijn verbroken.
- Visual Studio wordt gesloten na het openen van sln.
- De XML-editor van App.Config blijft in 15.8.4 bevroren.
Details van wat er nieuw is in 15.8.6
Nieuwste Ontwikkelaars van Windows 10 SDK voor universeel Windows-platform
De nieuwste Windows 10 SDK (build 17763) is nu beschikbaar als een optioneel onderdeel voor de universal Windows Platform-ontwikkelworkload. U kunt deze SDK toevoegen aan de workload door het selectievakje Windows 10 SDK (10.0.17763.0) in te schakelen.
Pictogram
Visual Studio 2017 versie 15.8.7
uitgebracht op 10 oktober 2018
Nieuw in 15.8.7
Azure DevOps
Visual Studio Team Services is nu Azure DevOps. U ziet deze nieuwe huisstijl in Team Explorer en in verwijzingen in Visual Studio.
Kennisgevingen over beveiligingsadvies
CVE-2018-8292 .NET Core Information Disclosure Vulnerability
Pictogram
Visual Studio 2017 versie 15.8.8
uitgebracht op 24 oktober 2018
Belangrijkste problemen opgelost in 15.8.8
Dit zijn de door de klant gerapporteerde problemen die in 15.8.8 zijn opgelost:
- /DEBUG:FASTLINK geen foutopsporingsgegevens voor STL-typen opgenomen via PCH.
- Ongeldig codegen gezien in 15.8 RTW compiler.
- Heap corruptie in stapel tot rust komt wanneer inlining functie.
- Linker verbruikt 6 GB geheugen voor specifieke testcases.
Pictogram
Visual Studio 2017 versie 15.8.9
uitgebracht op 2 november 2018
Belangrijkste problemen opgelost in 15.8.9
Dit zijn de door de klant gerapporteerde problemen die in 15.8.9 zijn opgelost:
- Er is ondersteuning toegevoegd voor Xcode 10.1 in Visual Studio Tools for Xamarin.
- De Xamarin.Forms-sjabloon bijgewerkt naar Xamarin.Forms 3.3.0.
- Update 15.8.6 onderbreekt installatieprojecten.
- Interne compilerfout in VS15.8 msc1.cpp regel 1518.
- Microsoft Visual Studio 2017 Installer Projects 0.8.8 en VS 15.8.6.
- SFINAE kan overeenkomende overbelaste functie niet detecteren in preview VS Preview 3 15.9.0.
- XAML Designer loopt vast in Visual Studio.
bekende problemen
Bekijk alle bestaande bekende problemen en beschikbare tijdelijke oplossingen in Visual Studio 2017 versie 15.8.
Geschiedenis van releaseopmerkingen voor Visual Studio 2017
Zie voor meer informatie over eerdere versies van Visual Studio 2017 de Visual Studio 2017 Release Notes History pagina.