Visual Studio Icon Note sulla versione di Visual Studio 2019 versione 16.8Visual Studio 2019 version 16.8 Release Notes



Developer Community | Requisiti di sistema | Compatibilità | Codice distribuibile | Condizioni di licenza | Blog | Novità di Visual Studio DocsDeveloper Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Whats New in Visual Studio Docs


Fare clic su un pulsante per scaricare la versione più recente di Visual Studio 2019.Click a button to download the latest version of Visual Studio 2019. Per istruzioni sull'installazione e sull'aggiornamento di Visual Studio 2019, vedere Aggiornare Visual Studio 2019 alla versione più recente.For instructions on installing and updating Visual Studio 2019, see the Update Visual Studio 2019 to the most recent release. Vedere anche le istruzioni su come eseguire l'installazione offline.Also, see instructions on how to install offline.

Community Download Button Professional Download Button Enterprise Download Button


Novità in Visual Studio 2019 versione 16.8What's New in Visual Studio 2019 version 16.8

Rilasci di Visual Studio 2019 versione 16.8Visual Studio 2019 version 16.8 Releases

Note sulla versione archiviate di Visual Studio 2019Visual Studio 2019 Archived Release Notes

Blog di Visual Studio 2019Visual Studio 2019 Blog

Il blog di Visual Studio 2019 è la fonte ufficiale di informazioni dettagliate sul prodotto da parte del team Visual Studio Engineering.The Visual Studio 2019 Blog is the official source of product insight from the Visual Studio Engineering Team. È possibile trovare informazioni approfondite sulle versioni di Visual Studio 2019 nei post seguenti:You can find in-depth information about the Visual Studio 2019 releases in the following posts:


Vedere l'elenco completo di tutti gli elementi della community di sviluppatori effettuati in Visual Studio 2019 versione 16,8See this full list of all Developer Community items taken in Visual Studio 2019 version 16.8

Release Notes Icon Visual Studio 2019 versione 16.8.7Visual Studio 2019 version 16.8.7 New release icon

rilasciata il 9 marzo 2021released March 09, 2021

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.7Issues Addressed in this Release of Visual Studio 2019 version 16.8.7

Avviso di sicurezzaSecurity Advisory Notice

CVE-2021-21300 Vulnerabilità di esecuzione del codice remoto di Git per Visual Studio CVE-2021-21300 Git for Visual Studio Remote Code Execution Vulnerability

Esiste una vulnerabilità di esecuzione remota del codice quando Visual Studio clona un repository dannoso.A remote code execution vulnerability exists when Visual Studio clones a malicious repository.

CVE-2021-26701 vulnerabilità di esecuzione del codice remoto di .NET Core CVE-2021-26701 .NET Core Remote Code Execution Vulnerability

Una vulnerabilità di esecuzione del codice remoto esiste in .NET 5 e .NET Core a causa del modo in cui viene eseguita la codifica del testo.A remote code execution vulnerability exists in .NET 5 and .NET Core due to how text encoding is performed.


Release Notes Icon Visual Studio 2019 versione 16.8.6Visual Studio 2019 version 16.8.6 New release icon

rilasciata il 22 febbraio 2021released February 22, 2021

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.6Issues Addressed in this Release of Visual Studio 2019 version 16.8.6


Release Notes Icon Visual Studio 2019 versione 16.8.5Visual Studio 2019 version 16.8.5

rilasciata il 9 febbraio 2021released February 09, 2021

Avviso di sicurezzaSecurity Advisory Notice

CVE-2021-1639 Vulnerabilità di esecuzione del codice remoto del servizio di linguaggio TypeScript CVE-2021-1639 TypeScript Language Service Remote Code Execution Vulnerability

Una vulnerabilità di esecuzione del codice remoto esiste quando Visual Studio carica un repository dannoso contenente file di codice JavaScript o TypeScript.A remote code execution vulnerability exists when Visual Studio loads a malicious repository containing JavaScript or TypeScript code files.

CVE-2021-1721 vulnerabilità di tipo Denial of Service .NET Core CVE-2021-1721 .NET Core Denial of Service Vulnerability

Una vulnerabilità di tipo Denial of Service esiste quando si crea una richiesta Web HTTPS durante la compilazione della catena di certificati X509.A denial-of-service vulnerability exists when creating HTTPS web request during X509 certificate chain building.

CVE-2021-24112 .NET 5 e vulnerabilità di esecuzione del codice remoto .NET Core CVE-2021-24112 .NET 5 and .NET Core Remote Code Execution Vulnerability

Una vulnerabilità di esecuzione del codice remoto è disponibile quando si eliminano i metafile quando un'interfaccia grafica contiene ancora un riferimento a essa.A remote code execution vulnerability exists when disposing metafiles when a graphics interface still has a reference to it. Questa vulnerabilità esiste solo nei sistemi in esecuzione in MacOS o Linux.This vulnerability only exists on systems running on MacOS or Linux.

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.5Issues Addressed in this Release of Visual Studio 2019 version 16.8.5

  • È stato risolto un problema per cui l'installazione di x86 Microsoft. VCLibs appx in ExtensionSDKs è stata aggiornata con la firma corretta.Fixed an issue where x86 Microsoft.VCLibs Appx installed under ExtensionSDKs updated with correct signature.
  • Correzione di una perdita di memoria quando si utilizzano le funzionalità C++ DesignTime.Fixed a memory leak when using C++ DesignTime features.
  • Correzione di un problema per cui si verifica un'eccezione se non viene memorizzata una password durante l'importazione di un database esistente in un progetto SSDT.Fixed an issue where an exception would occur if a password is not remembered when importing an existing database into an SSDT project.
  • È stato risolto un problema per cui il pulsante pubblica è disabilitato la prima volta che i clienti pubblicano i progetti .NET Core in una cartella o in altre destinazioni di hosting.Fixed an issue where the publish button is disabled the first time customers publish .NET Core projects to a folder or other hosting targets.
  • Correzione di un blocco che si verifica occasionalmente quando gli sviluppatori aprono la pagina di visualizzazione dei profili di pubblicazione.Fixed a hang that occasionally occurred when developers opened the publish profiles view page.
  • Aggiunge il supporto per Xcode 12,4.Adds Xcode 12.4 support.

Elementi della community degli sviluppatoriItems From Developer Community


Release Notes Icon Visual Studio 2019 versione 16.8.4Visual Studio 2019 version 16.8.4

Data di rilascio: 12 gennaio 2021released January 12, 2021

Avviso di sicurezzaSecurity Advisory Notice

CVE-2021-1651 / CVE-2021-1680 Vulnerabilità di elevazione dei privilegi del servizio dell'agente di raccolta standard dell'hub di diagnostica CVE-2021-1651 / CVE-2021-1680 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

Esiste una vulnerabilità di elevazione dei privilegi quando l'agente di raccolta standard dell'hub di diagnostica gestisce in modo non corretto le operazioni sui dati.An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector incorrectly handles data operations.

CVE-2020-26870 Vulnerabilità di esecuzione remota del codice del Programma di installazione di Visual Studio CVE-2020-26870 Visual Studio Installer Remote Code Execution Vulnerability

Esiste una vulnerabilità di esecuzione remota del codice quando il Programma di installazione di Visual Studio tenta di visualizzare codice Markdown dannoso.A remote code execution vulnerability exists when the Visual Studio Installer attempts to show malicious markdown.

CVE-2021-1723 Vulnerabilità Denial of Service di ASP.NET Core e Visual Studio CVE-2021-1723 ASP.NET Core and Visual Studio Denial of Service Vulnerability

Esiste una vulnerabilità Denial of Service nel modo in cui Kestrel analizza le richieste HTTP/2.A denial of service vulnerability exists in the way Kestrel parses HTTP/2 requests.

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.4Issues Addressed in this Release of Visual Studio 2019 version 16.8.4

  • È stato risolto un problema a causa del quale è possibile che componenti di IntelliCode specifici di C# non vengano installati se IntelliCode è stato precedentemente installato da Visual Studio Marketplace nelle versioni precedenti di Visual StudioFixed an issue where C#-specific IntelliCode components may not be installed if IntelliCode had previously been installed from the Visual Studio Marketplace in older versions of Visual Studio
  • I riferimenti ai progetti transitivi vengono ora rispettati quando un progetto PackageReference fa riferimento a progetti packages.config con dipendenze PackageReference.Transitive project references are now respected when a PackageReference projects references packages.config projects with PackageReference dependencies.
  • Aggiunta del supporto di Xcode 12.3.Adds Xcode 12.3 support.
  • Correzione del supporto del simulatore x86_64 watchOS 7.0+Fixes x86_64 watchOS 7.0+ simulator support
  • Sono stati corretti falsi positivi (C33001 ~ C33005) per l'uso di varianti restituite da una funzione.We have fixed false positives (C33001 ~ C33005) for use of VARIANTs that is returned from a function.
  • Correzione per un arresto anomalo di Visual Studio in Windows Form Designer .NET Core durante la chiusura del progetto o della soluzione.Fix for intermittent VS crash in WinForms .NET Core designer while closing project or solution.
  • Progetto di database fisso: il trascinamento di un file da Esplora soluzioni in uno aperto sta eliminando il file dalla file system.Fixed Database Project: Dragging a file from solution explorer into an opened one is deleting the file from the file system!
  • Correzione facendo clic su Aggiorna in confronto schema SQL non vengono salvate le modifiche apportate al file SQLPROJFixed Clicking update on Sql Schema Compare does not save changes to sqlproj file
  • Correzione di un bug in cui le compilazioni non sono riuscite con errori "Impossibile trovare la tabella/colonna".Fixed a bug where builds failed with errors "Table/column was not found".
  • Correzione della casella di controllo "commit dopo merge" dai rami Team Explorer >.Fix "commit after merge" checkbox from Team Explorer -> Branches.
  • Correzione di un errore in cui Visual Studio potrebbe non rispondere per alcuni secondi durante la verifica della disponibilità di aggiornamenti.Fixed an error where Visual Studio may become unresponsive for several seconds while checking for updates.
  • DeploymentAppRecipe.exe strumento supporta ora l'esecuzione da qualsiasi directory corrente.DeploymentAppRecipe.exe tool now supports running from any current directory. Restituisce ora un valore restituito diverso da zero ogni volta che la distribuzione ha esito negativo e Visualizza i messaggi di errore nel flusso di errore standard.It also now returns non-zero return value whenever deployment fails and prints out error messages to standard error stream.

Dalla Developer CommunityFrom Developer Community



Release Notes Icon Visual Studio 2019 versione 16.8.3Visual Studio 2019 version 16.8.3

Data di rilascio: 08 dicembre 2020released December 08, 2020

Avviso di sicurezzaSecurity Advisory Notice

CVE-2020-17156 Vulnerabilità di esecuzione remota del codice di Visual Studio CVE-2020-17156 Visual Studio Remote Code Execution Vulnerability

Esiste una vulnerabilità di esecuzione remota del codice quando Visual Studio clona un repository dannoso.A remote code execution vulnerability exists when Visual Studio clones a malicious repository.

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.3Issues Addressed in this Release of Visual Studio 2019 version 16.8.3

  • Correzione di un errore interno del compilatore quando un modello di funzione nidificato viene definito all'esterno della classe padre.Fixed an internal compiler error when a nested function template is defined outside of the parent class.
  • Correzione di un errore C2355 non corretto quando si usa 'this' nell'inizializzatore di un membro dei dati non statico.Fixed incorrect error C2355 when 'this' is used in the initializer of a non-static data member.
  • L'errore di caricamento del set di regole è stato corretto per il set di regole personalizzato tramite l'opzione /analyze:ruleset con l'opzione /analyze:rulesetdirectory e/o /analyze:projectdirectory.Ruleset loading error has been fixed for custom ruleset using /analyze:ruleset option with /analyze:rulesetdirectory and/or /analyze:projectdirectory option.
  • Correzione per un arresto anomalo del sistema intermittente in Visual Studio durante l'uso della finestra di progettazione di .NET Core per Windows Forms.Fix for an intermittent crash in Visual Studio while using WinForms .NET Core designer.
  • Inserimento di .NET 5.0.1 in Visual Studio v 16.8.3.NET 5.0.1 insertion into Visual Studio v 16.8.3
  • È stato risolto un problema per cui alcune delle finestre degli strumenti attivate dal contesto dell'interfaccia utente possono causare l'arresto anomalo di Visual Studio.Fixed an issue where some of the UI context activiated tool windows can cause Visual Studio to crash.
  • Correzione del push dalla pagina Gestisci rami quando non è presente alcun ramo Git di rilevamento remoto.Fixed Push from Manage Branches page when there is no Git remote tracking branch.
  • Aggiunta del supporto per Xcode 12.2.Added Xcode 12.2 support.

Dalla Developer CommunityFrom Developer Community



Release Notes Icon Visual Studio 2019 versione 16.8.2Visual Studio 2019 version 16.8.2

Data di rilascio: 19 novembre 2020released November 19, 2020

Problemi risolti in questa release di Visual Studio 2019 versione 16.8.2Issues Addressed in this Release of Visual Studio 2019 version 16.8.2

  • Correzione per il bug di ottimizzazione nei cicli.Fixed for optimization bug in loops.
  • Correzione dell'errore interno del compilatore nell'implementazione dell'elisione copia garantita (funzionalità di C++17).Fixed internal compiler error in implementation of guaranteed copy elision (C++17 feature).
  • Correzione della regressione delle prestazioni di compilazione per l'uso esteso di tipi anonimi.Fixed build perf regression for large uses of anonymous types.
  • Risoluzione di un problema a causa del quale viene visualizzata una barra dorata con il messaggio "L'argomento specificato non è compreso nell'intervallo di valori validi" durante la modifica di codice C#.Resolved an issue where a gold bar with the message "Specified argument was out of the range of valid values" would appear when editing C# code.
  • Correzione di un problema che poteva causare un'eccezione MissingMethodException durante la compilazione di un progetto con modelli T4.Fixed an issue that could cause a MissingMethodException when building a project that had T4 templates.
  • Correzione di un problema a causa del quale la ricerca nella finestra di dialogo Nuovo progetto può restituire zero risultati.Fixes an issue where the search in the New Project Dialog could return zero results.

Dalla Developer CommunityFrom Developer Community



Release Notes Icon Visual Studio 2019 versione 16.8.1Visual Studio 2019 version 16.8.1

Data di rilascio: 12 novembre 2020released November 12, 2020

Problemi risolti in questa release di Visual Studio 2019 versione 16.8.1Issues Addressed in this Release of Visual Studio 2019 version 16.8.1

  • Correzione di un problema a impatto elevato per cui veniva visualizzato il messaggio "Il pacchetto 'SourceExplorerPackage' non è stato caricato correttamente"Fixed a high-impacting issue where “The 'SourceExplorerPackage' package did not load correctly.” durante la clonazione di un repository in Team Explorer.warning pops up when cloning a repo in Team Explorer. Quando veniva riscontrato questo problema, il prodotto smetteva di rispondere ai comandi.When users encountered this problem, it would cause the product to stop responding.

Release Notes Icon Visual Studio 2019 versione 16.8.0Visual Studio 2019 version 16.8.0

Data di rilascio: 10 novembre 2020released November 10, 2020

Riepilogo delle novità in questa release di Visual Studio 2019 versione 16.8Summary of What's New in this Release of Visual Studio 2019 version 16.8


F# :F#:

  • F# 5 viene ora rilasciato insieme a .NET 5F# 5 is now released alongside .NET 5
  • Miglioramenti delle prestazioni e correzioni per gli strumenti di Visual Studio con F# Tools versione 11.0.0Performance improvements and fixes for Visual Studio tooling via F# Tools version 11.0.0
  • Note sulla versione complete disponibili su GitHubFull release notes available on GitHub

C++:C++:

  • Le coroutine C++20 sono ora supportate in /std:c++latest e nell'intestazione <coroutine>.C++20 Coroutines are now supported under /std:c++latest and the <coroutine> header.
  • IntelliSense offre ora il supporto per le intestazioni C++20 <concepts> e <ranges>, nonché per la ridenominazione e l'esplorazione delle definizioni dei concetti.IntelliSense now provides support for C++20 <concepts> and <ranges> headers, and rename and browsing for concept definitions.
  • La libreria STL ora supporta la maggior parte degli intervalli C++20.Our STL now has support for the majority of C++20 Ranges.
  • In MSVC sono ora supportate le funzioni membro speciali trivial in modo condizionale.Conditionally trivial special member functions are now supported in MSVC.
  • C11 e C17 sono ora supportati nelle opzioni /std:c11 e /std:c17.C11 and C17 are now supported under the /std:c11 and /std:c17 switches.
  • Altri miglioramenti di STL includono il supporto completo per std::atomic_ref, std::midpoint and std::lerp e std::execution::unseq, ottimizzazioni per std::reverse_copy e altro.Additional STL improvements include full support for std::atomic_ref, std::midpoint and std::lerp and std::execution::unseq, optimizations for std::reverse_copy, and more.
  • Aggiornata a CMake 3.18 la versione di CMake acclusa a Visual Studio.Upgraded version of CMake shipped with Visual Studio to CMake 3.18.
  • Gli strumenti di analisi del codice supportano ora lo standard SARIF 2.1: il formato di log di analisi statica standard del settore.Our code analysis tools now support the SARIF 2.1 standard: the industry standard static analysis log format.
  • Per gli strumenti di compilazione mancanti nei progetti Linux verrà ora visualizzato un avviso sulla barra degli strumenti e sarà disponibile una descrizione chiara degli strumenti mancanti nell'elenco degli errori.Missing build tools in Linux projects will now issue a warning in the toolbar and a clear description of the missing tools in the error list.
  • È ora possibile eseguire il debug di dump core di Linux in un sistema Linux remoto o in WSL direttamente da Visual Studio.You can now debug Linux core dumps on a remote Linux system or WSL directly from Visual Studio.
  • Per la generazione di commenti Doxygen C++ sono state aggiunte altre opzioni di stile dei commenti (/*!For C++ Doxygen comment generation, we added additional comment style options (/*! e //!).and //!).
  • Altri annunci vcpkgAdditional vcpkg announcements
  • Supporto del compilatore per le espressioni lambda nei contesti non valutatiCompiler support for lambdas in unevaluated contexts
  • Prestazioni del collegamento /debug:full migliorate con la creazione di file PDB di multithreading./debug:full link performance improved by multi-threading pdb creation. Diverse applicazioni di grandi dimensioni e giochi AAA usano collegamenti da 2 a 4 volte più veloci.Several large applications and AAA games see between 2 to 4 times faster linking.
  • Il debugger di Visual Studio offre ora il supporto per char8_t.The Visual Studio debugger now has support for char8_t.
  • Supporto per i progetti ARM64 con clang-cl.Support for ARM64 projects using clang-cl.
  • Supporto per gli oggetti intrinseci Intel AMX.Intel AMX intrinsics support.

Debugger:Debugger:

  • Supporto per il debug di dump core di Linux .NET Core.NET Core Linux core dump debugging support
  • Analisi automatica di .NET e .NET Core.NET and .NET Core Auto Analysis
  • Analisi automatica del percorso critico di memoria in .NET e .NET Core.NET and .NET Core memory hot path auto analysis

Aggiornamenti dell'editor Razor sperimentale:Experimental Razor Editor Updates:

  • Lampadine in BlazorBlazor light bulbs
  • Lampadine in C#C# light bulbs
  • Formattazione Razor migliorataEnhanced Razor formatting
  • Rinominare i componenti Razor nel markup da file RAZORRename Razor components in markup from .razor files
  • Comando Vai alla definizione per lo spazio dei nomi dei tag di componenti BlazorGo-to-definition on Blazor component tag namespace
  • Colorazione al passaggio del mouse su elementi C#C# hover colorization
  • Colorazione delle descrizioni comando per il completamento di elementi C#C# completion toolitip colorization
  • Vai a definizione/implementazione per Razor, inclusi i file chiusiGo-to-definition/implementation for Razor, including closed files
  • Trova tutti i riferimenti in file Razor chiusiFind All References in closed Razor files
  • Miglioramento delle prestazioni e della stabilità di modifica Razor per progetti e soluzioni di grandi dimensioniImproved Razor editing preformance and stability for large projects and solutions

Fakes con i progetti di tipo SDK:Fakes with SDK Style Projects:

  • Usando il nuovo supporto di Fakes per i progetti di tipo SDK, alcuni utenti hanno riscontrato l'errore seguente durante la generazione degli shimWhen using the new Fakes support for SDK style projects some users encountered the following error when generating shims

Produttività Git:Git Productivity:

  • Altre informazioni sull'uso di tutte le funzionalità Git nella nuova documentazione onlineLearn more about how to use all the Git features in our new online documentation
  • Aprire la finestra Repository Git in qualsiasi momento usando la finestra delle modifiche Git, il menu Visualizza e la barra di statoOpen the Git Repository window at any time through the Git Changes window, the View menu, and the Status bar
  • Effettuare recupero, pull e push da più elementi remoti nella finestra delle modifiche GitFetch, Pull, and Push from multiple remotes in the Git Changes window
  • Visualizzare i messaggi di errore e di esito positivo per i comandi Git nella parte superiore della finestra Repository GITView success and error messages for Git commands at the top of the Git Repository window
  • Creare un nuovo ramo da un elemento di lavoro di Azure DevOps Create a new branch from an Azure DevOps work item
  • Aprire un repository Git da un elenco dei repository locali nel menu GitOpen a Git repository from a list of your local repositories in the Git menu
  • Il provider del controllo del codice sorgente predefinito ora è GIT anziché TFVCThe default source control provider is now Git instead of TFVC
  • Singolo clic per passare da una cronologia ramo all'altra nella finestra Repository GITSingle click to switch between branch histories in the Git Repository window
  • Visualizzazione e selezione da un elenco di soluzioni in Esplora soluzioni dopo l'apertura di un repositoryView and select from a list of solutions in Solution Explorer after opening a repository
  • Modificare la visualizzazione della cronologia e cercare i commit tramite una barra degli strumenti nella finestra Repository GITModify the history view and search for commits through a tool bar in the Git Repository window
  • Recupero, pull e push dalle sezioni commit in ingresso e in uscita nel grafico della cronologia di un ramoFetch, pull, and push from the incoming and outgoing commits sections in the history graph of a branch
  • Viene richiesto di creare una richiesta pull dopo aver eseguito il push di un ramo nel repository remotoGet prompted to create a pull request after pushing a branch to your remote
  • Visualizzare i nomi dei rami nei comandi Unisci e Riassegna nel menu di scelta rapida dell'elenco dei ramiView branch names in the merge and rebase commands in the branch list context menu
  • Accedere ai comandi Git tramite il menu di scelta rapida in Esplora soluzioni e nell'editorAccess Git commands through the context menu in Solution Explorer and the Editor
  • Osservare lo stato di clonazione tramite una nuova finestra di dialogo modale con l'opzione per spostare il processo in backgroundObserve clone progress through a new modal dialog with the option to move the process to the background

IntelliCode:IntelliCode:

  • Disponibilità dei completamenti IntelliCode personalizzati nella documentazione di Visual StudioGet personalized IntelliCode completions in Visual Studio documentation
  • Mantenere aggiornati i completamenti IntelliCode con la codebase e condividerli come parte della documentazione del flusso di lavoro CI del teamKeep your IntelliCode completions up-to-date with your codebase and share as part of your team's CI workflow documentation

Produttività .NET:.NET Productivity:

  • Gli analizzatori Roslyn sono ora inclusi nell'SDK .NET 5.0Roslyn analyzers are now included in the .NET 5.0 SDK
  • Refactoring che introduce la nuova sintassi dei criteri di ricerca not C# 9 quando è presente un operatore di eliminazioneRefactoring that introduces the new C# 9 not pattern matching syntax when a suppression operator is present
  • Refactoring del metodo inline per facilitare la sostituzione degli usi di un metodo statico, di istanza e di estensione nel corpo di un'unica istruzioneInline method refactoring to help replace usages of static, instance, and extension method within a single statement body
  • Correzione del codice per convertire le istanze di typeof in nameof C# e di GetType in NameOf in Visual BasicCode fix to convert instances of typeof to nameof in C# and GetType to NameOf in Visual Basic
  • Supporto per i suggerimenti per i nomi di parametro inline in C# e Visual Basic che inserisce aree di controllo per valori letterali, valori letterali con cast e creazioni di un'istanza di oggetto prima di ogni argomento nelle chiamate di funzioneC# and Visual Basic support for inline parameter name hints that inserts adornments for literals, casted literals, and object instantiations prior to each argument in function calls
  • Refactoring che estrae i membri da una classe selezionata e li inserisce in una nuova classe di base sia in C# che in Visual BasicRefactoring that extracts members from a selected class to a new base class in both C# and Visual Basic
  • In Pulizia del codice sono disponibili nuove opzioni di configurazione che consentono di applicare le preferenze relative a formattazione e intestazione del file impostate nel file EditorConfig a un singolo file o a un'intera soluzioneCode cleanup has new configuration options that can apply formatting and file header preferences set in your EditorConfig file across a single file or an entire solution
  • Correzione del codice per rimuovere la parola chiave in dove l'argomento non deve essere passato per riferimentoCode fix to remove the in keyword where the argument should not be passed by reference
  • Refactoring che introduce i nuovi combinatori di criteri C# 9 e suggerimenti per i criteri di ricerca, convertendo ad esempio == in modo che usi is dove applicabileRefactoring that introduces the new C#9 pattern combinators and pattern matching suggestions such as converting == to use is where applicable
  • Correzione del codice per impostare una classe come astratta quando si tenta di scrivere un metodo astratto in una classe non astrattaCode fix to make a class abstract when you are trying to write an abstract method in a class that is not abstract
  • Il completamento IntelliSense nei valori letterali stringa DateTime e TimeSpan viene visualizzato automaticamente quando viene digitata la prima virgolettaIntelliSense completion in DateTime and TimeSpan string literals automatically appear when the first quote is typed
  • Correzione del codice per rimuovere pragma suppressions non necessari e SuppressMessageAttributes non necessariCode fix to remove unnecessary pragma suppressions and unnecessary SuppressMessageAttributes
  • Rename e Find All References interpreta i riferimenti ai simboli all'interno della stringa di destinazione di SuppressMessageAttributes globaleRename and Find All References understands references to symbols within the target string of global SuppressMessageAttributes
  • ByVal risulta ombreggiato per segnalare che non è necessario ed è stata introdotta una correzione del codice per rimuovere le occorrenze non necessarie di ByVal in Visual BasicByVal fades to say it's not necessary along with a code fix to remove the unnecessary ByVal in Visual Basic
  • Supporto della finestra interattiva per più runtime, ad esempio .NET Framework e .NET Core.Interactive window support for multiple runtimes, such as .NET Framework and .NET Core.
  • Aggiunta una nuova API RegisterAdditionalFileAction che consente agli autori di analizzatori di creare un analizzatore per file aggiuntivi.Added a new RegisterAdditionalFileAction API that allows analyzer authors to create an analyzer for additional files.

IDE di Visual Studio 2019:Visual Studio 2019 IDE:

  • Aggiungere l'account GitHub personale usando l'esperienza di gestione degli accountAdd your Github account using the account management experience
  • In questa versione, l'esperienza Cerca nei file legacy è stata deprecata e tutti gli utenti vengono indirizzati alla nuova esperienza.In this release, the legacy Find in Files experience has been deprecated and all users are being moved to the new experience. Il team dell'editor sta collaborando con le persone che lasciano commenti e suggerimenti in Developer Community e che riscontrano problemi con l'esperienza moderna di Cerca nei file.The Editor team is working with folks who leave feedback in Developer Community who are experiencing issues with the modern Find in Files experience.
  • Il provider di pubblicazione ClickOnce è ora disponibile per le app desktop Windows di .NET Core 3.1 e .NET 5.0.The ClickOnce publish provider is now available for .NET Core 3.1 and .NET 5.0 Windows Desktop Apps.

A capo del testo nel riquadro Dettagli test di Esplora test:Wrap Test Details Pane of Test Explorer:

  • È ora possibile mandare a capo il testo nel riquadro Dettagli test di Esplora test.You can now wrap text in the Test Details pane of the test explorer.

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

  • Miglioramenti alla diagnostica degli errori di binding XAMLXAML Binding Failures diagnostic improvements
  • Impostazioni di ricaricamento rapido XAML spostate in "Debug > Ricaricamento rapido"XAML Hot Reload Settings moved to "Debugging > Hot Reload"
  • Popolamento della casella degli strumenti da pacchetti NuGet senza riferimentiToolbox population from unreferenced NuGet packages

JavaScript/TypeScript:JavaScript/TypeScript:

  • il debugger JavaScript/TypeScript supporta ora contemporaneamente i processi di lavoro dei servizi di debug, Web worker, iFrame e la pagina JavaScript.The JavaScript/TypeScript debugger now supports debugging service workers, web workers, iFrames, and your page JavaScript all at the same time! Inoltre, la nuova esperienza di debug aggiunge il supporto simultaneo per il debug di applicazioni server del nodo back-end e JavaScript sul lato client nel browser.In addition, the new debugging experience adds support for debugging your back-end node server applications and client-side JavaScript in the browser simultaneously. Questa funzionalità è ancora sperimentale.This feature is still experimental. È possibile abilitare la nuova esperienza di debug nel menu Opzioni di debugYou can enable the new debugging experience in the Debugging options menu
  • È ora possibile attivare il refactoring ovunque sia possibile usando la scelta rapida da tastiera per l'azione del codice (CTRL+.).You can now trigger refactors anywhere they might be available by using the code action shortcut (ctrl + .). Non è necessario selezionare un testo perché TypeScript ora è abbastanza intelligente da trovare vicino alla posizione del cursore il punto migliore per il refractoring.You don't even need to select any text - TypeScript is now smart enough to look around your cursor location for the best available refactors!
  • È ora possibile ottimizzare i pacchetti che TypeScript cerca per il completamento automatico dell'importazione.You can now fine tune which packages TypeScript searches for automatic import completion. In questo modo si possono migliorare le prestazioni in alcuni progetti con numerose dipendenze.This can lead to performance improvements in some projects with a lot of dependencies. Per maggiori dettagli, vedere le note sulla versione di TypeScript 4.0 [https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html ]For more details, please reference the TypeScript 4.0 (release notes)[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]
  • È stato aggiunto un messaggio nel riquadro Output per indicare i tipi da installare per il supporto di IntelliSense.We added a message in the output pane showing which types we install to support intellisense. È consigliabile aggiungere un elemento tsconfig al progetto per personalizzare i tipi usati.We recommend adding a tsconfig to your project to customize which types are used.
  • Si noti che sono inclusi il compilatore e il servizio di linguaggio di TypeScript 4.0Please note we include the TypeScript 4.0 compiler and language service

Avviso di sicurezzaSecurity Advisory Notice

CVE-2020-17100 Vulnerabilità alla manomissione di Visual Studio CVE-2020-17100 Visual Studio Tampering Vulnerability

Quando Python Tools per Visual Studio crea la cartella python27, esiste una vulnerabilità alla manomissione.A tampering vulnerability exists when the Python Tools for Visual Studio creates the python27 folder. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eseguire processi in un contesto con privilegi elevati.An attacker who successfully exploited this vulnerability could run processes in an elevated context.

Problemi risolti in questa releaseIssues Addressed in this Release

  • È stato risolto un problema per cui la compilazione in Visual Studio 2019 16.7 con il compilatore Intel C++ long double 80 bit generava errori, impedendo la compilazione dei progetti.Fixed an issue where compiling in Visual Studio 2019 16.7 with the Intel C++ Compiler's 80-bit long double emits compiler errors, preventing projects from building.
  • Risolto un problema per cui Live Unit Testing non si avviava in alcuni scenari.Fixed an issue where Live Unit Testing would refuse to start in some scenarios.
  • .NET 5.0.RC2 è stato aggiunto a Visual Studio 2019 v16.8 Preview 4.NET 5.0.RC2 added to Visual Studio 2019 v16.8 Preview 4
  • È stato corretto un bug per cui un'operazione Git occasionale veniva avviata e mai completata.Fixed a bug where an occasional Git operation would begin and never finish.
  • Aggiunta di funzionalità aggiuntive per la creazione e la connessione di Visual Studio Codespaces.Added additional functionality to Visual Studio Codespaces creation and connection. Eseguire l'iscrizione per gli spazi dei nomi per Visual Studio per provare.Sign-up for Codespaces for Visual Studio to give it a try.
  • Correzione di un bug che causava l'arresto anomalo o il blocco di Visual Studio 2019 alla chiusura o all'uscita da soluzioni ASP.NET Core.Fixed a bug causing Visual Studio 2019 to crash or stop responding when closing or navigating away from ASP.NET Core solutions.
  • Correzione di un problema a causa del quale si verifica un errore di caricamento del sistema di progetto C++ dopo la disinstallazione e la reinstallazione di Visual Studio 2019.Fixed an issue where C++ project system would fail to load after uninstalling and reinstalling Visual Studio 2019.

Dettagli delle novità di Visual Studio 2019 versione 16.8.0Details of What's New in Visual Studio 2019 version 16.8.0

C++C++

  • Le coroutine C++20 sono ora supportate in /std:c++latest e nell'intestazione .C++20 Coroutines are now supported under /std:c++latest and the header. Il supporto per il comportamento legacy è disponibile in <experimental/coroutine> e nell'opzione /await.Support for our legacy behaviour is available under <experimental/coroutine> and the /await switch.
  • IntelliSense offre ora il supporto per le intestazioni C++20 e , nonché per la ridenominazione e l'esplorazione delle definizioni dei concetti.IntelliSense now provides support for C++20 and headers, and rename and browsing for concept definitions. Esiste un problema noto di cui è prevista la risoluzione nella versione Preview 4.There is a known issue that we expect to address in Preview 4.
  • La libreria STL ora supporta la maggior parte degli intervalli C++20.Our STL now has support for the majority of C++20 Ranges. È possibile tenere traccia dello stato nelle informazioni sul problema degli intervalli di GitHub.You can track our progress on our ranges GitHub issue.
  • In MSVC sono ora supportate le funzioni membro speciali trivial in modo condizionale.Conditionally trivial special member functions are now supported in MSVC.
  • C11 e C17 sono ora supportati nelle opzioni /std:c11 e /std:c17.C11 and C17 are now supported under the /std:c11 and /std:c17 switches.
  • Altri miglioramenti di STL includono il supporto completo per std::atomic_ref, std::midpoint and std::lerp e std::execution::unseq, ottimizzazioni per std::reverse_copy e altro.Additional STL improvements include full support for std::atomic_ref, std::midpoint and std::lerp and std::execution::unseq, optimizations for std::reverse_copy, and more. È possibile trovare tutti gli aggiornamenti nel log delle modifiche.You can find all the updates in our Changelog.
  • La versione di CMake fornita con Visual Studio è stata aggiornata a CMake 3.18.We have upgraded the version of CMake shipped with Visual Studio to CMake 3.18.
  • Gli strumenti di analisi del codice supportano ora lo standard SARIF 2.1: il formato di log di analisi statica standard del settore.Our code analysis tools now support the SARIF 2.1 standard: the industry standard static analysis log format. Per altre informazioni sul formato SARIF, vedere la specifica ufficiale.You can read more about the format SARIF format in the official specification.
  • Per gli strumenti di compilazione mancanti nei progetti Linux verrà ora visualizzato un avviso sulla barra degli strumenti e sarà disponibile una descrizione chiara degli strumenti mancanti nell'elenco degli errori.Missing build tools in Linux projects will now issue a warning in the toolbar and a clear description of the missing tools in the error list.
  • È ora possibile eseguire il debug di dump core di Linux in un sistema Linux remoto o in WSL direttamente da Visual Studio.You can now debug Linux core dumps on a remote Linux system or WSL directly from Visual Studio.
  • Per la generazione di commenti Doxygen C++ sono state aggiunte altre opzioni di stile dei commenti (/*!For C++ Doxygen comment generation, we added additional comment style options (/*! e //!).and //!).
  • Altri annunci vcpkgAdditional vcpkg announcements
  • È stato aggiunto il supporto del compilatore per le espressioni lambda nei contesti non valutati che consente di usare espressioni lambda negli identificatori decltype.We have added compiler support for lambdas in unevaluated contexts which allows you to use lambdas in decltype specifiers.
  • In Visual Studio sono ora disponibili linter e correzioni durante la digitazione.As-you-type linter and fixups are now available in Visual Studio. Configurare tramite Strumenti->Opzioni->Editor di testo->C/C++->Stile codice->Linter + Fixups (Linter e correzioni).Configure using Tools->Options->Text Editor->C/C++->CodeStyle->Linter + Fixups.
As-you-type linter showing warning for using bitwise & instead of logical && on bools
Linter durante la digitazioneAs-you-type linter

DebuggerDebugger

Supporto per il debug di dump core di Linux .NET Core.NET Core Linux core dump debugging support

Il debug di dump core di Linux gestiti in Windows è stato difficile da eseguire fino a questo momento. In genere, significa configurare un altro ambiente Linux che rispecchia esattamente l'ambiente di produzione e quindi installare un set di strumenti per l'analisi.Debugging managed Linux core dumps on Windows has been difficult realize until now, it would usually mean setting up another Linux environment that exactly mirrored production and then installing a set of tools for the analysis. Fortunatamente con Visual Studio 2019 16.8 Preview 3 è possibile semplicemente trascinare un dump core di Linux gestito direttamente nell'IDE e avviare immediatamente il debug.Thankfully with Visual Studio 2019 16.8 preview 3 you can simply drag and drop a managed Linux core dump directly into your IDE and immediately start debugging.

Analisi automatica di .NET.NET Auto Analysis

La programmazione asincrona (async) è una tecnica disponibile da diversi anni per la piattaforma .NET, ma storicamente molto difficile da gestire bene.Asynchronous (async) programming has been around for several years on the .NET platform but has historically been difficult to do well. È stato introdotto un analizzatore di dump di memoria gestito che consente di identificare i seguenti scenari e anti-pattern:We have introduced managed memory dump analyzers that helps identify the following scenarios and anti-patterns:

  • Sync-over-AsyncSync-over-Async
  • Esaurimento ThreadPoolThreadpool exhaustion

Analisi automatica del percorso critico di memoria in .NET e .NET Core.NET and .NET Core memory hot path auto analysis

Ciò consente ai clienti di visualizzare in modo intuitivo i tipi di oggetti dominanti nell'heap di memoria usando le annotazioni flame nella finestra dello strumento di diagnostica della memoria.This allows customers to intuitively view the dominating object types in their memory heap by using flame annotations in the Diagnostics Memory Tool window.

Problemi di generazione di shim con Fakes con i progetti di tipo SDKFakes with SDK Style Projects Generate Shim Issues

Quando si usa il nuovo supporto di Fakes per i progetti di tipo SDK, alcuni utenti hanno riscontrato l'errore seguente durante la generazione degli shim.When using the new Fakes support for SDK style projects some users encountered the following error when generating shims.

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

Una correzione per questo problema è stata rilasciata nella versione 16.8 Preview 3.A fix for this is released in 16.8 Preview 3. Se si usa una versione 16,7.*, è possibile usare la soluzione alternativa seguente:If you are using a 16.7.* release you can use the following workaround:

  1. Aggiungere <FakesUseV2Generation>False</FakesUseV2Generation> a un PropertyGroup nel file csproj.Add <FakesUseV2Generation>False</FakesUseV2Generation> to a PropertyGroup in your csproj file.
  2. Aggiungere <Fakes Include="Fakes\.fakes" /> a un ItemGroup nel file csproj.Add the <Fakes Include="Fakes\.fakes" /> to an ItemGroup in your csproj file.
  3. Aggiungere un riferimento agli assembly Fakes generati in ProjectDir/FakesAssemblies.Add a reference to the generated Fakes assemblies in the ProjectDir/FakesAssemblies.

Per ulteriori aggiornamenti, è anche possibile seguire i commenti e suggerimenti in Developer Community.You can also follow the developer community feedback for additional updates.

Aggiornamenti dell'editor Razor sperimentaleExperimental Razor editor updates

Il nuovo editor Razor sperimentale supporta ora le funzionalità di modifica di Razor seguenti:The new experimental Razor editor now supports the following Razor editing features:

  • Lampadine in Blazor:Blazor light bulbs:
    • Estrazione in code-behind*:Extract to code behind*:
    • Creazione di componenti da tag*Create component from tag*
    • Aggiunta direttiva @using per il componenteAdd @using directive for component
    • Nome completo del tag del componenteFully qualify component tag name
  • Lampadine in C#C# light bulbs
    • Aggiunta direttiva @usingAdd @using directive
    • Tipo nome completoFully qualify type name
  • Formattazione Razor migliorataEnhanced Razor formatting
  • Rinominare i componenti Razor nel markup da file RAZORRename Razor components in markup from .razor files
  • Comando Vai alla definizione per i nomi di tag di componenti BlazorGo-to-definition on Blazor component tag names
  • Colorazione al passaggio del mouse su elementi C#C# hover colorization
  • Colorazione delle descrizioni comando per il completamento di elementi C#C# completion toolitip colorization
  • Trova tutti i riferimenti in file Razor chiusiFind All References in closed Razor files
  • Miglioramento delle prestazioni e della stabilità di modifica Razor per progetti e soluzioni di grandi dimensioniImproved Razor editing preformance and stability for large projects and solutions

* Funziona solo negli scenari Razor locali, non ancora supportati negli spazi di codeLive Share o in Visual Studio.* Only works in local Razor scenarios, not supported yet in Visual Studio Codespaces or Live Share.

Per abilitare l'editor Razor sperimentale, passare a Strumenti > Opzioni > Ambiente > Funzionalità di anteprima, selezionare Enable experimental Razor editor (Abilita editor Razor sperimentale) e quindi riavviare Visual Studio.To enable the experimental Razor editor, go to Tools > Options > Environment > Preview Features, select Enable experimental Razor editor, and then restart Visual Studio.

IDE di Visual Studio 2019Visual Studio 2019 IDE

  • Aggiungere l'account GitHub personale usando l'esperienza nota di gestione degli account di Visual Studio.Add your GitHub account using the familiar Visual Studio account management experience. Il controllo della versione, il terminale integrato e altre funzionalità potranno quindi sfruttare le credenziali dell'account per soddisfare le esigenze di autenticazione di GitHub.The version control, integrated terminal and other features will then be able to leverage your account credentials to satisfy their GitHub authentication needs.
Inline parameter name hints with GitHub
Aggiunta di account GitHub in Visual StudioAdding GitHub accounts in Visual Studio
  • Il provider di pubblicazione ClickOnce è ora disponibile per le app desktop Windows di .NET Core 3.1 e .NET 5.0.The ClickOnce publish provider is now available for .NET Core 3.1 and .NET 5.0 Windows Desktop Apps. Per iniziare, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e selezionare Pubblica oppure selezionare il menu Compilazione > Pubblica in .To get started, right click on the project in Solution Explorer and select Publish, or select the Build > Publish menu. È possibile trovare ClickOnce nella categoria Cartella.ClickOnce can be found under the Folder Category.
Inline parameter name hints with GitHub Image
Provider di pubblicazione ClickOnce in Visual StudioClickOnce Publish provider in Visual Studio

Produttività GitGit Productivity

  • Creare un nuovo ramo da un elemento di lavoro di Azure DevOps

    Create a new branch from an Azure DevOps work itemCreate a new branch from an Azure DevOps work item
    Create a new branch from an Azure DevOps work item
    Creare un nuovo ramo da un elemento di lavoroCreate a new branch from a work item

  • Aprire un repository Git da un elenco dei repository locali nel menu GitOpen a Git repository from a list of your local repositories in the Git menu

Local Repositories list
Elenco dei repository locali nel menu GitList of local repositories in Git menu
  • Il provider del controllo del codice sorgente predefinito è ora Git anziché TFVC ed è possibile modificarlo in Strumenti - Opzioni - Controllo del codice sorgenteThe default source control provider is now Git instead of TFVC, which you can change from Tools - Options - Source Control

  • Singolo clic per passare da una cronologia ramo all'altra nella finestra Repository GITSingle click to switch between branch histories in the Git Repository window

  • Visualizzazione e selezione da un elenco di soluzioni nel repository in Esplora soluzioni dopo l'apertura di un repository

    Preview Feature toggle to show list of Views when opening a repoView and select from a list of solutions in your repo in Solution Explorer after opening a repository
    Preview Feature toggle to show list of Views when opening a repo
    Interruttore Funzionalità di anteprima per visualizzare l'elenco delle visualizzazioni all'apertura di un repositoryPreview Feature toggle to show list of Views when opening a repo

List of Views in Solution Explorer
Elenco delle visualizzazioni in Esplora soluzioniList of Views in Solution Explorer

Produttività .NET.NET Productivity

  • Gli analizzatori della piattaforma del compilatore .NET (Roslyn) ispezionano il codice C# o Visual Basic per individuare problemi a livello di sicurezza, prestazioni, progettazione e di altro tipo..NET compiler platform (Roslyn) analyzers inspect your C# or Visual Basic code for security, performance, design, and other issues. A partire da .NET 5.0 questi analizzatori sono inclusi in .NET SDK.Starting in .NET 5.0, these analyzers are included with the .NET SDK. Per impostazione predefinita, gli analizzatori sono abilitati per i progetti destinati a .NET 5.0 o versione successiva.The analyzers are enabled, by default, for projects that target .NET 5.0 or later. È possibile abilitare l'analisi del codice per i progetti destinati a versioni precedenti di .NET impostando la proprietà EnableNETAnalyzers su true.You can enable code analysis on projects that target earlier .NET versions by setting the EnableNETAnalyzers property to true. È possibile disabilitare l'analisi del codice per il progetto impostando EnableNETAnalyzers su false.You can disable code analysis for your project by setting EnableNETAnalyzers to false. È anche possibile usare la finestra Proprietà progetto per abilitare o disabilitare gli analizzatori .NET.You can also use the Project Properties window to enable/disable .NET analyzers. Per accedere alla finestra Proprietà progetto, fare clic con il pulsante destro del mouse su un progetto in Esplora soluzioni e scegliere Proprietà.To access the Project Properties window right-click on a project within Solution Explorer and select Properties. Selezionare quindi la scheda Analisi codice in cui è possibile selezionare o deselezionare la casella di controllo Enable .NET analyzers (Abilita analizzatori .NET).Next, select the Code Analysis tab where you can either select or clear the checkbox to Enable .NET analyzers.
Project Properties window to enable .NET Analyzers
Finestra Proprietà progetto per abilitare gli analizzatori .NETProject Properties window to enable .NET Analyzers
  • È ora disponibile un refactoring che introduce la nuova sintassi dei criteri di ricerca not C# 9 quando è presente un operatore di eliminazione.There is now a refactoring that introduces the new C# 9 not pattern matching syntax when a suppression operator is present. Posizionare il cursore sull'operatore di eliminazione.Place your cursor on the suppression operator. Premere (Ctrl+ . ) per attivare il menu Azioni rapide e refactoring.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Selezionare Usa i criteri di ricerca.Select Use pattern matching.
Refactoring introducing C# 9 not pattern matching syntax
Refactoring che introduce la nuova sintassi dei criteri di ricerca not C# 9Refactoring introducing C# 9 not pattern matching syntax
  • È ora disponibile un refactoring del metodo inline che consente di sostituire gli utilizzi di un metodo statico, di istanza e di estensione all'interno di un singolo corpo dell'istruzione con un'opzione per rimuovere la dichiarazione del metodo originale.There is now an inline method refactoring that helps you replace usages of a static, instance, and extension method within a single statement body with an option to remove the original method declaration. Posizionare il cursore sull'utilizzo del metodo.Place your cursor on the usage of the method. Premere (Ctrl+ . ) per attivare il menu Azioni rapide e refactoring.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Selezionare quindi una delle opzioni seguenti:Next select from one of the following options:

Selezionare Inline <QualifiedMethodName> (NomeMetodo inline) per rimuovere la dichiarazione del metodo inline:

Inline Method refactoring removing declarationSelect Inline <QualifiedMethodName> to remove the inline method declaration:
Inline Method refactoring removing declaration
Refactoring del metodo inline per la rimozione della dichiarazioneInline Method refactoring removing declaration

Selezionare Inline and keep <QualifiedMethodName> (NomeMetodo inline e mantieni) per mantenere la dichiarazione del metodo originale:

Inline Method refactoring preserving declarationSelect Inline and keep <QualifiedMethodName> to preserve the original method declaration:
Inline Method refactoring preserving declaration
Refactoring del metodo inline per mantenere la dichiarazioneInline Method refactoring preserving declaration

  • La creazione di un nuovo file C# o Visual Basic da un modello rispetta le impostazioni di stile del codice di EditorConfig.Creating a new C# or Visual Basic file from a template respects EditorConfig code style settings. Gli stili del codice seguenti verranno applicati automaticamente durante la creazione di nuovi file: intestazioni di file, ordinamento delle direttive using e posizionamento delle direttive using all'interno o all'esterno degli spazi dei nomi.The following code styles will automatically get applied when creating new files: file headers, sort using directives, and place using directives inside/outside namespaces.

  • È ora disponibile il supporto per i suggerimenti per i nomi di parametro inline in C# e Visual Basic. Tale funzionalità inserisce aree di controllo per valori letterali, valori letterali con cast e creazioni di un'istanza di oggetto prima di ogni argomento nelle chiamate di funzione.There is now C# and Visual Basic support for inline parameter name hints that inserts adornments for literals, casted literals, and object instantiations prior to each argument in function calls. È prima necessario attivare questa opzione in Strumenti > Opzioni > Editor di testo > C# o Basic > Avanzate e selezionare Visualizza suggerimenti per i nomi di parametro inline (sperimentale) .You will first need to turn this option on in Tools > Options > Text Editor > C# or Basic > Advanced and select Display inline parameter name hints (experimental). I suggerimenti per i nomi di parametro inline verranno quindi visualizzati nel file di C# o Visual Basic.The inline parameter name hints will then appear in C# or Visual Basic file.

Inline parameter name hints
Suggerimenti per i nomi di parametri inlineInline Parameter Name Hints
  • È ora possibile estrarre i membri da una classe selezionata a una nuova classe di base con il nuovo refactoring Estrai classe di base.You can now extract members from a selected class to a new base class with the new Extract Base Class refactoring. Posizionare il cursore sul nome della classe o su un membro evidenziato.Place your cursor on either the class name or a highlighted member. Premere (Ctrl+ . ) per attivare il menu Azioni rapide e refactoring.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Selezionare Esegui pull dei membri fino alla nuova classe di base.Select Pull member(s) up to new base class. Verrà visualizzata la nuova finestra di dialogo Estrai classe di base in cui è possibile specificare il nome della classe di base e il percorso in cui deve essere inserita.The new Extract Base Class dialog will open where you can specify the name for the base class and location of where it should be placed. È possibile selezionare i membri da trasferire nella nuova classe di base e scegliere di rendere i membri astratti selezionando la casella di controllo nella colonna Rendi astratto.You can select the members that you want to transfer to the new base class and choose to make the members abstract by selecting the checkbox in the Make Abstract column.
Extract Base Class
Estrai classe di baseExtract Base Class

Fare clic su OK per visualizzare la nuova classe di base aggiunta unitamente ai relativi membri.Once you select Ok you will see the new base class added along with its members.

Per C# selezionare Convertire typeof in nameof :For C#, select Convert typeof to nameof:

Convert typeof to nameof
Convertire typeof in nameofConvert typeof to nameof

Per Visual Basic selezionare Convertire GetType in NameOf :For Visual Basic, select Convert GetType to NameOf:

Convert GetType to NameOf
Convertire GetType in NameOfConvert GetType to NameOf
  • In Pulizia del codice sono disponibili nuove opzioni di configurazione che consentono di applicare le preferenze relative a formattazione e intestazione del file impostate nel file EditorConfig a un singolo file o a un'intera soluzione.Code cleanup has new configuration options that can apply formatting and file header preferences set in your EditorConfig file across a single file or an entire solution.
Formatting and File Header support in Code Cleanup
Supporto per formattazione e intestazione del file in Pulizia del codiceFormatting and File Header support in Code Cleanup
  • È ora disponibile una correzione del codice per rimuovere la parola chiave in in cui l'argomento non deve essere passato per riferimento.There is now a code fix to remove the in keyword where the argument should not be passed by reference. Posizionare il cursore sull'errore.Place your cursor on the error. Premere (Ctrl+ . ) per attivare il menu Azioni rapide e refactoring.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Selezionare Rimuovi la parola chiave 'in' .Select Remove ‘in’ keyword.
Remove in keyword code fix
Correzione del codice per Rimuovi la parola chiave `in`Remove `in` Keyword Code Fix
  • È ora disponibile un refactoring che introduce i nuovi combinatori di criteri C#9.There is now a refactoring that introduces the new C#9 pattern combinators. Insieme ai suggerimenti per i criteri di ricerca, ad esempio la conversione di == per l'uso di is se applicabile, questa correzione del codice suggerisce anche i combinatori di criteri and, or e not per l'individuazione di più criteri diversi e la negazione.Along with the pattern matching suggestions such as converting == to use is where applicable, this code fix also suggests the pattern combinators and, or and not when matching multiple different patterns and negating. Posizionare il cursore all'interno dell'istruzione.Place your cursor inside the statement. Premere (Ctrl+ . ) per attivare il menu Azioni rapide e refactoring.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Selezionare Usa i criteri di ricerca.Select Use pattern matching.
Introduce C#9 Pattern Combinators
Introduzione dei combinatori di criteri C#9Introduce C#9 Pattern Combinators
  • È ora disponibile una correzione del codice per impostare una classe come astratta quando si tenta di scrivere un metodo astratto in una classe non astratta.There is now a code fix to make a class abstract when you are trying to write an abstract method in a class that is not abstract. Posizionare il cursore sull'errore del metodo.Place your cursor on the method error. Premere (Ctrl+ . ) per attivare il menu Azioni rapide e refactoring.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Selezionare Make class 'abstract' (Imposta classe come 'abstract').Select Make class ‘abstract’.
Make Class Abstract
Impostare una classe come astrattaMake Class Abstract
  • Nella versione 16.7 Preview 1 è stato aggiunto il completamento IntelliSense nei valori letterali stringa DateTime e TimeSpan.In 16.7 Preview 1 we added IntelliSense completion in DateTime and TimeSpan string literals. In questa versione, questo elenco di completamento viene visualizzato automaticamente quando viene digitata la prima virgoletta.In this release, this completion list automatically appears when the first quote is typed. In passato era necessario digitare (CTRL+BARRA SPAZIATRICE) per visualizzare questo elenco di completamento.In the past, it was required to type (Ctrl+space) to view this completion list. Posizionare il cursore all'interno del valore letterale stringa DateTime o TimeSpan e digitare le prime virgolette doppie.Place your cursor inside the DateTime or TimeSpan string literal and type the first double quote. Verranno quindi visualizzate le opzioni di completamento e una spiegazione relativa al significato di ogni carattere.You will then see completion options and an explanation as to what each character means. Verranno visualizzati il formato di data e ora e un esempio.Both the date time format and an example will be provided.
IntelliSense Completion in DateTime and TimeSpan String Literals
Completamento IntelliSense nei valori letterali stringa DateTime e TimeSpanIntelliSense Completion in DateTime and TimeSpan string Literals
This improvement also works for interpolated strings when you type a colon
Questo miglioramento funziona anche per le stringhe interpolate quando si digita un segno di due puntiThis improvement also works for interpolated strings when you type a colon
  • È ora disponibile una correzione del codice per rimuovere le eliminazioni pragma e le occorrenze di SuppressMessageAttributes non necessarie.There is now a code fix to remove unnecessary pragma suppressions and unnecessary SuppressMessageAttributes. Posizionare il cursore nell'avviso pragma o su SuppressMessageAttribute.Place your cursor on the pragma warning or the SuppressMessageAttribute. Premere (Ctrl+ . ) per attivare il menu Azioni rapide e refactoring.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Selezionare Rimuovi l'operatore di eliminazione non necessario.Select Remove unnecessary suppression.
Remove Unnecessary Pragmas
Rimuovere le eliminazioni pragma non necessarieRemove Unnecessary Pragmas
Remove Unnecessary SuppressMessageAttributes
Rimuovere le occorrenze di SuppressMessageAttributes non necessarieRemove Unnecessary SuppressMessageAttributes
  • I comandi Rinomina e Trova tutti i riferimenti riconoscono ora i riferimenti ai simboli all'interno della stringa di destinazione delle eliminazioni di SuppressMessageAttribute globali.Rename and Find All References now understands references to symbols within the target string of global SuppressMessageAttribute suppressions.
Rename SuppressMessageAttribute
Rinominare SuppressMessageAttributeRename SuppressMessageAttribute
Find All References for SuppressMessageAttribute
Trovare tutti i riferimenti per SuppressMessageAttributeFind All References for SuppressMessageAttribute
  • Visual Basic includeva diversi modi per passare parametri, ByVal e ByRef e per molto tempo ByVal è stato facoltativo.Visual Basic had multiple ways of passing parameters, ByVal and ByRef, and for a long time ByVal has been optional. ByVal risulta ora ombreggiato per segnalare che non è necessario ed è stata introdotta una correzione del codice per rimuovere le occorrenze non necessarie di ByVal.We now fade ByVal to say it's not necessary along with a code fix to remove the unnecessary ByVal. Posizionare il cursore sulla parola chiave ByVal.Place your cursor on the ByVal keyword. Premere (Ctrl+ . ) per attivare il menu Azioni rapide e refactoring.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. La selezione della parola chiave 'ByVal' non è necessaria e può essere rimossa.Select ‘ByVal’ keyword is unnecessary and can be removed.
Visual Basic Remove ByVal Refactoring
Visual Basic rimuove il refactoring di ByValVisual Basic Remove ByVal Refactoring
  • La finestra interattiva supporta ora più runtime, ad esempio .NET Framework e .NET Core.There is now interactive window support for multiple runtimes, such as .NET Framework and .NET Core.
Interactive Window Support in .NET Core
Supporto della finestra interattiva in .NET CoreInteractive Window Support in .NET Core
  • È disponibile una nuova API RegisterAdditionalFileAction che consente agli autori di analizzatori di creare un analizzatore per file aggiuntivi.There is a new RegisterAdditionalFileAction API that allows analyzer authors to create an analyzer for additional files.

A capo del testo nel riquadro Dettagli test di Esplora testWrap Test Details Pane of Test Explorer

Questa funzionalità molto richiesta consente all'utente di selezionare il ritorno a capo del testo o di lasciare l'allineamento predefinito per le righe di testo.This highly requested feature allows the user to select text wrapping or leave the default text line alignment. Quando l'allineamento del testo non è necessario, il ritorno a capo può facilitare notevolmente la visualizzazione del feedback da un'esecuzione di test ed eliminare la necessità di una barra di scorrimento orizzontale.When text alignment isn’t needed, wrapping can make the feedback from a test run much easier to view and eliminates the need for a horizontal scroll bar. È possibile abilitare questa opzione dal menu delle impostazioni di Esplora test o dal menu di scelta rapida del riquadro Riepilogo.You can enable this from the Test Explorer settings menu or the context menu of the Summary Pane.

Wrap test details from the Test Settings menu
Menu Impostazioni testTest settings menu
Wrap test details from the right-click context menu
A capo dei dettagli del test dal menu di scelta rapidaWrap test details from the right-click context menu

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

Miglioramenti alla diagnostica degli errori di binding XAMLXAML Binding Failures diagnostic improvements

Gli sviluppatori che lavorano sui progetti WPF, UWP, WinUI e Xamarin.Forms devono spesso rilevare e risolvere gli errori di data binding XAML nelle proprie applicazioni.Developers working on WPF, UWP, WinUI and Xamarin.Forms projects must often detect and resolve XAML data binding failures in their applications. Per migliorare gli strumenti di diagnostica in questo scenario, sono state aggiunte due nuove esperienze a Visual Studio 2019 versione 16.8 o successiva:To improve the diagnostic tooling in this scenario we have added two new experiences to Visual Studio 2019 version 16.8 or newer:

  • Icona dell'indicatore di errore di binding XAML: una nuova icona dell'indicatore di errore di binding XAML è ora presente nella barra degli strumenti in-app per i progetti WPF e UWP e nell'albero elementi visivi attivi per tutti i progetti XAML che includono Xamarin.Forms.XAML Binding Failure Indicator Icon: a new XAML Binding failure indicator icon is now present in the in-app toolbar for WPF and UWP projects and in the Live Visual Tree for all XAML projects including Xamarin.Forms. Questa icona avrà un indicatore rosso se viene rilevato almeno un errore di binding.This icon will show a red indicator if at least one binding failure is detected. Facendo clic sull'icona, si passerà inoltre alla nuova finestra degli errori di binding XAML.Clicking the icon will also take you to the new XAML Binding Failures window.
Binding Failure Icon (in-app toolbar)
Icona errore di binding (barra degli strumenti in-app)Binding Failure Icon (in-app toolbar)
  • Finestra degli errori di binding XAML: è ora disponibile una nuova finestra degli errori di binding XAML per i progetti WPF, UWP, WinUI e Xamarin.Forms.XAML Binding Failures Window: the new XAML Binding Failures window is now available for WPF, UWP, WinUI and Xamarin.Forms projects. Questa nuova esperienza dedicata offre un'interfaccia utente avanzata per le informazioni sugli errori di binding che in precedenza erano disponibili solo nella finestra di output.This new dedicated experience provides a rich user interface over the binding failure information that was previously only available in the Output Window. I miglioramenti includono la possibilità di visualizzare gli errori come un set di colonne che possono essere ordinate, personalizzate e sono completamente ricercabili.Improvements include the ability to see the failures as a set of columns that can be sorted, customized and are fully searchable. Sono stati inoltre raggruppati gli errori simili per ridurre gli elementi non significativi che possono essere generati durante una determinata combinazione di errori dei modelli di data binding, lasciando comunque a disposizione tutte le informazioni originali sugli errori non elaborate, che potranno essere copiate facilmente selezionando un'opzione di menu con il pulsante destro del mouseWe have also grouped similar errors together limiting the noise that can occur during certain combination of data binding templates failures while still making all the original raw error information available and easily copyable through a right-click menu option. (nota: richiede Xamarin versione 4.5.0.266-pre3 o successiva).(note: requires Xamarin version 4.5.0.266-pre3 or higher)
  • Passaggio a Origine per gli errori di binding: In collaborazione con il team WPF è stata abilitata la possibilità di passare all'origine di un errore di binding per i clienti che hanno come destinazione WPF in .NET 5 (RC2 o versione successiva).Navigate to Source for binding failures: In partnership with the WPF team we have enabled the ability to navigate to source of a binding failures for those customers who are targeting WPF on .NET 5 (RC2 or newer).
XAML Binding Failure Window & LVT Icon
Finestra di errore di binding XAML e icona LVTXAML Binding Failure Window & LVT Icon

Ricaricamento rapido XAMLXAML Hot Reload

  • Supporto per le sole modifiche di Xamarin.Forms disponibile per la piattaforma UWP in Ricaricamento rapido XAML: in questa release si inizierà a implementare il supporto per una funzionalità molto richiesta che abilita il supporto per le sole nuove modifiche per i progetti Xamarin.Forms in Ricaricamento rapido XAML, quando tali progetti sono destinati alla piattaforma UWP.Xamarin.Forms “changes only” XAML Hot Reload now supports UWP: in this release we begin to rollout support for a highly requested feature that enables the new changes only XAML Hot Reload support in Xamarin.Forms Projects when targeting UWP. Tenere presente che questa funzionalità è ancora in fase di sviluppo e anche se durante la modifica ora XAML attiverà gli aggiornamenti nell'app in esecuzione, altre funzionalità, come la barra degli strumenti in-app (selezione degli elementi e così via) non sono ancora completamente implementate. Lo saranno in una versione futura.Please note this feature is still in development, and while editing XAML will now trigger updates in the running app other features such as in-app toolbar (element selection, etc.) are not yet fully implemented, but will be in a future release.
  • Impostazioni di ricaricamento rapido XAML spostate in "Debug > Ricaricamento rapido": In questa versione sono state consolidate le impostazioni di ricaricamento rapido XAML in WPF, UWP e Xamarin.Forms in una schermata delle impostazioni unificata in "Debug > Ricaricamento rapido".XAML Hot Reload Settings moved to “Debugging > Hot Reload”: In this release we have consolidated the XAML Hot Reload settings across WPF, UWP and Xamarin.Forms into a unified settings screen under “Debugging > Hot Reload”. È stata anche abilitata per la prima volta la possibilità di disabilitare o abilitare Ricaricamento rapido XAML per ogni piattaforma, in modo da offrire il controllo completo su quando questa funzionalità è disponibile.We have also for the first time enabled the ability to disable or enable XAML Hot Reload on a per-platform basis to give you full control of when this feature is available. (Nota: nel corso di questa migrazione le impostazioni non verranno modificate, di conseguenza tutte le selezioni esistenti continueranno a essere applicate nella nuova posizione.(Note: No settings will be changed during this migration so all your existing choices will continue to stay in effect just under this new location)
XAML Hot Reload Consolidated Settings
Impostazioni consolidate per il ricaricamento rapido XAMLXAML Hot Reload Consolidated Settings

Editor di codice XAML:XAML Code Editor:

  • Supporto IntelliSense per WinUI 3.0: In questa versione è stato abilitato un supporto IntelliSense ottimizzato per gli sviluppatori che compilano le app usando la nuova interfaccia utente Windows versione 3.0 Preview 3 o successiva.WinUI 3.0 IntelliSense Support: In this release we have enabled better IntelliSense support for developers building apps using the new WinUI 3.0 preview 3 or newer. Per altre informazioni su WinUI 3.0, vedere la relativa documentazione e per inviare commenti e suggerimenti, vedere il repository GitHub XAML dell'interfaccia utente di Windows.To learn more about WinUI 3.0 see the documentation and to provide feedback visit the Windows UI XAML GitHub repo. Nota: si consiglia la versione più recente di WinUI 3.0 Preview per 16.9 Preview 1 perché offre strumenti aggiornati.Note: The latest WinUI 3.0 preview is recommended on 16.9 Preview 1 for the updated tooling experience.
  • Miglioramento del supporto per MVVM: Quando si crea un documento XAML, è possibile impostare d:DataContext per ottenere un'associazione di IntelliSense accurata per il documento XAML.Improving MVVM Support: When authoring a XAML document, you can set d:DataContext to get accurate binding IntelliSense for the XAML document. In passato, l'impostazione manuale del tipo di contesto dei dati era complessa. Era necessario uscire dal documento XAML, trovare il tipo di modello di visualizzazione desiderato, quindi copiarne e incollarne lo spazio dei nomi e il nome nella dichiarazione d:DataContext.In the past, manually specifying the data-context type was cumbersome; you had to leave the XAML document, find the desired view-model type, copy and paste its namespace and name into the d:DataContext declaration. In questa versione è stata introdotta una nuova funzionalità che consente di dichiarare rapidamente un d:DataContext tramite una lampadina che suggerisce possibili candidati per il modello di visualizzazione.In this release we’re introducing a new feature that allows you to quickly declare a d:DataContext via a lightbulb that suggests possible view-model candidates.
XAML IntelliSense for MVVM d:DataContext
XAML IntelliSense per MVVM d:DataContextXAML IntelliSense for MVVM d:DataContext

EstensibilitàExtensibility

Dalla Developer CommunityFrom Developer Community


Problemi notiKnown Issues

Vedere tutti i problemi aperti e le soluzioni alternative disponibili in Visual Studio 2019 facendo clic sul collegamento seguente.See all open issues and available workarounds in Visual Studio 2019 by following the below link.


Feedback e suggerimentiFeedback and suggestions

Le opinioni dei nostri clienti sono molto importanti per noi.We would love to hear from you! È possibile segnalare un problema tramite l'opzione Segnala un problema disponibile nell'angolo superiore destro del programma di installazione o dell'IDE di Visual Studio.For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. Alla classeThe Feedback Icon L'icona si trova nell'angolo superiore destro.icon is located in the upper right-hand corner. È possibile inviare un suggerimento sul prodotto o monitorare lo stato dei problemi nella community degli sviluppatori di Visual Studio, dove è possibile porre domande, trovare risposte e proporre nuove funzionalità.You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. È anche possibile usufruire gratuitamente del supporto per l'installazione con Assistenza live chat.You can also get free installation help through our Live Chat support.


BlogBlogs

Sfruttare i vantaggi delle informazioni dettagliate e delle raccomandazioni disponibili nel sito dei blog sugli strumenti di sviluppo per mantenersi aggiornati su tutte le nuove versioni con post di approfondimento su una vasta gamma di funzionalità.Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.


Cronologia delle note sulla versione di Visual Studio 2019Visual Studio 2019 Release Notes History

Per altre informazioni relative a versioni precedenti di Visual Studio 2019, vedere la pagina Cronologia delle note sulla versione di Visual Studio 2019.For more information relating to past versions of Visual Studio 2019, see the Visual Studio 2019 Release Notes History page.


Inizio pagina

Top of Page