Condividi tramite


2019LogoNote sulla versione di Visual Studio 2019 versione 16.8



Requisiti di sistema | della community | degli sviluppatori Compatibilità Compatibilità | delle condizioni | di licenza della cronologia delle versioni del codice | | distribuibile Blog | Whats New in Visual Studio Docs


Nota

Questa non è la versione più recente di Visual Studio. Per scaricare la versione più recente, visitare il sito di Visual Studio .



Novità in Visual Studio 2019 versione 16.8

Intervallo di tempo del supporto

Questa versione non è più supportata. Per altre informazioni sul supporto di Visual Studio, vedere Criteri di supporto per Visual Studio 2019.

Fare riferimento alla versione più recente delle note sulla versione o visitare il sito di Visual Studio per scaricare la versione supportata più recente di Visual Studio 2019.

Rilasci di Visual Studio 2019 versione 16.8

Note sulla versione archiviate di Visual Studio 2019

Blog di Visual Studio 2019

Il blog di Visual Studio 2019 è la fonte ufficiale di informazioni dettagliate sul prodotto da parte del team Visual Studio Engineering. È possibile trovare informazioni approfondite sulle versioni di Visual Studio 2019 nei post seguenti:


Vedere questo elenco completo di tutti gli elementi della community degli sviluppatori acquisiti in Visual Studio 2019 versione 16.8

Icona Note sulla versione Visual Studio 2019 versione 16.8.7

Data di rilascio: 9 marzo 2021

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.7

Avviso di sicurezza

CVE-2021-21300 Vulnerabilità relativa all'esecuzione di codice remoto di Git per Visual Studio

Esiste una vulnerabilità di esecuzione remota del codice quando Visual Studio clona un repository dannoso.

CVE-2021-26701 Vulnerabilità di esecuzione di codice remoto .NET Core

Esiste una vulnerabilità di esecuzione remota del codice in .NET 5 e .NET Core a causa della modalità di esecuzione della codifica del testo.


Icona Note sulla versione Visual Studio 2019 versione 16.8.6

Data di rilascio: 22 febbraio 2021

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.6


Icona Note sulla versione Visual Studio 2019 versione 16.8.5

Data di rilascio: 9 febbraio 2021

Avviso di sicurezza

CVE-2021-1639 Vulnerabilità di esecuzione remota del servizio di linguaggio TypeScript

Esiste una vulnerabilità di esecuzione remota del codice quando Visual Studio carica un repository dannoso contenente file di codice JavaScript o TypeScript.

CVE-2021-1721 Vulnerabilità Denial of Service di .NET Core

Esiste una vulnerabilità Denial of Service durante la creazione di una richiesta Web HTTPS durante la compilazione della catena di certificati X509.

CVE-2021-24112 vulnerabilità di esecuzione di codice remoto .NET 5 e .NET Core

Esiste una vulnerabilità di esecuzione remota del codice quando si eliminano metafile quando un'interfaccia grafica contiene ancora un riferimento. Questa vulnerabilità esiste solo nei sistemi in esecuzione in MacOS o Linux.

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.5

  • È stato risolto un problema per cui x86 Microsoft.VCLibs Appx installato in ExtensionSDKs aggiornato con la firma corretta.
  • Correzione di una perdita di memoria quando si usano le funzionalità DesignTime C++.
  • È stato risolto un problema per cui si verificava un'eccezione se una password non viene memorizzata durante l'importazione di un database esistente in un progetto SSDT.
  • È stato risolto un problema per cui il pulsante pubblica è disabilitato la prima volta che i clienti pubblicano progetti .NET Core in una cartella o in altre destinazioni di hosting.
  • Correzione di un blocco che si è verificato occasionalmente quando gli sviluppatori hanno aperto la pagina di visualizzazione profili di pubblicazione.
  • Aggiunge il supporto Xcode 12.4.

Elementi della community per sviluppatori


Icona Note sulla versione Visual Studio 2019 versione 16.8.4

Data di rilascio: 12 gennaio 2021

Avviso di sicurezza

CVE-2021-1651 / CVE-2021-1680 Vulnerabilità di elevazione dei privilegi del servizio agente di raccolta standard dell'hub di diagnostica

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.

CVE-2020-26870 Programma di installazione di Visual Studio vulnerabilità di esecuzione di codice remoto

Esiste una vulnerabilità di esecuzione remota del codice quando il Programma di installazione di Visual Studio tenta di visualizzare codice Markdown dannoso.

CVE-2021-1723 ASP.NET Vulnerabilità Denial of Service e Visual Studio Denial of Service

Esiste una vulnerabilità Denial of Service nel modo in cui Kestrel analizza le richieste HTTP/2.

Problemi risolti in questa versione di Visual Studio 2019 versione 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 Studio
  • I riferimenti ai progetti transitivi vengono ora rispettati quando un progetto PackageReference fa riferimento a progetti packages.config con dipendenze PackageReference.
  • Aggiunta del supporto di Xcode 12.3.
  • Correzione del supporto del simulatore x86_64 watchOS 7.0+
  • Sono stati corretti falsi positivi (C33001 ~ C33005) per l'uso di VARIANT restituiti da una funzione.
  • Correzione per l'arresto anomalo intermittente di Visual Studio nella finestra di progettazione .NET Core winForms durante la chiusura del progetto o della soluzione.
  • Progetto di database fisso: il trascinamento di un file da Esplora soluzioni in un file aperto elimina il file dal file system.
  • Correzione del clic sull'aggiornamento in Confronto schema SQL non salva le modifiche apportate al file sqlproj
  • Correzione di un bug per cui le compilazioni non sono riuscite con errori "Tabella/colonna non trovata".
  • Correzione della casella di controllo "commit dopo l'unione" da Team Explorer -> Rami.
  • Correzione di un errore per cui Visual Studio potrebbe non rispondere per diversi secondi durante il controllo degli aggiornamenti.
  • DeploymentAppRecipe.exe strumento supporta ora l'esecuzione da qualsiasi directory corrente. Ora restituisce anche un valore restituito diverso da zero ogni volta che la distribuzione ha esito negativo e stampa i messaggi di errore nel flusso di errore standard.

Dalla Developer Community



Icona Note sulla versione Visual Studio 2019 versione 16.8.3

Data di rilascio: 08 dicembre 2020

Avviso di sicurezza

CVE-2020-17156 Vulnerabilità di esecuzione remota del codice di Visual Studio

Esiste una vulnerabilità di esecuzione remota del codice quando Visual Studio clona un repository dannoso.

Problemi risolti in questa versione di Visual Studio 2019 versione 16.8.3

  • Correzione di un errore interno del compilatore quando un modello di funzione nidificato viene definito all'esterno della classe padre.
  • Correzione di un errore C2355 non corretto quando si usa 'this' nell'inizializzatore di un membro dei dati non statico.
  • 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.
  • Correzione per un arresto anomalo del sistema intermittente in Visual Studio durante l'uso della finestra di progettazione di .NET Core per Windows Forms.
  • Inserimento di .NET 5.0.1 in 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.
  • Correzione del push dalla pagina Gestisci rami quando non è presente alcun ramo Git di rilevamento remoto.
  • Aggiunta del supporto per Xcode 12.2.

Dalla Developer Community



Icona Note sulla versione Visual Studio 2019 versione 16.8.2

Data di rilascio: 19 novembre 2020

Problemi risolti in questa release di Visual Studio 2019 versione 16.8.2

  • Correzione per il bug di ottimizzazione nei cicli.
  • Correzione dell'errore interno del compilatore nell'implementazione dell'elisione copia garantita (funzionalità di C++17).
  • Correzione della regressione delle prestazioni di compilazione per l'uso esteso di tipi anonimi.
  • 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#.
  • Correzione di un problema che poteva causare un'eccezione MissingMethodException durante la compilazione di un progetto con modelli T4.
  • Correzione di un problema a causa del quale la ricerca nella finestra di dialogo Nuovo progetto può restituire zero risultati.

Dalla Developer Community



Icona Note sulla versione Visual Studio 2019 versione 16.8.1

Data di rilascio: 12 novembre 2020

Problemi risolti in questa release di Visual Studio 2019 versione 16.8.1

  • Correzione di un problema a impatto elevato per cui veniva visualizzato il messaggio "Il pacchetto 'SourceExplorerPackage' non è stato caricato correttamente" durante la clonazione di un repository in Team Explorer. Quando veniva riscontrato questo problema, il prodotto smetteva di rispondere ai comandi.

Icona Note sulla versione Visual Studio 2019 versione 16.8.0

Data di rilascio: 10 novembre 2020

Riepilogo delle novità in questa release di Visual Studio 2019 versione 16.8


F#:

  • F# 5 viene ora rilasciato insieme a .NET 5
  • Miglioramenti delle prestazioni e correzioni per gli strumenti di Visual Studio con F# Tools versione 11.0.0
  • Note sulla versione complete disponibili su GitHub

C++:

  • Le coroutine C++20 sono ora supportate in /std:c++latest e nell'intestazione <coroutine>.
  • IntelliSense offre ora il supporto per le intestazioni C++20 <concepts> e <ranges>, nonché per la ridenominazione e l'esplorazione delle definizioni dei concetti.
  • La libreria STL ora supporta la maggior parte degli intervalli C++20.
  • In MSVC sono ora supportate le funzioni membro speciali trivial in modo condizionale.
  • C11 e C17 sono ora supportati nelle opzioni /std:c11 e /std:c17.
  • 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.
  • Aggiornata a CMake 3.18 la versione di CMake acclusa a Visual Studio.
  • Gli strumenti di analisi del codice supportano ora lo standard SARIF 2.1: il formato di log di analisi statica standard del settore.
  • 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.
  • È ora possibile eseguire il debug di dump core di Linux in un sistema Linux remoto o in WSL direttamente da Visual Studio.
  • Per la generazione di commenti Doxygen C++, sono state aggiunte opzioni di stile di commento aggiuntive (/*! e //!).
  • Altri annunci vcpkg
  • Supporto del compilatore per le espressioni lambda nei contesti non valutati
  • Prestazioni del collegamento /debug:full migliorate con la creazione di file PDB di multithreading. Diverse applicazioni di grandi dimensioni e giochi AAA usano collegamenti da 2 a 4 volte più veloci.
  • Il debugger di Visual Studio offre ora il supporto per char8_t.
  • Supporto per i progetti ARM64 con clang-cl.
  • Supporto per gli oggetti intrinseci Intel AMX.
  • È stata aggiunta una nuova opzione di collegamento per legacy_stdio_float_rounding.obj abilitare il comportamento legacy della stampa di valori a virgola mobile, che è stato modificato in Dev16.2 in modo da arrotondare correttamente i numeri a virgola mobile esattamente rappresentabili. Per altre informazioni, vedere printf, _printf_l, wprintf, _wprintf_l.

Debugger:

  • Supporto per il debug di dump core di Linux .NET Core
  • Analisi automatica di .NET e .NET Core
  • Analisi automatica del percorso critico di memoria in .NET e .NET Core

Aggiornamenti dell'editor Razor sperimentale:

  • Lampadine in Blazor
  • Lampadine in C#
  • Formattazione Razor migliorata
  • Rinominare i componenti Razor nel markup da file RAZOR
  • Comando Vai alla definizione per lo spazio dei nomi dei tag di componenti Blazor
  • Colorazione al passaggio del mouse su elementi C#
  • Colorazione delle descrizioni comando per il completamento di elementi C#
  • Vai a definizione/implementazione per Razor, inclusi i file chiusi
  • Trova tutti i riferimenti in file Razor chiusi
  • Miglioramento delle prestazioni e della stabilità di modifica Razor per progetti e soluzioni di grandi dimensioni

Fakes con i progetti di tipo SDK:

  • Usando il nuovo supporto di Fakes per i progetti di tipo SDK, alcuni utenti hanno riscontrato l'errore seguente durante la generazione degli shim

Produttività Git:

  • Altre informazioni sull'uso di tutte le funzionalità Git nella nuova documentazione online
  • Aprire la finestra Repository Git in qualsiasi momento usando la finestra delle modifiche Git, il menu Visualizza e la barra di stato
  • Effettuare recupero, pull e push da più elementi remoti nella finestra delle modifiche Git
  • Visualizzare i messaggi di errore e di esito positivo per i comandi Git nella parte superiore della finestra Repository GIT
  • Creare un nuovo ramo da un elemento di lavoro di Azure DevOps
  • Aprire un repository Git da un elenco dei repository locali nel menu Git
  • Il provider del controllo del codice sorgente predefinito ora è GIT anziché TFVC
  • Singolo clic per passare da una cronologia ramo all'altra nella finestra Repository GIT
  • Visualizzazione e selezione da un elenco di soluzioni in Esplora soluzioni dopo l'apertura di un repository
  • Modificare la visualizzazione della cronologia e cercare i commit tramite una barra degli strumenti nella finestra Repository GIT
  • Recupero, pull e push dalle sezioni commit in ingresso e in uscita nel grafico della cronologia di un ramo
  • Viene richiesto di creare una richiesta pull dopo aver eseguito il push di un ramo nel repository remoto
  • Visualizzare i nomi dei rami nei comandi Unisci e Riassegna nel menu di scelta rapida dell'elenco dei rami
  • Accedere ai comandi Git tramite il menu di scelta rapida in Esplora soluzioni e nell'editor
  • Osservare lo stato di clonazione tramite una nuova finestra di dialogo modale con l'opzione per spostare il processo in background

IntelliCode:

  • Disponibilità dei completamenti IntelliCode personalizzati nella documentazione di Visual Studio
  • Mantenere aggiornati i completamenti IntelliCode con la codebase e condividerli come parte della documentazione del flusso di lavoro CI del team

Produttività .NET:

  • Gli analizzatori Roslyn sono ora inclusi nell'SDK .NET 5.0
  • Refactoring che introduce la nuova sintassi dei criteri di ricerca not C# 9 quando è presente un operatore di eliminazione
  • Refactoring del metodo inline per facilitare la sostituzione degli usi di un metodo statico, di istanza e di estensione nel corpo di un'unica istruzione
  • Correzione del codice per convertire le istanze di typeof in nameof C# e di GetType in 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 funzione
  • Refactoring che estrae membri da una classe selezionata a una nuova classe base sia in C# che in 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 soluzione
  • Correzione del codice per rimuovere la parola chiave in dove l'argomento non deve essere passato per riferimento
  • 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 applicabile
  • Correzione del codice per impostare una classe come astratta quando si tenta di scrivere un metodo astratto in una classe non astratta
  • Il completamento IntelliSense nei valori letterali stringa DateTime e TimeSpan viene visualizzato automaticamente quando viene digitata la prima virgoletta
  • Correzione del codice per rimuovere pragma suppressions non necessari e SuppressMessageAttributes non necessari
  • Rename e Find All References interpreta i riferimenti ai simboli all'interno della stringa di destinazione di SuppressMessageAttributes globale
  • 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 Basic
  • Supporto della finestra interattiva per più runtime, ad esempio .NET Framework e .NET Core.
  • Aggiunta una nuova API RegisterAdditionalFileAction che consente agli autori di analizzatori di creare un analizzatore per file aggiuntivi.

IDE di Visual Studio 2019:

  • Aggiungere l'account GitHub personale usando l'esperienza di gestione degli account
  • In questa versione, l'esperienza Cerca nei file legacy è stata deprecata e tutti gli utenti vengono indirizzati alla nuova esperienza. 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.
  • Il provider di pubblicazione ClickOnce è ora disponibile per le app desktop Windows di .NET Core 3.1 e .NET 5.0.

A capo del testo nel riquadro Dettagli test di Esplora test:

  • È ora possibile mandare a capo il testo nel riquadro Dettagli test di Esplora test.

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

  • Miglioramenti alla diagnostica degli errori di binding XAML
  • Impostazioni Ricaricamento rapido XAML spostate in "Debug > Ricaricamento rapido"
  • Popolamento della casella degli strumenti da pacchetti NuGet senza riferimenti

JavaScript/TypeScript:

  • il debugger JavaScript/TypeScript supporta ora contemporaneamente i ruoli di lavoro del servizio di debug, i ruoli di lavoro, iFrame e la pagina JavaScript. 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. Questa funzionalità è ancora sperimentale. È possibile abilitare la nuova esperienza di debug nel menu Opzioni di debug
  • È ora possibile attivare il refactoring ovunque sia possibile usando la scelta rapida da tastiera per l'azione del codice (CTRL+.). Non è necessario selezionare un testo perché TypeScript ora è abbastanza intelligente da trovare vicino alla posizione del cursore il punto migliore per il refractoring.
  • È ora possibile ottimizzare i pacchetti che TypeScript cerca per il completamento automatico dell'importazione. In questo modo si possono migliorare le prestazioni in alcuni progetti con numerose dipendenze. Per maggiori dettagli, vedere le note sulla versione di TypeScript 4.0 [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. È consigliabile aggiungere un elemento tsconfig al progetto per personalizzare i tipi usati.
  • Si noti che sono inclusi il compilatore e il servizio di linguaggio di TypeScript 4.0

Avviso di sicurezza

CVE-2020-17100 Vulnerabilità di manomissione di Visual Studio

Quando Python Tools per Visual Studio crea la cartella python27, esiste una vulnerabilità alla manomissione. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eseguire processi in un contesto con privilegi elevati.

Problemi risolti in questa 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.
  • Risolto un problema per cui Live Unit Testing non si avviava in alcuni scenari.
  • .NET 5.0.RC2 è stato aggiunto a Visual Studio 2019 v16.8 Preview 4
  • È stato corretto un bug per cui un'operazione Git occasionale veniva avviata e mai completata.
  • Aggiunta di funzionalità aggiuntive per la creazione e la connessione di Visual Studio Codespaces.
  • 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.
  • 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.

Dettagli delle novità di Visual Studio 2019 versione 16.8.0

C++

  • Le coroutine C++20 sono ora supportate in /std:c++latest e nell'intestazione <coroutine>. Il supporto per il comportamento legacy è disponibile in <sperimentale/coroutine> e nell'opzione /await.
  • IntelliSense offre ora il supporto per le intestazioni C++20 <concepts> e <ranges>, nonché per la ridenominazione e l'esplorazione delle definizioni dei concetti. Esiste un problema noto di cui è prevista la risoluzione nella versione Preview 4.
  • La libreria STL ora supporta la maggior parte degli intervalli C++20. È possibile tenere traccia dello stato nelle informazioni sul problema degli intervalli di GitHub.
  • In MSVC sono ora supportate le funzioni membro speciali trivial in modo condizionale.
  • C11 e C17 sono ora supportati nelle opzioni /std:c11 e /std:c17.
  • 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. È possibile trovare tutti gli aggiornamenti nel log delle modifiche.
  • La versione di CMake fornita con Visual Studio è stata aggiornata a 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. Per altre informazioni sul formato SARIF, vedere la specifica ufficiale.
  • 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.
  • È ora possibile eseguire il debug di dump core di Linux in un sistema Linux remoto o in WSL direttamente da Visual Studio.
  • Per la generazione di commenti Doxygen C++, sono state aggiunte opzioni di stile di commento aggiuntive (/*! e //!).
  • Altri annunci vcpkg
  • È stato aggiunto il supporto del compilatore per le espressioni lambda nei contesti non valutati che consente di usare espressioni lambda negli identificatori decltype.
  • In Visual Studio sono ora disponibili linter e correzioni durante la digitazione. Configurare usando Tools-Options-Text>> Editor-C>/C++->CodeStyle-Linter> + Fixups.
Linter di tipo as-you-type che mostra l'avviso per l'uso bit per bit e invece di logico && in bools
Linter durante la digitazione

Debugger

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

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. 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.

Analisi automatica di .NET

La programmazione asincrona (async) è una tecnica disponibile da diversi anni per la piattaforma .NET, ma storicamente molto difficile da gestire bene. È stato introdotto un analizzatore di dump di memoria gestito che consente di identificare i seguenti scenari e anti-pattern:

  • Sync-over-Async
  • Esaurimento ThreadPool

Analisi automatica del percorso critico di memoria in .NET e .NET Core

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.

Problemi di generazione di shim con Fakes con i progetti di tipo SDK

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.

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. Se si usa una versione 16,7.*, è possibile usare la soluzione alternativa seguente:

  1. Aggiungere <FakesUseV2Generation False</FakesUseV2Generation>> a un PropertyGroup nel file csproj.
  2. <Aggiungere Fakes Include="Fakes\*.fakes" /> a un ItemGroup nel file csproj.
  3. Aggiungere un riferimento agli assembly Fakes generati in ProjectDir/FakesAssemblies.

Per ulteriori aggiornamenti, è anche possibile seguire i commenti e suggerimenti in Developer Community.

Aggiornamenti dell'editor Razor sperimentale

Il nuovo editor Razor sperimentale supporta ora le funzionalità di modifica di Razor seguenti:

  • Lampadine Blazor:
    • Estrazione in code-behind*:
    • Creazione di componenti da tag*
    • Aggiunta direttiva @using per il componente
    • Nome completo del tag del componente
  • Lampadine C#
    • Aggiunta direttiva @using
    • Tipo nome completo
  • Formattazione Razor migliorata
  • Rinominare i componenti Razor nel markup da file RAZOR
  • Comando Vai alla definizione per i nomi di tag di componenti Blazor
  • Colorazione al passaggio del mouse su elementi C#
  • Colorazione delle descrizioni comando per il completamento di elementi C#
  • Trova tutti i riferimenti in file Razor chiusi
  • Miglioramento delle prestazioni e della stabilità di modifica Razor per progetti e soluzioni di grandi dimensioni

* Funziona solo in scenari Razor locali, non ancora supportati in Visual Studio Codespaces o 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.

Visual Studio 2019 IDE

  • Aggiungere l'account GitHub personale usando l'esperienza nota di gestione degli account di Visual Studio. 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.
Hint per il nome dei parametri inline con GitHub
Aggiunta di account GitHub in Visual Studio
  • Il provider di pubblicazione ClickOnce è ora disponibile per le app desktop Windows di .NET Core 3.1 e .NET 5.0. Per iniziare, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Pubblica oppure scegliere il menu Compila nomeapp > pubblica<>. È possibile trovare ClickOnce nella categoria Cartella.
Hint per il nome dei parametri inline con GitHub Image
Provider di pubblicazione ClickOnce in Visual Studio

Produttività Git

  • Creare un nuovo ramo da un elemento di lavoro di Azure DevOps
Creare un nuovo ramo da un elemento di lavoro di Azure DevOps
Creare un nuovo ramo da un elemento di lavoro
  • Aprire un repository Git da un elenco dei repository locali nel menu Git
Elenco repository locali
Elenco dei repository locali nel menu Git
  • Il provider del controllo del codice sorgente predefinito è ora Git anziché TFVC ed è possibile modificarlo in Strumenti - Opzioni - Controllo del codice sorgente

  • Singolo clic per passare da una cronologia ramo all'altra nella finestra Repository GIT

  • Visualizzare e selezionare un elenco di soluzioni nel repository in Esplora soluzioni dopo l'apertura di un repository

Interruttore Funzionalità di anteprima per visualizzare l'elenco delle visualizzazioni all'apertura di un repository
Interruttore Funzionalità di anteprima per visualizzare l'elenco delle visualizzazioni all'apertura di un repository
Elenco delle visualizzazioni in Esplora soluzioni
Elenco delle visualizzazioni in Esplora soluzioni

Produttività .NET

  • 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. A partire da .NET 5.0 questi analizzatori sono inclusi nel .NET SDK. Per impostazione predefinita, gli analizzatori sono abilitati per i progetti destinati a .NET 5.0 o versione successiva. È possibile abilitare l'analisi del codice per i progetti destinati a versioni precedenti di .NET impostando la proprietà EnableNETAnalyzers su true. È possibile disabilitare l'analisi del codice per il progetto impostando EnableNETAnalyzers su false. È anche possibile usare la finestra Proprietà progetto per abilitare o disabilitare gli analizzatori .NET. Per accedere alla finestra Proprietà progetto, fare clic con il pulsante destro del mouse su un progetto in Esplora soluzioni e scegliere Proprietà. Selezionare quindi la scheda Analisi codice in cui è possibile selezionare o deselezionare la casella di controllo Enable .NET analyzers (Abilita analizzatori .NET).
Finestra Proprietà progetto per abilitare gli analizzatori .NET
Finestra Proprietà progetto per abilitare gli analizzatori .NET
  • È ora disponibile un refactoring che introduce la nuova sintassi dei criteri di ricerca not C# 9 quando è presente un operatore di eliminazione. Posizionare il cursore sull'operatore di eliminazione. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Usa i criteri di ricerca.
Refactoring che introduce la nuova sintassi dei criteri di ricerca not C# 9
Refactoring che introduce la nuova sintassi dei criteri di ricerca not C# 9
  • È 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. Posizionare il cursore sull'utilizzo del metodo. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare quindi una delle opzioni seguenti:

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

Refactoring del metodo inline per la rimozione della dichiarazione
Refactoring del metodo inline per la rimozione della dichiarazione

Selezionare Inline e mantenere <QualifiedMethodName> la dichiarazione del metodo originale:

Refactoring del metodo inline per mantenere la dichiarazione
Refactoring del metodo inline per mantenere la dichiarazione
  • La creazione di un nuovo file C# o Visual Basic da un modello rispetta le impostazioni di stile del codice di EditorConfig. 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.

  • È 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. È 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). I suggerimenti per i nomi di parametro inline verranno quindi visualizzati nel file di C# o Visual Basic.

Hint per il nome del parametro inline
Suggerimenti per i nomi di parametri inline
  • È ora possibile estrarre i membri da una classe selezionata a una nuova classe di base con il nuovo refactoring Estrai classe di base. Posizionare il cursore sul nome della classe o su un membro evidenziato. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Esegui pull dei membri fino alla nuova classe di base. 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. È 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.
Estrai classe di base
Estrai classe di base

Fare clic su OK per visualizzare la nuova classe di base aggiunta unitamente ai relativi membri.

  • È ora disponibile una correzione del codice per la conversione delle istanze di typeof(<QualifiedType>).Name in nameof(<QualifiedType>) in C# e delle istanze di GetType(<QualifiedType>).Name in NameOf(<QualifiedType>) in Visual Basic. L'uso di nameof invece del nome del tipo consente di evitare i processi di reflection associati al recupero di un oggetto. Posizionare il cursore all'interno dell'istanza di typeof(<QualifiedType>).Name. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare quindi una delle opzioni seguenti:

Per C# selezionare Convertire typeof in nameof:

Convertire typeof in nameof
Convertire typeof in nameof

Per Visual Basic selezionare Convertire GetType in NameOf:

Convertire GetType in NameOf
Convertire GetType in 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.
Supporto per formattazione e intestazione del file in Pulizia del codice
Supporto per formattazione e intestazione del file in Pulizia del codice
  • È ora disponibile una correzione del codice per rimuovere la parola chiave in in cui l'argomento non deve essere passato per riferimento. Posizionare il cursore sull'errore. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Rimuovi la parola chiave 'in'.
Correzione del codice della parola chiave Remove in keyword code fix
Rimuovere la correzione del codice della parola chiave 'in'
  • È ora disponibile un refactoring che introduce i nuovi combinatori di criteri C#9. 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. Posizionare il cursore all'interno dell'istruzione. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Usa i criteri di ricerca.
Introduzione dei combinatori di criteri C#9
Introduzione dei combinatori di criteri C#9
  • È 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. Posizionare il cursore sull'errore del metodo. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Make class 'abstract' (Imposta classe come 'abstract').
Impostare una classe come astratta
Impostare una classe come astratta
  • Nella versione 16.7 Preview 1 è stato aggiunto il completamento IntelliSense nei valori letterali stringa DateTime e TimeSpan. In questa versione, questo elenco di completamento viene visualizzato automaticamente quando viene digitata la prima virgoletta. In passato era necessario digitare (CTRL+BARRA SPAZIATRICE) per visualizzare questo elenco di completamento. Posizionare il cursore all'interno del valore letterale stringa DateTime o TimeSpan e digitare le prime virgolette doppie. Verranno quindi visualizzate le opzioni di completamento e una spiegazione relativa al significato di ogni carattere. Verranno visualizzati il formato di data e ora e un esempio.
Completamento di IntelliSense nei valori letterali stringa DateTime e TimeSpan
Completamento IntelliSense nei valori letterali stringa DateTime e TimeSpan
Questo miglioramento funziona anche per le stringhe interpolate quando si digita un segno di due punti
Questo miglioramento funziona anche per le stringhe interpolate quando si digita un segno di due punti
  • È ora disponibile una correzione del codice per rimuovere le eliminazioni pragma e le occorrenze di SuppressMessageAttributes non necessarie. Posizionare il cursore nell'avviso pragma o su SuppressMessageAttribute. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Rimuovi l'operatore di eliminazione non necessario.
Rimuovere le eliminazioni pragma non necessarie
Rimuovere le eliminazioni pragma non necessarie
Rimuovere le occorrenze di SuppressMessageAttributes non necessarie
Rimuovere le occorrenze di SuppressMessageAttributes non necessarie
  • 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.
Rinominare SuppressMessageAttribute
Rinominare SuppressMessageAttribute
Trovare tutti i riferimenti per SuppressMessageAttribute
Trovare tutti i riferimenti per SuppressMessageAttribute
  • Visual Basic includeva diversi modi per passare parametri, ByVal e ByRef e per molto tempo ByVal è stato facoltativo. ByVal risulta ora ombreggiato per segnalare che non è necessario ed è stata introdotta una correzione del codice per rimuovere le occorrenze non necessarie di ByVal. Posizionare il cursore sulla parola chiave ByVal. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. La selezione della parola chiave 'ByVal' non è necessaria e può essere rimossa.
Visual Basic rimuove il refactoring di ByVal
Visual Basic rimuove il refactoring di ByVal
  • La finestra interattiva supporta ora più runtime, ad esempio .NET Framework e .NET Core.
Supporto della finestra interattiva in .NET Core
Supporto della finestra interattiva in .NET Core
  • È disponibile una nuova API RegisterAdditionalFileAction che consente agli autori di analizzatori di creare un analizzatore per file aggiuntivi.

A capo del testo nel riquadro Dettagli test di Esplora test

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. 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. È possibile abilitare questa opzione dal menu delle impostazioni di Esplora test o dal menu di scelta rapida del riquadro Riepilogo.

Eseguire il wrapping dei dettagli del test dal menu Impostazioni test
Menu Impostazioni test
A capo dei dettagli del test dal menu di scelta rapida
A capo dei dettagli del test dal menu di scelta rapida

Strumenti XAML (WPF, UWP e Xamarin.Forms)

Miglioramenti alla diagnostica degli errori di binding XAML

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. Per migliorare gli strumenti di diagnostica in questo scenario, sono state aggiunte due nuove esperienze a Visual Studio 2019 versione 16.8 o successiva:

  • 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. Questa icona avrà un indicatore rosso se viene rilevato almeno un errore di binding. Facendo clic sull'icona, si passerà inoltre alla nuova finestra degli errori di binding XAML.
Icona errore di binding (barra degli strumenti in-app)
Icona errore di binding (barra degli strumenti in-app)
  • 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. 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. I miglioramenti includono la possibilità di visualizzare gli errori come un set di colonne che possono essere ordinate, personalizzate e sono completamente ricercabili. 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 mouse (nota: richiede Xamarin versione 4.5.0.266-pre3 o successiva).
  • Passare a Origine per gli errori di associazione: in collaborazione con il team WPF è stata abilitata la possibilità di passare all'origine di errori di associazione per i clienti che hanno come destinazione WPF in .NET 5 (RC2 o versione successiva).
Finestra di errore di binding XAML e icona LVT
Finestra di errore di binding XAML e icona LVT

Ricaricamento rapido XAML

  • 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. 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.
  • Impostazioni Ricaricamento rapido XAML spostate in "Debug > Ricaricamento rapido": in questa versione sono state consolidate le impostazioni Ricaricamento rapido XAML in WPF, UWP e Xamarin.Forms in una schermata unificata delle impostazioni in "Debug > Ricaricamento rapido". È 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. (Nota: nessuna impostazione verrà modificata durante questa migrazione, quindi tutte le scelte esistenti continueranno a rimanere attive appena sotto questa nuova posizione)
Impostazioni consolidate per il ricaricamento rapido XAML
Impostazioni consolidate per il ricaricamento rapido XAML

Editor di codice XAML:

  • Supporto di IntelliSense per WinUI 3.0: in questa versione è stato abilitato il supporto di IntelliSense migliore per gli sviluppatori che creano app usando la nuova versione di anteprima 3 o successiva di WinUI 3.0. 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. Nota: l'anteprima più recente di WinUI 3.0 è consigliata nella versione 16.9 Preview 1 per l'esperienza aggiornata degli strumenti.
  • Miglioramento del supporto MVVM: quando si crea un documento XAML, è possibile impostare d:DataContext per ottenere un'associazione accurata di IntelliSense per il documento XAML. 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 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.
XAML IntelliSense per MVVM d:DataContext
XAML IntelliSense per MVVM d:DataContext

Estendibilità

  • Popolamento della casella degli strumenti da pacchetti NuGet non referenziati: in questa versione è stato aggiunto il supporto per i file di VisualStudioToolsManifest.xml specifici di TargetFrameworkMoniker durante il popolamento della casella degli strumenti con controlli da pacchetti NuGet non referenziati. Quindi, ad esempio, il pacchetto potrebbe esporre diversi set di controlli ai progetti .NET Core 3.1 e .NET 5.0.

Dalla Developer Community



Problemi noti

Vedere tutti i problemi aperti e le soluzioni alternative disponibili in Visual Studio 2019 facendo clic sul collegamento seguente.

Feedback e suggerimenti

I commenti degli utenti sono molto apprezzati. È 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. L'icona Icona Commenti e suggerimenti si trova nell'angolo superiore destro. È 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à. È anche possibile usufruire gratuitamente del supporto per l'installazione con Assistenza live chat.


Blog

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à.


Cronologia delle note sulla versione di Visual Studio 2019

Per altre informazioni relative a versioni precedenti di Visual Studio 2019, vedere la pagina Cronologia delle note sulla versione di Visual Studio 2019.


In alto