Delen via


Releaseopmerkingen voor 2019Logo Visual Studio 2019 versie 16.8


Opmerking

Deze versie van Visual Studio 2019 wordt niet meer ondersteund. De meest recente ondersteunde versie is 16.11. Werk uw installatie bij of voer een upgrade uit naar de nieuwste versie van Visual Studio om ondersteund te blijven.

Zie de releasegeschiedenispagina voor een lijst met alle releaseopmerkingen voor Visual Studio 2019.

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 2019 versie 16.8 Releases

Visual Studio 2019-blog

The Visual Studio 2019 Blog is de officiële bron van product insight van het Visual Studio Engineering Team. U vindt uitgebreide informatie over de Visual Studio 2019-releases in de volgende berichten:


Bekijk deze volledige lijst met alle developer community-items die zijn gemaakt in Visual Studio 2019 versie 16.8

Release Notes pictogram Visual Studio 2019 versie 16.8.7

uitgebracht op 09 maart 2021

Problemen opgelost in deze versie van Visual Studio 2019 versie 16.8.7

Kennisgeving van beveiligingsadvies

CVE-2021-21300 Git voor Visual Studio Kwetsbaarheid voor Uitvoering van Code op Afstand

Er bestaat een beveiligingsprobleem met de uitvoering van externe code wanneer Visual Studio een schadelijke opslagplaats kloont.

CVE-2021-26701 .NET Core Remote Code Execution Vulnerability

Er bestaat een beveiligingsprobleem met de uitvoering van externe code in .NET 5 en .NET Core vanwege de wijze waarop tekstcodering wordt uitgevoerd.


Pictogram Releaseopmerkingen Visual Studio 2019 versie 16.8.6

uitgebracht op 22 februari 2021

Problemen die zijn opgelost in deze versie van Visual Studio 2019 versie 16.8.6


Release Notes Icon Visual Studio 2019 versie 16.8.5

uitgebracht op 09 februari 2021

Kennisgeving van beveiligingsadvies

CVE-2021-1639 TypeScript Language Service-beveiligingsprobleem met externe code-uitvoering

Er bestaat een beveiligingsprobleem met de uitvoering van externe code wanneer Visual Studio een schadelijke opslagplaats met JavaScript- of TypeScript-codebestanden laadt.

CVE-2021-1721 .NET Core Denial of Service Vulnerability

Er bestaat een denial-of-service-beveiligingsprobleem bij het maken van een HTTPS-webaanvraag tijdens het bouwen van X509-certificaatketens.

CVE-2021-24112 .NET 5 en .NET Core Kwetsbaarheid voor uitvoering op afstand van code

Er bestaat een beveiligingsprobleem met het uitvoeren van externe code bij het verwijderen van metabestanden wanneer er nog steeds naar een grafische interface wordt verwezen. Dit beveiligingsprobleem bestaat alleen op systemen die worden uitgevoerd in MacOS of Linux.

Problemen die zijn opgelost in deze versie van Visual Studio 2019 versie 16.8.5

  • Er is een probleem opgelost waarbij x86 Microsoft.VCLibs Appx, die onder ExtensionSDKs was geïnstalleerd, werd bijgewerkt met de juiste handtekening.
  • Er is een geheugenlek opgelost bij het gebruik van C++ DesignTime-functies.
  • Er is een probleem opgelost waarbij een uitzondering optreedt als een wachtwoord niet wordt onthouden bij het importeren van een bestaande database in een SSDT-project.
  • Er is een probleem opgelost waarbij de knop Publiceren is uitgeschakeld wanneer klanten .NET Core-projecten voor het eerst publiceren naar een map of andere hostingdoelen.
  • Er is een probleem opgelost dat af en toe optrad toen ontwikkelaars de weergavepagina voor publicatieprofielen openden.
  • Voegt Xcode 12.4-ondersteuning toe.

Items uit de ontwikkelaarscommunity


Pictogram voor releaseopmerkingen Visual Studio 2019 versie 16.8.4

uitgebracht op 12 januari 2021

Kennisgeving van beveiligingsadvies

CVE-2021-1651 / CVE-2021-1680 Diagnostische hub Standard Collector Service-uitbreiding van beveiligingsprobleem met bevoegdheden

Er bestaat een beveiligingsprobleem met uitbreiding van bevoegdheden wanneer de Diagnostics Hub Standard Collector gegevensbewerkingen onjuist verwerkt.

CVE-2020-26870 Beveiligingsprobleem met uitvoering van externe code in Visual Studio Installer

Er bestaat een beveiligingsprobleem met de uitvoering van externe code wanneer het Installatieprogramma van Visual Studio probeert schadelijke markdown weer te geven.

CVE-2021-1723 ASP.NET Core en Visual Studio Denial of Service Vulnerability

Er bestaat een denial of service-beveiligingsprobleem in de manier waarop Kestrel HTTP/2-aanvragen parseert.

Problemen die zijn opgelost in deze versie van Visual Studio 2019 versie 16.8.4

  • Er is een probleem opgelost waarbij C#-specifieke IntelliCode-onderdelen mogelijk niet worden geïnstalleerd als IntelliCode eerder was geïnstalleerd vanuit Visual Studio Marketplace in oudere versies van Visual Studio
  • Transitieve projectverwijzingen worden nu gerespecteerd wanneer een PackageReference-project verwijst naar packages.config projecten met PackageReference-afhankelijkheden.
  • Voegt Xcode 12.3-ondersteuning toe.
  • Fixes x86_64 watchOS 7.0+ simulatorondersteuning
  • We hebben valse positieven (C33001 ~ C33005) opgelost voor het gebruik van VARIANTs die door een functie worden geretourneerd.
  • Oplossing voor onregelmatige VS-crash in WinForms .NET Core Designer tijdens het sluiten van een project of oplossing.
  • Opgelost databaseproject: door een bestand vanuit Solution Explorer naar een geopend bestand te slepen, wordt het bestand uit het bestandssysteem verwijderd.
  • Het probleem waarbij het klikken op 'update' in Sql Schema Compare geen wijzigingen opslaat in het sqlproj-bestand is opgelost.
  • Er is een fout opgelost waarbij builds zijn mislukt met de foutmelding "Tabel/kolom is niet gevonden".
  • Het selectievakje Doorvoeren na samenvoegen is opgelost vanuit Team Explorer -> Vertakkingen.
  • Er is een fout opgelost waarbij Visual Studio mogelijk enkele seconden niet meer reageert tijdens het controleren op updates.
  • DeploymentAppRecipe.exe hulpprogramma ondersteunt nu het uitvoeren vanuit elke huidige map. Het retourneert nu ook een niet-nul retourwaarde wanneer de implementatie mislukt en foutberichten naar de standaardfoutstroom uitvoert.

Uit de ontwikkelaarsgemeenschap



Release Notes Icon Visual Studio versie 2019 16.8.3

uitgebracht op 08 december 2020

Kennisgeving van beveiligingsadvies

CVE-2020-17156 Beveiligingsprobleem met uitvoering van Externe code in Visual Studio

Er bestaat een beveiligingsprobleem met de uitvoering van externe code wanneer Visual Studio een schadelijke opslagplaats kloont.

Problemen opgelost in deze versie van Visual Studio 2019 versie 16.8.3

  • Er is een interne compilerfout opgelost wanneer een geneste functiesjabloon buiten de bovenliggende klasse is gedefinieerd.
  • Er is een onjuiste fout C2355 opgelost wanneer 'dit' wordt gebruikt in de initialisatiefunctie van een niet-statisch gegevenslid.
  • Fout bij het laden van regelset is opgelost voor aangepaste regelset met de /analyze:ruleset optie en de /analyze:rulesetdirectory en/of /analyze:projectdirectory optie.
  • Oplossing voor een onregelmatige crash in Visual Studio tijdens het gebruik van WinForms .NET Core Designer.
  • .NET 5.0.1-invoeging in Visual Studio v 16.8.3
  • Er is een probleem opgelost waarbij bepaalde hulpmiddelvensters, geactiveerd door de gebruikersinterfacecontext, ervoor kunnen zorgen dat Visual Studio vastloopt.
  • Verholpen: Push vanaf de pagina ‘Vertakkingen beheren’ wanneer er geen externe Git-traceringsbranch is.
  • Xcode 12.2-ondersteuning toegevoegd.

Uit de ontwikkelaarsgemeenschap



Releaseopmerkingen Pictogram Visual Studio 2019 versie 16.8.2

uitgebracht op 19 november 2020

Problemen die zijn opgelost in deze versie van Visual Studio 2019 versie 16.8.2

  • Opgelost voor optimalisatiefouten in lussen.
  • Er is een interne compilatiefout gecorrigeerd in de implementatie van gegarandeerde kopie-eliminatie (C++17-functie).
  • Opgeloste prestatieregressie voor het uitgebreide gebruik van anonieme typen.
  • Er is een probleem opgelost waarbij een gouden balk met het bericht 'Opgegeven argument buiten het bereik met geldige waarden lag' werd weergegeven bij het bewerken van C#-code.
  • Er is een probleem opgelost dat een MissingMethodException kon veroorzaken bij het bouwen van een project met T4-sjablonen.
  • Lost een probleem op waarbij de zoekopdracht in het dialoogvenster Nieuw project nul resultaten kan retourneren.

Uit de ontwikkelaarsgemeenschap



Releaseopmerkingen-pictogram Visual Studio 2019 versie 16.8.1

uitgebracht op 12 november 2020

Problemen opgelost in deze versie van Visual Studio 2019 versie 16.8.1

  • Er is een probleem met hoge impact opgelost waarbij het pakket 'SourceExplorerPackage' niet correct werd geladen. er verschijnt een waarschuwing bij het klonen van een opslagplaats in Team Explorer. Wanneer gebruikers dit probleem hebben aangetroffen, zou dit ertoe leiden dat het product niet meer reageert.

Pictogram Release Notes Icon Visual Studio 2019 versie 16.8.0

uitgebracht op 10 november 2020

Samenvatting van wat is er nieuw in deze versie van Visual Studio 2019 versie 16.8


F#:

  • F# 5 is nu uitgebracht naast .NET 5
  • Prestatieverbeteringen en oplossingen voor Visual Studio-hulpprogramma's via F# Tools versie 11.0.0
  • Volledige releaseopmerkingen die beschikbaar zijn op GitHub

C++:

  • C++20 Coroutines worden nu ondersteund onder /std:c++latest en de <coroutine> header.
  • IntelliSense biedt nu ondersteuning voor C++20 <concepten> en <ranges headers>, en het hernoemen en browsen van conceptdefinities.
  • Onze STL biedt nu ondersteuning voor het merendeel van de C++20-bereiken.
  • Voorwaardelijke triviale speciale lidfuncties worden nu ondersteund in MSVC.
  • C11 en C17 worden nu ondersteund onder de schakelopties /std:c11 en /std:c17.
  • Aanvullende STL-verbeteringen omvatten volledige ondersteuning voor std::atomic_ref, std::middelpunt en std::lerp en std::execution::unseq, optimalisaties voor std::reverse_copy en meer.
  • Bijgewerkte versie van CMake geleverd met Visual Studio naar CMake 3.18.
  • Onze hulpprogramma's voor codeanalyse bieden nu ondersteuning voor de SARIF 2.1-standaard: de standaardindeling voor statische analyselogboeken.
  • Ontbrekende buildhulpprogramma's in Linux-projecten geven nu een waarschuwing op de werkbalk en een duidelijke beschrijving van de ontbrekende hulpprogramma's in de foutenlijst.
  • U kunt nu rechtstreeks vanuit Visual Studio fouten opsporen in Linux-kerndumps op een extern Linux-systeem of WSL.
  • Voor het genereren van C++-Doxygen-opmerkingen hebben we extra opties voor opmerkingsstijlen (/*! en //!) toegevoegd.
  • Aanvullende vcpkg-aankondigingen
  • Compilerondersteuning voor lambdas in niet-geëvalueerde contexten
  • /debug:full linkprestaties verbeterd door multi-threading pdb-creatie. Verschillende grote toepassingen en AAA-games zien tussen 2 en 4 keer sneller koppelen.
  • Het Visual Studio-foutopsporingsprogramma biedt nu ondersteuning voor char8_t.
  • Ondersteuning voor ARM64-projecten met behulp van clang-cl.
  • Ondersteuning voor Intel AMX intrinsieken .
  • Er is een nieuwe linkoptie, legacy_stdio_float_rounding.obj toegevoegd om het verouderde gedrag van het afdrukken van drijvende-kommawaarden in te schakelen, dat in Dev16.2 is gewijzigd om exact weer te geven drijvende-komma getallen correct af te ronden. Zie printf, _printf_l, wprintf, _wprintf_l voor meer informatie.

Debugger:

  • Ondersteuning voor foutopsporing voor .NET Core Linux Core-dump
  • Automatische analyse van .NET en .NET Core
  • Automatische analyse van .NET- en .NET Core-geheugenpaden

Experimentele updates voor Razor-editor:

  • Blazor gloeilampen
  • C# lichtbronnen
  • Verbeterde Razor-opmaak
  • Razor-componenten hernoemen in de markup van .razor-bestanden
  • Ga naar definitie van Blazor component tagnamespace
  • C#-aanwijskleuring
  • C# voltooiing tooltip kleurstelling
  • Ga naar definitie/implementatie voor Razor, inclusief gesloten bestanden
  • Alle verwijzingen zoeken in gesloten Razor-bestanden
  • Verbeterde performance en stabiliteit bij het bewerken met Razor voor grote projecten en oplossingen.

Neps met SDK-stijlprojecten:

  • Bij het gebruik van de nieuwe Fakes-ondersteuning voor SDK-stijlprojecten hebben sommige gebruikers de volgende fout aangetroffen bij het genereren van shims

Git-productiviteit:

  • Meer informatie over het gebruik van alle Git-functies in onze nieuwe online documentatie
  • Open het venster Git-opslagplaats op elk gewenst moment via het venster Git-wijzigingen, het menu Weergave en de statusbalk
  • Ophalen, binnenhalen en pushen vanaf meerdere remotes in het venster Git-wijzigingen.
  • Geslaagde en foutberichten weergeven voor Git-opdrachten boven aan het venster Git-opslagplaats
  • Een nieuwe vertakking maken op basis van een Azure DevOps-werkitem
  • Een Git-opslagplaats openen vanuit een lijst met uw lokale opslagplaatsen in het Git-menu
  • De standaardprovider voor broncodebeheer is nu Git in plaats van TFVC
  • Klik om te schakelen tussen branchehistorieën in het venster Git-repository
  • Toon en selecteer een oplossing uit een lijst in Solution Explorer na het openen van een repository
  • Het geschiedenisoverzicht wijzigen en doorvoeringen opzoeken via een werkbalk in het venster Git-repository.
  • Inkomende en uitgaande commitsecties ophalen, pullen en pushen in de historiegrafiek van een branche
  • U wordt gevraagd om een pull request te maken nadat u een branch naar uw remote hebt gepusht.
  • Namen van vertakkingen weergeven in de opdrachten samenvoegen en opnieuwbaseen in het contextmenu van de vertakkingslijst
  • Toegang tot Git-opdrachten via het contextmenu in Solution Explorer en de editor
  • Bekijk de voortgang van de kloon via een nieuw modaal dialoogvenster met de optie om het proces naar de achtergrond te verplaatsen

IntelliCode:

  • Haal gepersonaliseerde IntelliCode-voltooiingen op in Visual Studio documentatie
  • Houd uw IntelliCode-voltooiingen up-to-date met uw codebase en deel deze als onderdeel van de CI-werkstroomdocumentatie van uw team

.NET-productiviteit:

  • Roslyn Analyzers zijn nu opgenomen in de .NET 5.0 SDK
  • Herstructureren waarmee de nieuwe C# 9-patroonsyntaxis not wordt geïntroduceerd wanneer een onderdrukkingsoperator aanwezig is
  • Herstructurering van de inlinemethode om het gebruik van statische, instantie- en extensiemethoden binnen een enkel codeblok te vervangen.
  • Codefix om instanties van typeof naar nameof te converteren in C# en GetType naar NameOf in Visual Basic
  • C# en Visual Basic ondersteunen inline hints voor parameternaam die versieringen toevoegen voor letterlijke waarden, gecaste letterlijke waarden en objectinstanties vóór elk argument in functieaanroepen.
  • Herstructureren waarmee leden uit een geselecteerde klasse worden geëxtraheerd naar een nieuwe basisklasse in zowel C# als Visual Basic
  • Codeopruiming bevat nieuwe configuratieopties waarmee opmaak- en bestandsheadervoorkeuren kunnen worden toegepast die zijn ingesteld in uw EditorConfig-bestand in één bestand of een hele oplossing
  • Codefix om het in trefwoord te verwijderen waarbij het argument niet doorgegeven moet worden door verwijzing
  • Herstructureren waarmee de nieuwe C#9-patrooncombinaties en suggesties voor patroonkoppeling worden geïntroduceerd, zoals converteren == naar gebruik is indien van toepassing
  • Code-fix om een klas abstract te maken wanneer u een abstracte methode probeert te schrijven in een klas die niet abstract is
  • IntelliSense-voltooiing in letterlijke tekenreeksen datetime en timespan worden automatisch weergegeven wanneer de eerste aanhalingsteken wordt getypt
  • Codeoplossing om onnodige pragma suppressions en SuppressMessageAttributes te verwijderen.
  • Rename en Find All References begrijpt verwijzingen naar symbolen binnen de doeltekenreeks van globaal SuppressMessageAttributes
  • ByVal vervaagt om te zeggen dat het niet nodig is, samen met een codefix om het onnodige ByVal in Visual Basic te verwijderen
  • Interactieve vensterondersteuning voor meerdere runtimes, zoals .NET Framework en .NET Core.
  • Er is een nieuwe RegisterAdditionalFileAction-API toegevoegd waarmee analyseauteurs een analyse voor extra bestanden kunnen maken.

Visual Studio 2019 IDE:

  • Uw Github-account toevoegen met behulp van de accountbeheerervaring
  • In deze release is de verouderde ervaring Find in Files afgeschaft en worden alle gebruikers verplaatst naar de nieuwe ervaring. Het editorteam werkt samen met mensen die feedback achterlaten in de ontwikkelaarscommunity die problemen ondervinden met de moderne ervaring Find in Files.
  • De ClickOnce-publicatieprovider is nu beschikbaar voor .NET Core 3.1 en .NET 5.0 Windows Desktop-apps.

Vouw Testdetails Deelvenster van Test Explorer

  • U kunt nu tekst laten teruglopen in het Testdetails-venster van de Testverkenner.

XAML Tools (WPF, UWP, & Xamarin.Forms):

  • Diagnostische verbeteringen voor XAML-bindingsfouten
  • XAML Hot Reload-instellingen zijn verplaatst naar 'Foutopsporing > Hot Reload'
  • Bevolking van de toolbox uit onverwijzende NuGet-pakketten

JavaScript/TypeScript:

  • Het JavaScript-/TypeScript-foutopsporingsprogramma biedt nu ondersteuning voor foutopsporing van servicemedewerkers, web workers, iFrames en uw pagina JavaScript allemaal tegelijk. Bovendien voegt de nieuwe foutopsporingservaring ondersteuning toe voor het opsporen van fouten in uw servertoepassingen voor back-endknooppunten en JavaScript aan de clientzijde in de browser tegelijk. Deze functie is nog steeds experimenteel. U kunt de nieuwe foutopsporingservaring inschakelen in het menu Opties voor foutopsporing
  • U kunt nu herstructureringen activeren waar ze mogelijk beschikbaar zijn met behulp van de sneltoets voor de codeactie (ctrl + .). U hoeft zelfs geen tekst te selecteren. TypeScript is nu slim genoeg om uw cursorlocatie te bekijken voor de beste beschikbare herstructureringen.
  • U kunt nu fijn afstemmen welke pakketten TypeScript doorzoekt voor automatische importvoltooiing. Dit kan leiden tot prestatieverbeteringen in sommige projecten met veel afhankelijkheden. Raadpleeg voor meer informatie de TypeScript 4.0 (opmerkingen bij de release)[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]
  • Er is een bericht toegevoegd in het uitvoervenster met de typen die we installeren ter ondersteuning van intellisense. Het is raadzaam om een tsconfig toe te voegen aan uw project om aan te passen welke typen worden gebruikt.
  • Let op: de TypeScript 4.0-compiler en taalservice zijn opgenomen

Kennisgeving van beveiligingsadvies

CVE-2020-17100 Beveiligingsprobleem met manipulatie in Visual Studio

Er bestaat een beveiligingsprobleem met manipulatie wanneer de Python Tools voor Visual Studio de map python27 maakt. Een aanvaller die dit beveiligingsprobleem heeft misbruikt, kan processen uitvoeren in een verhoogde context.

Problemen die in deze release zijn opgelost

  • Er is een probleem opgelost waarbij het compileren in Visual Studio 2019 16.7 met de Intel C++-compiler's 80-bits long double compilerfouten genereert, waardoor projecten niet gebouwd kunnen worden.
  • Er is een probleem opgelost waarbij Live Unit Testing in sommige scenario's zou weigeren te starten.
  • .NET 5.0.RC2 toegevoegd aan Visual Studio 2019 v16.8 Preview 4
  • Er is een fout opgelost waarbij een incidentele Git-bewerking zou beginnen en nooit zou worden voltooid.
  • Extra functionaliteit toegevoegd aan het maken en verbinden van Visual Studio Codespaces.
  • Er is een fout opgelost waardoor Visual Studio 2019 vastliep of niet meer reageerde bij het sluiten of weggaan van ASP.NET Core-oplossingen.
  • Er is een probleem opgelost waarbij het C++-projectsysteem niet kan worden geladen na het verwijderen en opnieuw installeren van Visual Studio 2019.

Details van wat is er nieuw in Visual Studio 2019 versie 16.8.0

C++

  • C++20 Coroutines worden nu ondersteund onder /std:c++latest en de <coroutine> header. Ondersteuning voor ons verouderde gedrag is beschikbaar onder <experimenteel/coroutine> en de /await-switch.
  • IntelliSense biedt nu ondersteuning voor C++20 <concepten> en <ranges headers>, en het hernoemen en browsen van conceptdefinities. Er is een bekend probleem dat we verwachten op te lossen in preview 4.
  • Onze STL biedt nu ondersteuning voor het merendeel van de C++20-bereiken. U kunt onze voortgang bijhouden op de GitHub-issue van onze projecten.
  • Voorwaardelijke triviale speciale lidfuncties worden nu ondersteund in MSVC.
  • C11 en C17 worden nu ondersteund onder de schakelopties /std:c11 en /std:c17.
  • Aanvullende STL-verbeteringen omvatten volledige ondersteuning voor std::atomic_ref, std::middelpunt en std::lerp en std::execution::unseq, optimalisaties voor std::reverse_copy en meer. U vindt alle updates in ons Changelog.
  • We hebben de versie van CMake bijgewerkt die is geleverd met Visual Studio naar CMake 3.18.
  • Onze hulpprogramma's voor codeanalyse bieden nu ondersteuning voor de SARIF 2.1-standaard: de standaardindeling voor statische analyselogboeken. Meer informatie over de SARIF-indeling vindt u in de officiële specificatie.
  • Ontbrekende buildhulpprogramma's in Linux-projecten geven nu een waarschuwing op de werkbalk en een duidelijke beschrijving van de ontbrekende hulpprogramma's in de foutenlijst.
  • U kunt nu rechtstreeks vanuit Visual Studio fouten opsporen in Linux-kerndumps op een extern Linux-systeem of WSL.
  • Voor het genereren van C++-Doxygen-opmerkingen hebben we extra opties voor opmerkingsstijlen (/*! en //!) toegevoegd.
  • Aanvullende vcpkg-aankondigingen
  • We hebben compilerondersteuning toegevoegd voor lambdas in niet-geëvalueerde contexten waarmee u lambdas in decltypeaanduidingen kunt gebruiken.
  • Linter en fixups die u typt, zijn nu beschikbaar in Visual Studio. Configureren met behulp van Tools->Opties->Teksteditor->C/C++->CodeStyle->Linter + Fixups.
As-you-type linter met waarschuwing voor het gebruik van bitwise & in plaats van logische && op bools
Linter terwijl u typt

foutopsporer

Ondersteuning voor foutopsporing voor .NET Core Linux Core-dump

Het opsporen van fouten in beheerde Linux-kerndumps in Windows is tot nu toe moeilijk te realiseren. Het zou meestal betekenen dat er een andere Linux-omgeving wordt ingesteld die de productie exact gespiegeld heeft en vervolgens een set hulpprogramma's voor de analyse installeert. Gelukkig kunt u met Visual Studio 2019 16.8 preview 3 eenvoudig een beheerde Linux-kerndump rechtstreeks naar uw IDE slepen en neerzetten en direct beginnen met foutopsporing.

Automatische analyse van .NET

Asynchrone programmering bestaat al enkele jaren op het .NET-platform, maar is historisch gezien moeilijk goed uit te voeren. We hebben beheerde geheugendumpanalyses geïntroduceerd waarmee de volgende scenario's en antipatronen kunnen worden geïdentificeerd:

  • Sync-over-Async
  • Threadpool uitputting

Automatische analyse van .NET- en .NET Core-geheugen kritieke paden

Hierdoor kunnen klanten intuïtief de dominante objecttypen in hun geheugen-heap bekijken met behulp van vlamaantekeningen in het venster Diagnostisch geheugenhulpprogramma.

Neps met SDK-stijlprojecten genereren Shim-problemen

Bij het gebruik van de nieuwe Fakes-ondersteuning voor SDK-stijlprojecten hebben sommige gebruikers de volgende fout aangetroffen bij het genereren van shims.

Cannot generate shim for System.DateTime: type is not supported because of internal limitations

Er is een oplossing voor dit probleem uitgebracht in 16.8 Preview 3. Als u een versie van 16.7.* gebruikt, kunt u de volgende tijdelijke oplossing gebruiken:

  1. Voeg <FakesUseV2Generation>False</FakesUseV2Generation> toe aan een PropertyGroup in uw csproj-bestand.
  2. Voeg de <Fakes Include="Fakes\*.fakes" /> toe aan een ItemGroup in uw csproj-bestand.
  3. Voeg een verwijzing toe naar de gegenereerde Fakes assembly's in de ProjectDir/FakesAssemblies.

U kunt ook de feedback van de ontwikkelaarscommunity volgen voor aanvullende updates.

Experimentele updates voor Razor-editor

De nieuwe experimentele Razor-editor ondersteunt nu de volgende Razor-bewerkingsfuncties:

  • Blazor gloeilampen:
    • Extraheren naar achterliggende code*
    • Onderdeel maken van tag*
    • Richtlijn voor onderdeel toevoegen @using
    • Volledig gekwalificeerde naam van onderdeeltag
  • C# gloeilampen
    • Richtlijn toevoegen @using
    • Volledig gekwalificeerde typenaam
  • Verbeterde Razor-opmaak
  • Razor-componenten hernoemen in de markup van .razor-bestanden
  • Ga naar definitie van Blazor component tag-namen
  • C#-aanwijskleuring
  • C# voltooiing tooltip kleurstelling
  • Alle verwijzingen zoeken in gesloten Razor-bestanden
  • Verbeterde performance en stabiliteit bij het bewerken met Razor voor grote projecten en oplossingen.

* Werkt alleen in lokale Razor-scenario's, nog niet ondersteund in Visual Studio Codespaces of Live Share.

Als u de experimentele Razor-editor wilt inschakelen, gaat u naar Extra>Opties>Omgeving>Preview-functies, selecteert u Experimentele Razor-editor inschakelen en start u Visual Studio opnieuw.

Visual Studio 2019 IDE

  • Voeg uw GitHub-account toe met behulp van de vertrouwde Visual Studio-accountbeheerervaring. Het versiebeheer, de geïntegreerde terminal en andere functies kunnen vervolgens gebruikmaken van uw accountreferenties om te voldoen aan hun GitHub-verificatiebehoeften.
Hints voor inline parameternamen met GitHub
GitHub-accounts toevoegen in Visual Studio
  • De ClickOnce-publicatieprovider is nu beschikbaar voor .NET Core 3.1 en .NET 5.0 Windows Desktop-apps. Om aan de slag te gaan, klikt u met de rechtermuisknop op het project in Solution Explorer en selecteert u Publiceren of selecteert u het menu > Bouwen <Publiceren> voor AppName. U vindt de ClickOnce-optie onder de mapcategorie.
Inline-parameternaam aanwijzingen met GitHub-afbeelding
ClickOnce Publish provider in Visual Studio

Git-productiviteit

  • Een nieuwe vertakking maken op basis van een Azure DevOps-werkitem
Een nieuwe branche maken vanuit een Azure DevOps-werkitem
Een nieuwe vertakking maken op basis van een werkitem
  • Een Git-opslagplaats openen vanuit een lijst met uw lokale opslagplaatsen in het Git-menu
Lijst met lokale opslagplaatsen
Lijst met lokale opslagplaatsen in het Git-menu
  • De standaardprovider voor broncodebeheer is nu Git in plaats van TFVC, die u kunt wijzigen in Extra - Opties - Broncodebeheer

  • Klik om te schakelen tussen branchehistorieën in het venster Git-repository

  • Bekijken en selecteren uit een lijst met oplossingen in uw repository in Solution Explorer na het openen van een repository

Preview-functie schakelen om een lijst met weergaven weer te geven bij het openen van een opslagplaats
Previewfunctie aan/uit zetten om de lijst met weergaven te tonen bij het openen van een repository
Lijst met weergaven in Solution Explorer
Lijst van weergaven in Oplossing Verkenner

.NET-productiviteit

  • Met .NET-compilerplatformanalyses (Roslyn) inspecteert u uw C# of Visual Basic-code voor beveiliging, prestaties, ontwerp en andere problemen. Vanaf .NET 5.0 zijn deze analyses opgenomen in de .NET SDK. De analyses zijn standaard ingeschakeld voor projecten die gericht zijn op .NET 5.0 of hoger. U kunt codeanalyse inschakelen voor projecten die zich richten op eerdere .NET-versies door de eigenschap EnableNETAnalyzers in te stellen op true. U kunt codeanalyse voor uw project uitschakelen door EnableNETAnalyzers in te stellen op false. U kunt ook het venster Projecteigenschappen gebruiken om .NET Analyzers in of uit te schakelen. Als u het venster Projecteigenschappen wilt openen, klikt u met de rechtermuisknop op een project in Solution Explorer en selecteert u Eigenschappen. Selecteer vervolgens het tabblad Codeanalyse , waar u het selectievakje kunt in- of uitschakelen om .NET Analyzers in te schakelen.
Venster Projecteigenschappen om .NET Analyzers in te schakelen
Venster Projecteigenschappen om .NET Analyzers in te schakelen
  • Er is nu een herstructurering waarmee de nieuwe C# 9-patroonsyntaxis not wordt geïntroduceerd wanneer er een onderdrukkingsoperator aanwezig is. Plaats de cursor op de onderdrukkingsoperator. Druk op (Ctrl+.) om het menu Snelle acties en herstructureringen te activeren. Selecteer Patroonkoppeling gebruiken.
Herstructureren waarbij C# 9 geen overeenkomende syntaxis voor patroon wordt geïntroduceerd
Herstructureren waarbij C# 9 de not-patroonmatching-syntaxis introduceert
  • Er is nu een inline methoderefactoring waarmee u het gebruik van een statische, instantie- en extensiemethode in één enkele expressie kunt vervangen, met de mogelijkheid om de oorspronkelijke methodedeclaratie te verwijderen. Plaats de cursor op het gebruik van deze methode. Druk op (Ctrl+.) om het menu Snelle acties en herstructureringen te activeren. Selecteer vervolgens een van de volgende opties:

Selecteer Inline <QualifiedMethodName> om de declaratie van de inlinemethode te verwijderen:

Declaratie voor inlinemethode herstructureren
Inline-methode refactoren en declaratie verwijderen

Selecteer Inline en behoud <QualifiedMethodName> de oorspronkelijke methodedeclaratie:

InlineMethode declaratie met behoud herstructureren
Refactoring van inline methode met behoud van declaratie
  • Het maken van een nieuw C# of Visual Basic-bestand op basis van een sjabloon respecteert de instellingen voor de codestijl editorconfig . De volgende codestijlen worden automatisch toegepast bij het maken van nieuwe bestanden: bestandsheaders, sorteren met behulp van instructies en plaatsen met behulp van instructies binnen/buiten naamruimten.

  • Er is nu ondersteuning voor C# en Visual Basic voor hints voor inlineparameternamen die versieringen invoegen voor letterlijke waarden, gecasteerde letterlijke waarden en objectinstantie voordat elk argument in functieoproepen wordt geïnstantieerd. U moet deze optie eerst inschakelen in Extra Opties>>Teksteditor>C# of Basic>Advanced en hints voor inlineparameternaam weergeven (experimenteel) selecteren. De hints voor de inlineparameternaam worden vervolgens weergegeven in C#- of Visual Basic-bestanden.

Hints voor inlineparameternaam
Hints voor inlineparameternaam
  • U kunt nu leden uit een geselecteerde klasse extraheren naar een nieuwe basisklasse met de nieuwe herstructurering van basisklasse extraheren . Plaats de cursor op de klassenaam of een gemarkeerd lid. Druk op (Ctrl+.) om het menu Snelle acties en herstructureringen te activeren. Selecteer Lid(leden) omhoog verplaatsen naar nieuwe basisklasse. Het nieuwe dialoogvenster Basisklasse extraheren wordt geopend, waar u de naam kunt opgeven voor de basisklasse en de locatie waar deze moet worden geplaatst. U kunt de leden selecteren die u wilt overdragen naar de nieuwe basisklasse en ervoor kiezen om de leden abstract te maken door het selectievakje in de kolom Abstract maken in te schakelen.
Basisklasse extraheren
Basisklasse extraheren

Zodra u OK selecteert, ziet u dat de nieuwe basisklasse samen met de leden is toegevoegd.

Voor C# selecteert u Converteren typeof naar nameof:

Typevan converteren naar naamvan
Convert typeof naar nameof

Voor Visual Basic selecteert u Converteren GetType naar NameOf:

GetType converteren naar NameOf
GetType converteren naar NameOf
  • Codeopruiming bevat nieuwe configuratieopties waarmee opmaak- en bestandsheadervoorkeuren kunnen worden toegepast die zijn ingesteld in uw EditorConfig-bestand in één bestand of een hele oplossing.
Ondersteuning voor opmaak en bestandsheader in codeopschoning
Ondersteuning voor formattering en bestandskop bij code-opruiming
  • Er is nu een codeoplossing om het in trefwoord te verwijderen waarin het argument niet doorgegeven moet worden door verwijzing. Plaats de cursor op de fout. Druk op (Ctrl+.) om het menu Snelle acties en herstructureringen te activeren. Selecteer Het trefwoord 'in' verwijderen.
Oplossing voor trefwoordcode verwijderen
Codecorrectie voor `in`-trefwoord verwijderen
  • Er is nu een herstructurering waarin de nieuwe C#9-patrooncombinaties worden geïntroduceerd. Samen met de suggesties voor patroonkoppeling, zoals het converteren van == naar het gebruik van is waar van toepassing, stelt deze codefix ook de patrooncombinatoren and, or en not voor bij het matchen van meerdere verschillende patronen en het negateren ervan. Plaats de cursor binnen de verklaring. Druk op (Ctrl+.) om het menu Snelle acties en herstructureringen te activeren. Selecteer Patroonkoppeling gebruiken.
C#9-patrooncombinaties introduceren
C#9-patrooncombinaties introduceren
  • Er is nu een codefix om een klasse abstract te maken wanneer u een abstracte methode probeert te schrijven in een klasse die niet abstract is. Plaats de cursor op de methodefout. Druk op (Ctrl+.) om het menu Snelle acties en herstructureringen te activeren. Selecteer Klasse 'abstract' maken.
Klasse abstract maken
Klasseabstrah maken
  • In 16.7 Preview 1 hebben we IntelliSense-voltooiing toegevoegd voor DateTime- en TimeSpan-tekenreeksen. In deze release wordt deze voltooiingslijst automatisch weergegeven wanneer de eerste aanhalingstekens worden getypt. In het verleden was het nodig om (Ctrl-spatie+) te typen om deze voltooiingslijst weer te geven. Plaats de cursor in de letterlijke tekenreeks DateTime of TimeSpan en typ de eerste dubbele aanhalingsteken. Vervolgens ziet u voltooiingsopties en een uitleg over wat elk teken betekent. Zowel de datum/tijdnotatie als een voorbeeld worden gegeven.
IntelliSense-voltooiing in letterlijke tekenreeks datum/tijd en tijdspan
IntelliSense-aanvulling in de DateTime- en TimeSpan-reeksenliterals
Deze verbetering werkt ook voor geïnterpoleerde tekenreeksen wanneer u een dubbelpunt typt
Deze verbetering werkt ook voor geïnterpoleerde tekenreeksen wanneer u een dubbele punt invoert
  • Er is nu een codeoplossing om onnodige pragmaonderdrukkingen en onnodige SuppressMessageAttributes te verwijderen. Plaats de cursor op de pragma-waarschuwing of de SuppressMessageAttribute. Druk op (Ctrl+.) om het menu Snelle acties en herstructureringen te activeren. Selecteer Onnodige onderdrukking verwijderen.
Overbodige pragma's verwijderen
Overbodige pragma's verwijderen
Onnodige SuppressMessageAttributes verwijderen
Onnodige SuppressMessageAttributes verwijderen
  • Naam wijzigen en Alle verwijzingen zoeken begrijpen nu verwijzingen naar symbolen binnen de doelreeks van globale SuppressMessageAttribute suppressies.
Naam van SuppressMessageAttribute wijzigen
Naam van SuppressMessageAttribute wijzigen
Alle verwijzingen zoeken voor SuppressMessageAttribute
Alle verwijzingen zoeken voor SuppressMessageAttribute
  • Visual Basic had meerdere manieren om parameters door te geven, ByVal en ByRef, en byVal is al lang optioneel. We vervagen Nu ByVal om te zeggen dat het niet nodig is, samen met een codeoplossing om de onnodige ByVal te verwijderen. Plaats de cursor op het Trefwoord ByVal . Druk op (Ctrl+.) om het menu Snelle acties en herstructureringen te activeren. Selecteer het trefwoord 'ByVal' is niet nodig en kan verwijderd worden.
Visual Basic ByVal-refactoring opruimen
Visual Basic ByVal-herstructurering verwijderen
  • Er is nu interactieve vensterondersteuning voor meerdere runtimes, zoals .NET Framework en .NET Core.
Interactieve vensterondersteuning in .NET Core
Interactieve vensterondersteuning in .NET Core
  • Er is een nieuwe RegisterAdditionalFileAction-API waarmee analyseauteurs een analyse kunnen maken voor extra bestanden.

Detailvenster Testterugloop van Test Explorer

Met deze zeer aangevraagde functie kan de gebruiker tekstterugloop selecteren of de standaarduitlijning van de tekstregel behouden. Wanneer tekstuitlijning niet nodig is, zorgt terugloop ervoor dat de feedback van een testuitvoering gemakkelijker te bekijken is en een horizontale schuifbalk overbodig wordt. U kunt dit inschakelen vanuit het menu Instellingen van Test Explorer of het contextmenu van het deelvenster Samenvatting.

Testdetails verpakken in het menu Testinstellingen
Menu Testinstellingen
Testdetails verpakken via het contextmenu met de rechtermuisknop
Testdetails verpakken in het contextmenu met de rechtermuisknop

XAML Tools (WPF, UWP, & Xamarin.Forms)

Diagnostische verbeteringen voor XAML-bindingsfouten

Ontwikkelaars die aan WPF-, UWP-, WinUI- en Xamarin.Forms-projecten werken, moeten vaak XAML-gegevensbindingsfouten in hun toepassingen detecteren en oplossen. Om de diagnostische hulpprogramma's in dit scenario te verbeteren, hebben we twee nieuwe ervaringen toegevoegd aan Visual Studio 2019 versie 16.8 of hoger:

  • Pictogram XAML-bindingsfoutindicator: er is nu een nieuw pictogram voor XAML-bindingsfoutindicator aanwezig in de werkbalk in de app voor WPF- en UWP-projecten en in de Live Visual Tree voor alle XAML-projecten, waaronder Xamarin.Forms. Dit pictogram geeft een rode indicator weer als er ten minste één bindingsfout wordt gedetecteerd. Als u op het pictogram klikt, gaat u ook naar het nieuwe venster XAML-bindingsfouten.
Pictogram bindingsfout (werkbalk in app)
Pictogram voor bindingsfout (in-app werkbalk)
  • Venster XAML-bindingsfouten: het nieuwe venster XAML-bindingsfouten is nu beschikbaar voor WPF-, UWP-, WinUI- en Xamarin.Forms-projecten. Deze nieuwe specifieke ervaring biedt een uitgebreide gebruikersinterface voor de bindingsfout-informatie die voorheen alleen beschikbaar was in het uitvoervenster. Verbeteringen omvatten de mogelijkheid om de fouten te zien als een set kolommen die kunnen worden gesorteerd, aangepast en volledig doorzoekbaar zijn. We hebben vergelijkbare fouten ook gegroepeerd, waardoor de ruis die kan optreden tijdens een bepaalde combinatie van fouten in gegevensbindingssjablonen wordt beperkt, terwijl alle oorspronkelijke onbewerkte foutinformatie nog steeds beschikbaar is en eenvoudig kan worden gekopieerd via een menuoptie met de rechtermuisknop. (opmerking: Xamarin versie 4.5.0.266-pre3 of hoger vereist)
  • Navigeer naar bron voor bindingsfouten: In samenwerking met het WPF-team hebben we de mogelijkheid ingeschakeld om te navigeren naar de bron van bindingsfouten voor klanten die zich richten op WPF op .NET 5 (RC2 of hoger).
XAML-Bindingfout-venster & LVT-pictogram
XAML-Bindingsfoutvenster & LVT-Pictogram

XAML Hot Reload

  • Xamarin.Forms 'alleen wijzigingen' XAML Hot Reload ondersteunt nu UWP: in deze release beginnen we met de uitrol van een zeer aangevraagde functie die alleen-wijzigingen ondersteuning voor XAML Hot Reload in Xamarin.Forms-projecten mogelijk maakt wanneer ze zijn gericht op UWP. Houd er rekening mee dat deze functie nog in ontwikkeling is en terwijl het bewerken van XAML nu updates activeert in de actieve app, worden andere functies zoals in-app-werkbalk (elementselectie, enzovoort) nog niet volledig geïmplementeerd, maar zijn ze in een toekomstige release.
  • Instellingen voor XAML Hot Reload zijn verplaatst naar 'Foutopsporing > Hot Reload': In deze release hebben we de XAML Hot Reload-instellingen geconsolideerd voor WPF, UWP en Xamarin.Forms in een geïntegreerd instellingenscherm onder 'Foutopsporing Hot Reload'. We hebben ook voor het eerst de mogelijkheid ingeschakeld om XAML Hot Reload per platform uit te schakelen of in te schakelen, zodat u volledig kunt controleren wanneer deze functie beschikbaar is. (Opmerking: er worden tijdens deze migratie geen instellingen gewijzigd, zodat al uw bestaande keuzes blijven gelden net onder deze nieuwe locatie)
Geconsolideerde instellingen voor XAML Hot Reload
Geconsolideerde instellingen voor XAML Hot Reload

XAML-code-editor:

  • WinUI 3.0 IntelliSense-ondersteuning: In deze release hebben we betere IntelliSense-ondersteuning ingeschakeld voor ontwikkelaars die apps bouwen met behulp van de nieuwe WinUI 3.0 preview 3 of hoger. Zie de documentatie voor meer informatie over WinUI 3.0 en om feedback te geven naar de GitHub-opslagplaats van Windows UI XAML. Opmerking: De nieuwste WinUI 3.0 preview wordt aanbevolen op 16.9 Preview 1 voor de bijgewerkte tooling-ervaring.
  • Verbetering van MVVM-ondersteuning: Wanneer u een XAML-document ontwerpt, kunt u d:DataContext instellen om nauwkeurige binding inTelliSense voor het XAML-document op te halen. In het verleden was het handmatig opgeven van het gegevenscontexttype omslachtig; u moest het XAML-document verlaten, het gewenste type weergavemodel zoeken, de naamruimte en naam kopiëren en plakken in de declaratie d:DataContext. In deze release introduceren we een nieuwe functie waarmee u snel een d:DataContext kunt declareren via een gloeilamp waarmee mogelijke kandidaten voor het weergavemodel worden voorgesteld.
XAML IntelliSense voor MVVM d:DataContext
XAML IntelliSense voor MVVM d:DataContext

Uitbreidbaarheid

  • Werksetpopulatie van onverwijderde NuGet-pakketten: In deze release hebben we ondersteuning toegevoegd voor TargetFrameworkMoniker-specifieke VisualStudioToolsManifest.xml-bestanden bij het populeren van werksets met besturingselementen uit onverwijderde NuGet-pakketten. Uw pakket kan bijvoorbeeld verschillende sets besturingselementen beschikbaar maken voor .NET Core 3.1- en .NET 5.0-projecten.

Uit de ontwikkelaarsgemeenschap



bekende problemen

Bekijk alle openstaande problemen en beschikbare tijdelijke oplossingen in Visual Studio 2019 door de onderstaande koppeling te volgen.

Bekende problemen


Geschiedenis van releaseopmerkingen voor Visual Studio 2019

Voor meer informatie met betrekking tot eerdere versies van Visual Studio 2019, zie de pagina Geschiedenis van de releaseopmerkingen van Visual Studio 2019.