2019LogoNote sulla versione di Visual Studio 2019 versione 16.10



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à di Visual Studio 2019 versione 16.10

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.

Versioni di Visual Studio 2019 versione 16.10

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:


16.10.5 Visual Studio 2019 versione 16.10.5

Data di rilascio: 10 agosto 2021

Riepilogo delle novità di questa versione di Visual Studio 2019 versione 16.10.5

Questa versione di Visual Studio 2019 è disponibile solo tramite Windows Software Update Service (WSUS).

Problemi principali corretti in questa versione

  • Il simulatore remoto iOS funzionerà correttamente con i dispositivi Mac associati con Xcode 12.4 o 12.5 installati. Le funzionalità del simulatore Xcode seguenti non sono disponibili se abbinate ai dispositivi Mac con Xcode 12.4 o versione successiva, installate:
    • Avviso di memoria simulata
    • Posizioni simulate

Avviso di sicurezza

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

Esiste una vulnerabilità Denial of Service in cui le applicazioni server .NET (Core) che forniscono endpoint WebSocket potrebbero essere ingannate in un ciclo infinito durante il tentativo di leggere un singolo frame WebSocket.

CVE-2021-34485 Vulnerabilità di divulgazione di informazioni .NET Core

Esiste una vulnerabilità di divulgazione di informazioni quando i dump creati dallo strumento per raccogliere dump e dump di arresto anomalo su richiesta vengono creati con autorizzazioni di lettura globali in Linux e macOS.

CVE-2021-34532 ASP.NET vulnerabilità di divulgazione di informazioni di base

Esiste una vulnerabilità di divulgazione di informazioni in cui viene registrato un token JWT se non può essere analizzato.

16.10.4 Visual Studio 2019 versione 16.10.4

Data di rilascio: 20 luglio 2021

Riepilogo delle novità di questa versione di Visual Studio 2019 versione 16.10.4

Problemi principali corretti in questa versione

  • Rimuovere l'uso di registri non consentiti nel memset.
  • Correzione di un bug codegen che interessa espressioni annidate complesse che coinvolgono l'operatore bit per bit not.
  • Correzione del debug dello shader per Visual Studio Graphics Analyzer
  • Correzione di un arresto anomalo di IntelliSense che si è verificato durante l'elaborazione di membri dati statici nelle specializzazioni dei modelli in classe.
  • X64 VC Redist non rimuove più i file di runtime quando vengono eseguiti con le opzioni /installer /passive.
  • Correzione di un problema per cui l'ordine di ricerca di inclusione potrebbe non essere corretto quando è stato anteporto a "Includi directory".
  • È stato risolto un problema di prestazioni e falsi positivi causati da una delle estensioni del controllo che rileva bug in uso improprio di VARIANT.
  • È stato risolto un problema di prestazioni causato da una delle estensioni del controllo che rileva bug in uso improprio dei valori di enumerazione come indice.
  • Introduce la correzione dei servizi linguistici di Live Share che ripristina le principali funzionalità di modifica del codice per i partecipanti alla sessione di collaborazione (completamento del codice, evidenziazione della sintassi, errori e così via)
  • L'analizzatore di concorrenza non deve più generare falsi avvisi C26110 (errore di acquisizione del blocco) con modelli di blocco automatico.
  • I compilatori C# e Visual Basic hanno risolto un arresto anomalo che coinvolge InternalsVisibleTo in conflitto con altri attributi a livello di assembly.
  • È stato risolto un problema riscontrato dai clienti che creavano pacchetti di progetti con progetti di creazione pacchetti di applicazioni Windows, ad esempio app NETCore WPF e app Project Reunion:

Impossibile trovare il file degli asset di errore '...\obj\wappublish\win10-x86\project.assets.json'. Eseguire un ripristino del pacchetto NuGet per generare questo file. App4 (pacchetto) C:\Programmi\dotnet\sdk\5.0.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 242

Questo problema è stato causato dal progetto di creazione pacchetti che cerca il file di project.assets.json nella directory errata, win10-$(configurazione), quando deve cercare win-$(configuration).

Dalla Developer Community


16.10.3 Visual Studio 2019 versione 16.10.3

Data di rilascio: 29 giugno 2021

Riepilogo delle novità di questa versione di Visual Studio 2019 versione 16.10.3

Problemi principali corretti in questa versione

  • Correzione di un problema per cui Vai a definizione sui simboli importati dai moduli a volte passa all'inizio del file di modulo anziché alla definizione del simbolo.
  • È stato risolto un problema per cui gli sviluppatori con problemi visivi avrebbero difficoltà a identificare lo stato attivo sullo schermo perché il rapporto luminosità del colore del bordo è inferiore a 3:1 per la casella di testo.
  • Progetto di database fisso: il trascinamento di un file da Esplora soluzioni in un file aperto elimina il file dal file system.
  • È stato risolto un problema per cui l'uso di un'istruzione di merge nei progetti di database genererà errori di compilazione.
  • Non inviare più percorsi su disco quando si segnalano le estensioni installate.
  • Risolve un problema per cui il tentativo di chiudere la finestra di avvio rapido può causare l'arresto anomalo di Visual Studio.
  • Consente di risolvere un problema per cui la visualizzazione delle finestre degli strumenti talvolta causa un arresto anomalo di Visual Studio.
  • Correzione per la modifica e la continuazione di C++ nel codice utente quando i simboli generati da G++/GCC non correlati vengono caricati nell'applicazione.
  • Corregge gli utilizzi del selettore privato dal framework iAd.
  • Correzione di un arresto anomalo in Visual Studio che causa errori che si verificano nella finestra di progettazione XAML
  • È stato risolto un problema relativo ai progetti di creazione pacchetti di applicazioni Windows che fanno riferimento a progetti .netcoreapp che generano un file con estensione msixbundle.
  • Correzione dell'errore di esecuzione di un controllo rapido sui progetti WAP che causavano la compilazione di tali progetti (invece di essere ignorati), anche quando il progetto è aggiornato e non richiede modifiche, causando un aumento dei tempi di compilazione incrementali nell'IDE.

Dalla Developer Community


16.10.2 Visual Studio 2019 versione 16.10.2

Data di rilascio: 15 giugno 2021

Riepilogo delle novità di questa versione di Visual Studio 2019 versione 16.10.2

Problemi principali corretti in questa versione

  • I controlli di concorrenza nell'analisi del codice sono stati più intelligenti. Sono più difficili da ingannare con un flusso di controllo complesso.
  • Questa correzione ripristina il comportamento per le intestazioni esterne ignorando l'analisi delle intestazioni esterne e eliminando gli avvisi dalle intestazioni esterne.
  • Correzione di file .aspx/ascx in cui gli utenti potrebbero visualizzare IntelliSense incompleti o riscontrare prestazioni lente.
  • Sono stati risolti problemi di scalabilità con il provider CodeLens di Unity quando si lavora su progetti di grandi dimensioni.
  • Stringhe tradotte ripristinate nella pagina Opzioni di autenticazione del servizio di Azure.
  • Correzione dei problemi di visualizzazione intermittente del codice visivo quando si usa l'estensione Resharper.
  • È stato risolto un problema per cui il rendering di determinate finestre degli strumenti, editor e finestre di progettazione era troppo piccolo per visualizzare qualsiasi contenuto.
  • Risolve i problemi relativi all'icona dell'app mancante di Xamarin iOS, durante l'esecuzione di un'app o quando si tenta di pubblicarlo nell'App Store.
  • La compilazione di progetti con AOT+LLVM non riesce più con un errore XA3001.
  • Dopo l'aggiornamento a Visual Studio 2019 versione 16.10, in determinate circostanze, la pubblicazione delle app UWP potrebbe non riuscire con il messaggio di errore "Impossibile trovare il nome della risorsa specificato nel file di immagine". Questo problema è stato risolto.
  • È stato risolto un problema che causava l'arresto di Visual Studio 2019 quando la configurazione del dispositivo cambia.
  • Risolve tre problemi in MSBuild:
    • Evita errori di MSB4017 durante la compilazione in Azure DevOps.
    • $([MSBuild]::MakeRelative()) mantiene nuovamente le barre finali nel relativo input.
    • Escludere i glob con un modello ** finale escludere di nuovo i file senza . characters

Dalla Developer Community


16.10.1 Visual Studio 2019 versione 16.10.1

Data di rilascio: 8 giugno 2021

Riepilogo delle novità di questa versione di Visual Studio 2019 versione 16.10.1

Problemi principali corretti in questa versione

  • È stato risolto un problema che causava un arresto anomalo del compilatore IntelliSense.
  • È stato risolto un problema che poteva causare la chiusura delle istanze di Visual Studio 2019 se Esplora test è aperto nella soluzione.
  • Correzione di un errore quando gli sviluppatori compilavano soluzioni parziali dalla riga di comando.
  • Correzione di un errore nella pubblicazione ClickOnce per le applicazioni .NET Core.
  • Risolve un problema per cui la finestra dello stack di chiamate può arrestare Visual Studio 2019.
  • Correzione dell'errore di compilazione "Impossibile trovare il file di metadati '**\bin\Debug\NativeLibrary.dll' durante la compilazione di progetti di associazione iOS.

Avviso di sicurezza

CVE-2021-31957 ASP.NET vulnerabilità Denial of Service

Esiste una vulnerabilità Denial of Service quando ASP.NET Core gestisce in modo non corretto la disconnessione del client.

Dalla Developer Community


16.10.0 Visual Studio 2019 versione 16.10.0

Data di rilascio: 25 maggio 2021

Riepilogo delle novità di questa versione di Visual Studio 2019 versione 16.10.0

C++

  • Tutte le funzionalità di C++20 sono ora disponibili nel /std:c++latest commutatore. Anche se l'implementazione di MSVC degli standard C++20 (come attualmente pubblicato da ISO) è completa, alcune funzionalità principali della libreria C++20 dovrebbero essere modificate dai prossimi report difetti (correzioni di bug ISO C++20) che potrebbero modificarle in modo non compatibile con ABI. Per altri dettagli, vedere Problema Microsoft/STL #1814 .
    • C++20 immediate functions & constinit support added in 16.10
    • Le parti finali di <chrono>: nuovi orologi, secondi intercalari, fusi orari e analisi
    • Implementazione di per la formattazione del <format> testo
  • /openmp:llvm è ora disponibile in x86 e ARM64, oltre a x64
  • Le directory di inclusione possono ora essere designate come esterne con livelli di avviso di compilazione personalizzati e impostazioni di analisi del codice.
  • Aggiunta dell'opzione /await:strict per abilitare le coroutine in stile C++20 nelle modalità del linguaggio precedenti.
  • La visualizzazione del debugger di std::coroutine_handle<T> visualizza ora il nome e la firma della funzione coroutine originali e il punto di sospensione corrente.
  • Aggiunta del supporto per CMakePresets.
  • Sarà ora necessario accettare o negare l'impronta digitale della chiave host presentata dal server quando si aggiunge una nuova connessione remota in Visual Studio.
  • Aggiunta di un'opzione /external a MSVC per specificare le intestazioni che devono essere considerate esterne a scopo di avviso.

Miglioramenti degli strumenti Docker

  • Possibilità di creare un profilo di avvio che configura i servizi da avviare nel file Compose.
  • Possibilità di contrassegnare un'immagine.
  • Aggiunta di una scheda Volumi per i contenitori.
  • Aggiunta di una scheda Etichette per i contenitori.
  • Aggiunta di una scheda Etichette per le immagini.
  • I contenitori sono ora raggruppati in base al progetto Compose.

Editor

  • Per gli utenti che vogliono un'esperienza meno affollata, la spaziatura linea può essere modificata cercando "spaziatura linea" in Ricerca di Visual Studio (CTRL+Q). L'opzione è in Editor di testo\Generale.
  • Trovare nei file e Trovare tutti i riferimenti hanno un controllo per mantenere i risultati. In base ai commenti e suggerimenti della community, è stata aggiunta un'opzione per attivare l'opzione "Mantieni risultati" per impostazione predefinita. Questa opzione è disponibile cercando "Mantieni i risultati della ricerca per impostazione predefinita" in Ricerca di Visual Studio (CTRL+Q). L'opzione è in Ambiente\Trova e sostituisci. Si noti che gli utenti sono attualmente limitati a 5 risultati per Trova nei file e 5 altri risultati per Trova tutti i riferimenti.
  • Una nuova opzione in Trova nei file consente agli utenti di eseguire ricerche aggiuntive e di accodare tali risultati a una ricerca precedente.

Estendibilità dell'editor

  • Il comportamento del codice che gestisce IntraTextAdornmentTags è cambiato. Con questa modifica, proprio come con qualsiasi altro ITagger, è necessario generare un evento di modifica dei tag quando i tag sottostanti cambiano. In caso contrario, i tag potrebbero non essere mai aggiornati.

Debug e diagnostica

  • L'analisi diagnostica dei dump di memoria include ora dump di core Linux gestiti.

Produttività Git

  • Passare al Web con collegamenti diretti per creare una nuova richiesta pull e visualizzare le richieste pull in GitHub o Azure DevOps dal menu Git.
  • Eseguire il checkout di rami locali e remoti con un'unica selezione dal selettore di rami.
  • Rimuovere elementi dalla selezione repository tramite il menu di scelta rapida.
  • Attivare il caricamento automatico della soluzione quando si apre un repository Git tramite Git > Impostazioni.
  • Attivare o disattivare il comportamento di doppio clic per controllare i rami dalla finestra repository Git tramite Git > Impostazioni.
  • Sincronizzare (e quindi eseguire il push) del ramo con più remote dal menu di overflow della finestra Modifiche Git.
  • Personalizzare le azioni visibili della barra degli strumenti della finestra Modifiche Git (Recupero, Pull, Push, Sincronizzazione) dal menu di overflow.
  • Aprire il repository nel browser dal menu di overflow della finestra Modifiche Git.
  • Cercare e estrarre rami locali e remoti dalla barra di stato.
  • Cercare e passare tra repository Git locali dalla barra di stato.
  • È stato risolto un problema per cui l'elenco dei repository locali nel menu Git non si caricava all'avvio di Visual Studio.
  • Aggiungere repository secondari del progetto annidati all'elenco dei repository locali all'apertura di un repository.
  • Mantenere aperta la soluzione quando si passa ai repository tramite Git > Impostazioni.
  • Disattivare la cartella aperta quando si aprono i repository tramite Git > Impostazioni.
  • Sincronizzare il ramo con il telecomando dal pulsante commit non crittografati nella barra di stato e dal comando Sincronizza nel menu Git.
  • Recuperare ed eseguire il pull dal riquadro cronologia della finestra del repository Git anche quando non sono presenti commit in ingresso.
  • Visualizzare i dettagli del commit e il confronto delle modifiche ai file incorporate nella finestra Repository Git.
  • Connettersi o richiedere automaticamente di stabilire la connessione iniziale di Azure DevOps all'apertura di un repository Git di Azure DevOps.
  • Unire e ribasere con nomi di rami visibili, sostituendo la terminologia origine/destinazione confusa.
  • Miglioramento delle prestazioni e dell'affidabilità per i glifi del controllo del codice sorgente in Esplora soluzioni.
  • Mantenere le sezioni in ingresso/in uscita nella finestra repository Git anche se vuota.
  • Elenchi a discesa recupero/pull/push consolidati per più remote nella finestra Modifiche Git in un unico menu Azione.

Produttività .NET

  • Completamento degli argomenti nelle chiamate al metodo
  • Interfaccia utente EditorConfig
  • Esaminare visivamente e esplorare la catena di ereditarietà
  • Completamento di IntelliSense per cast, indicizzatori e operatori
  • Supporto del debugger per i generatori di origine
  • Supporto per la pulizia del codice per Visual Basic
  • Aggiornamenti di Modifica e continuazione (EnC)
  • Rimuovere i riferimenti inutilizzati
  • Linea di interruzione intelligente
  • Semplificare il refactoring delle espressioni LINQ
  • Completamento di IntelliSense per i valori di enumerazione
  • Impostazione della modalità di completamento di IntelliSense
  • Preferenza per lo stile del codice per le nuove righe
  • Trovare il supporto di tutti i riferimenti per i generatori di origine

Editor di anteprima di Razor (ASP.NET Core)

  • Aggiornamenti del completamento di IntelliSense
  • Passare al supporto delle definizioni per i componenti generici
  • Nuova configurazione dello stile di codice per tabulazioni e spazi
  • L'editor di testo Razor in Opzioni strumenti è ora denominato Razor (ASP.NET Core)

Miglioramenti all'accessibilità dell'esperienza di test

  • Console.Writeline ora viene visualizzato in Esplora test
  • L'output di test ora può mantenere i tag in modo che i collegamenti ipertestuali e i collegamenti stacktrace siano esplorabili anche dai file di log.
  • I file di log vengono creati per un singolo risultato del test quando l'output supera i 300 caratteri o se sono presenti più di 10 file allegati al risultato del test.
  • I file di log possono anche essere aperti in anteprima in modo da semplificare la gestione delle schede.
  • I file di log e Esplora test supportano CTRL PgUp/PgDn per spostarsi nel cursore e MAIUSC+CTRL PgUp/PgDn per la selezione.
  • L'editor di file di log usa ora l'interfaccia IVsTextView, il che significa che ora sarà in grado di aprire file di testo molto grandi. Questo dovrebbe eliminare la necessità per gli utenti Copy All di troncare i log e aprirli in un editor separato, ad esempio Blocco note. Per MSTest è ora incluso anche un singolo file di log che aggrega tutto l'output anziché avere solo singoli file di log per ogni riga di dati.
  • È ora possibile ottenere code coverage multipiattaforma dalla riga di comando in Ubuntu e Alpine con l'interfaccia della riga di comando dotnet. Per gli utenti interessati a ottenere code coverage nei computer destinati a tali piattaforme, è ora possibile aggiungere gli stessi comandi di raccolta code coverage che normalmente si usano nelle finestre. Per il test dotnet, vedere la documentazione.
  • Ora è presente un pulsante espandi tutto accanto al pulsante comprimi tutto in Esplora test. Questo comando è stato disponibile tramite tasti di scelta rapida (CTRL+A, CTRL+freccia destra), ma altri commenti indicano che l'aggiunta di un pulsante vale la pena aggiungere un'interfaccia utente aggiuntiva. Come sempre, grazie per averci fatto sapere cosa pensi tramite https://developercommunity.visualstudio.com/.
  • Ci sono anche alcune lievi modifiche al modo in cui Esplora test mostra "decadimento". "Decadimento" è il risultato dei test disattivati o "sbiaditi" che indicano che il risultato non è stato eseguito dall'esecuzione più recente del test. Se un risultato non fa parte dell'esecuzione del test più recente, verrà visualizzato come non aggiornato. In precedenza, le nuove individuazioni di test (o anche i vecchi risultati dei test che sono stati ritrovati) venivano visualizzate anche con icone solide. Questo ha causato qualche confusione sul motivo per cui alcuni test "Non eseguiti" sono stati sbiaditi e perché altri non erano. Questa modifica ridurrà la complessità della decadimento.
  • Con la funzionalità dei risultati dei test persistenti (aggiunta nella versione 16.2) è possibile visualizzare i risultati dei test dell'ultima esecuzione del test anche se Visual Studio è stato chiuso e riaperto. Ciò consente agli utenti di ricordare dove sono stati interrotti e di fornire più contesto senza richiedere un'altra esecuzione di test. È stato modificato anche il comportamento dei risultati persistenti in modo che vengano sempre visualizzati non aggiornati. Ciò indica che non sono stati eseguiti da un'esecuzione di test eseguita durante la sessione corrente di Visual Studio.

Strumenti Web:

  • Passare alla versione 2 dell'API per il provisioning di Azure AD
  • app Azure Configurazione come servizio Connessione ed supporta ora la configurazione dinamica

Albero delle dipendenze del progetto di creazione di pacchetti di applicazioni Windows

  • Aggiunta di un "Albero delle dipendenze" al progetto WAP

Miglioramenti degli strumenti XAML

  • Miglioramenti di Xaml IntelliSense e Ricaricamento rapido XAML per i clienti di Xamarin.Forms
  • Sono stati introdotti dati di esempio XAML per selezionare ItemsControls in WPF
  • Aggiunta di una nuova lampadina per l'accesso rapido alle proprietà comunemente modificate
  • Aggiunta di una nuova lampadina nell'editor XAML per creare un modello di visualizzazione

Strumenti di Service Fabric

  • Introduzione alle StartupServices.xml nelle applicazioni di Service Fabric

Dettagli sulle novità di Visual Studio 2019 versione 16.10

Strumenti di Docker

Finestra degli strumenti Contenitori

In questa versione sono state aggiunte alla finestra degli strumenti Contenitori per semplificare la visualizzazione e l'interazione con contenitori e immagini. Basta passare a Visualizza > altri contenitori di Windows > per provare le nuove funzionalità.

  • I contenitori sono ora raggruppati in base al progetto Compose. In questo modo è semplice indicare quali contenitori rappresentano l'applicazione. È stata anche aggiunta una scheda Etichette nei contenitori per visualizzare facilmente le etichette che si usano durante lo sviluppo.

Compose grouping option and containers label tab

  • È stata aggiunta anche una scheda Etichette per le immagini.

Images Label tab

  • La nuova scheda Volumi consente di visualizzare i volumi di un contenitore in esecuzione e anche di aprire i file in Visual Studio.

Container Volumes tab

  • È ora supportata la possibilità di contrassegnare un'immagine dalla finestra degli strumenti Contenitori. In Immagini fare clic con il pulsante destro del mouse su un'immagine e scegliere Tag.

Tagging an image

Compose.
  • Gli strumenti Docker Compose in Visual Studio offrono ora la possibilità di eseguire qualsiasi combinazione di servizi definiti nei file Compose. Aprire l'elenco a discesa Debug o fare clic con il pulsante destro del mouse sul progetto docker-compose e scegliere Gestisci avvio di Docker Compose Impostazioni per iniziare.

Manage Docker Compose Launch Settings

Produttività Git

  • Per iniziare a semplificare la creazione di richieste pull mentre ci si trova in Visual Studio, sono state aggiunte voci di menu che sono collegamenti diretti alle pagine Web che consentono di creare una richiesta pull o visualizzare un elenco di richieste pull per il repository. Il menu è dinamico in base al fatto che il repository si trova in GitHub o Azure DevOps.

Create a PR and view list of PRs on the web from the Git menu

  • La selezione dei rami nella barra di stato e la finestra Modifiche Git ora estrae un ramo locale o remoto quando si seleziona il ramo. È possibile trovare altre azioni nel menu di scelta rapida.

Left click to check out a branch and right click for additional actions

  • La nuova selezione repository nella barra di stato include un menu di scelta rapida sul pulsante destro del mouse che consente di rimuovere elementi dall'elenco.

Remove items from the repository picker list through the context menu

  • Quando si usa la selezione repository o l'elenco Repository locali del menu Git, l'apertura di un repository non caricherà più automaticamente la soluzione. Verrà invece visualizzata la visualizzazione cartelle e la soluzione disponibili in un elenco tra cui è possibile selezionare. È possibile modificare questo comportamento tramite Git > Impostazioni attivando o disattivando la casella di controllo.

  • È possibile scegliere di eseguire il check-out di un ramo dalla finestra repository Git facendo doppio clic sul nome del ramo. Se si vuole modificare questo comportamento, attivare o disattivare la casella di controllo in Git > Impostazioni.

Settings to toggle auto-sln load and branch check out.

  • È ora possibile eseguire altre azioni dalla finestra Modifiche Git. Le icone della barra degli strumenti sono personalizzabili ed è possibile scegliere le azioni da visualizzare. È possibile eseguire la sincronizzazione con più remote dal menu di overflow. È anche possibile aprire la pagina Web remota del repository nel browser.

Git Changes overflow menu with callouts to Sync, open in browser, and toolbar actions.

  • Cercare rami locali e remoti ed eseguire azioni di ramo comuni dalla selezione del ramo della barra di stato.

Branch picker in the status bar.

  • Cercare e passare tra repository Git locali dalla selezione repository della barra di stato.

Repo picker in the status bar.

  • È stato risolto un problema per cui l'elenco dei repository locali nel menu Git non era in fase di caricamento all'avvio di Visual Studio.
  • Sono state aggiunte due nuove opzioni in Git > Impostazioni per gestire la modalità di apertura e cambio di repository. È ora possibile mantenere aperta la soluzione corrente quando si passa a un altro repository

Setting to keep solution open.

  • È anche possibile scegliere di non caricare la cartella radice del repository all'apertura di un repository.

Setting to open the folder

  • Sincronizzare (quindi eseguire il push) del ramo con il telecomando dal pulsante commit non crittografato nella barra di stato e dal comando Sincronizza nel menu Git.

Sync button in the status bar.

  • Recuperare ed eseguire il pull dal riquadro cronologia della finestra del repository Git anche quando non sono presenti commit in ingresso. Accedere a queste sezioni dalla barra di stato o dal tasto di scelta rapida CTRL+0+Y.

Incoming section in Git Repository window with a callout to fetch and pull buttons.

  • Selezionare un commit nella finestra Repository Git per visualizzarne i dettagli e il confronto delle modifiche ai file senza dover passare ad altre finestre. Selezionare due commit e fare clic con il pulsante destro del mouse per confrontarli nella stessa finestra. Visualizzare i dettagli nella propria finestra per ottenere visibilità a schermo intero per approfondire le modifiche.

Embedded commit details and file comparison in Git Repository window.

  • Visualizzare il numero di eliminazioni e inserimenti in un file e modificare il layout del confronto.

Popped out Commit window with callouts to number of file changes and layout view buttons in toolbar

  • Connettersi o richiedere automaticamente di stabilire la connessione iniziale di Azure DevOps all'apertura di un repository Git di Azure DevOps. In questo modo è possibile accedere agli elementi di lavoro e alle compilazioni per il repository aperto.

Info bar in Git Changes window prompting you to connect to Azure DevOps for the current repository.">

  • Durante la risoluzione dei conflitti di ribase o unione, l'editor di merge e il menu di scelta rapida mostreranno i nomi dei rami Current e Incoming. In questo modo viene risolta la terminologia di origine e destinazione confusa.

Context menu when resolving conflicts displays the branch names.

Rebase and Merge editor displays branch names in the headings.

Produttività .NET

  • È stato aggiunto un comando Rimuovi riferimenti inutilizzati che consente di pulire i riferimenti al progetto e i pacchetti NuGet che non hanno alcun utilizzo. Questa opzione è disattivata per impostazione predefinita, quindi sarà necessario abilitarla in Strumenti>Opzioni>Editor>di testo C#>Avanzate e selezionare Mostra comando "rimuovi riferimenti inutilizzati" in Esplora soluzioni (sperimentale). Dopo aver abilitato l'opzione, il comando Rimuovi riferimenti inutilizzati verrà visualizzato nel menu di scelta rapida di un nome di progetto o di un nodo dipendenze in Esplora soluzioni:

Remove Unused References command

Se si seleziona Rimuovi riferimenti inutilizzati verrà aperta una finestra di dialogo in cui è possibile visualizzare tutti i riferimenti che verranno rimossi con un'opzione per conservare quelle che si desidera mantenere:

Remove Unused References dialog

  • È stato aggiunto un nuovo comando denominato Riga di interruzione intelligente che inserisce automaticamente un set di parentesi graffe e inserisce il cursore all'interno di tali parentesi graffe quando si usa MAIUSC+INVIO come carattere di commit. La riga di interruzione intelligente funziona per tutte le dichiarazioni di tipo che richiedono parentesi graffe, nonché proprietà, eventi, campi ed espressioni di creazione di oggetti. L'esempio seguente mostra smart break line usato in una classe e in un campo. Se il campo non ha un punto e virgola alla fine, digitando MAIUSC+INVIO il campo verrà convertito in una proprietà aggiungendo un set di parentesi graffe. È possibile premere di nuovo MAIUSC+INVIO per annullare il commit, che aggiungerà automaticamente anche un punto e virgola alla fine del campo:

Smart Break Line

  • È ora disponibile un refactoring per semplificare le espressioni LINQ che rimuoveranno la chiamata non necessaria all'Enumerable per . Metodo Where() per migliorare le prestazioni e la leggibilità. Posizionare il cursore sull'espressione LINQ. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Semplificare l'espressione LINQ.

Simplify LINQ Expression

  • È ora disponibile il completamento di IntelliSense per i valori di enumerazione quando un tipo è noto anche se il nome dell'enumerazione non viene immesso.

IntelliSense completion for Enum values

  • È stata aggiunta una nuova impostazione della modalità di completamento di IntelliSense che consente di impostare le opzioni di completamento predefinite. Questa nuova impostazione è disponibile in Strumenti>Opzioni>editor di testo Avanzate>>modalità di completamento IntelliSense predefinita, in cui è possibile scegliere tra le opzioni seguenti: Ultima usata che manterrà l'ultima impostazione usata con CTRL+ALT+SPAZIO, Tabulazione che verrà completata solo nella scheda e Automatico che è attualmente il comportamento predefinito che verrà completato in base alla punteggiatura e ai caratteri speciali.

IntelliSense completion mode setting

  • Sono state aggiunte nuove preferenze di stile del codice per le nuove righe. È possibile configurare queste preferenze con un file EditorConfig o in Strumenti>Opzioni>Editor>di testo C#>Preferenze stile>codice Nuova riga (sperimentale).

Code style options for new lines

Ad esempio, è possibile impostare le preferenze di stile del codice per segnalare una diagnostica e offrire una correzione del codice per rimuovere righe vuote aggiuntive:

Code fix remove extra blank lines

  • È ora disponibile il supporto Trova tutti i riferimenti per generatori di origine che consente di trovare riferimenti in un documento generato dall'origine.

  • È ora disponibile un'opzione di completamento che inserisce automaticamente gli argomenti durante la scrittura di una chiamata al metodo. Questa funzionalità è disattivata per impostazione predefinita, quindi sarà necessario abilitarla in Strumenti > Opzioni > Editor > di testo C# > IntelliSense e selezionare Tab due volte per inserire argomenti (sperimentale). Iniziare a scrivere una chiamata al metodo e premere tabulazioni due volte (tab+tab). Si noti che la chiamata al metodo include argomenti basati sui valori predefiniti del metodo. È quindi possibile usare le informazioni sui parametri per scorrere l'elenco di argomenti che si desidera inserire premendo i tasti freccia su e giù. È anche possibile iniziare a digitare un argomento per visualizzare l'elenco di completamento di IntelliSense e digitare punto e virgola che eseguirà il commit dell'argomento e aggiungerà un punto e virgola alla fine della chiamata al metodo.

Method call argument completion

  • È stata creata un'interfaccia utente per EditorConfig. Aprire qualsiasi file C# o Visual Basic EditorConfig dalla soluzione. Si noti che la nuova interfaccia utente aprirà la visualizzazione dello stile del codice e dell'opzione di configurazione della qualità del codice sia per C# che per Visual Basic.

EditorConfig UI

  • È ora disponibile una rappresentazione visiva per l'esplorazione e l'ispezione della catena di ereditarietà. Questa opzione è disattivata per impostazione predefinita, quindi sarà necessario attivarla in Strumenti > Opzioni > Editor > di testo C# > Avanzate e selezionare Mostra margine di ereditarietà. L'abilitazione del margine di ereditarietà aggiungerà nuove icone ai margini che rappresentano le implementazioni e gli override del codice. Facendo clic sull'icona del margine di ereditarietà verranno visualizzate le opzioni di ereditarietà che è possibile selezionare per spostarsi.

Inheritance Margin Icons

  • È ora disponibile il completamento di IntelliSense per cast, indicizzatori e operatori.

IntelliSense completion for casts, indexers, and operators

  • È ora disponibile il supporto del debugger per i generatori di origine. È prima necessario installare il componente .NET Compiler Platform SDK dal Programma di installazione di Visual Studio. Sarà quindi necessario aggiungere la <IsRoslynComponent>proprietà true</IsRoslynComponent> al file di progetto. Abilitare quindi l'opzione del debugger "Componente Roslyn" nella pagina Debug proprietà progetto e selezionare il progetto di destinazione appropriato. Premere quindi F5 sul progetto generatore che avvierà il CSC.exe/VBC.exe che compila il progetto di destinazione consentendo di eseguire il debug del codice del generatore.

Source Generator debugger

Source Generator debugger target project

In questa versione sono stati aggiunti anche i miglioramenti seguenti all'esperienza di debug Edit and Continue (EnC) in Visual Studio:

  • È ora possibile applicare modifiche al codice all'interno di una classe parziale.
  • È ora possibile applicare le modifiche all'interno di un file generato dall'origine.
  • È ora possibile aggiungere e/o modificare una direttiva using.
  • Miglioramenti dell'affidabilità e della riduzione del consumo di memoria.

Tutte e tre le modifiche sono disponibili ovunque sia attualmente supportato EnC e funzionino con i file di origine C# e Visual Basic.

Debugger e diagnostica

  • Sono stati sviluppati diversi analizzatori per rilevare i problemi comuni nei dump della memoria gestita. Questa analisi può ora essere eseguita nei dump dei core Linux gestiti.

Automatically analyze memory dumps

Grazie

Infine, ma certamente non meno, un grande ringraziamento alle persone seguenti che hanno contribuito questo mese alla produttività .NET (k.a. Roslyn:

Editor di anteprima di Razor (ASP.NET Core)

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

  • Il completamento di IntelliSense ora filtra i componenti HTML, gli elementi TagHelper e gli attributi C#:

Razor IntelliSense filters

  • Completamento di IntelliSense per gli override di C#.
  • Passare a Supporto delle definizioni per i componenet generici.
  • Nuove opzioni di configurazione dello stile del codice per schede e spazi. Questi stili di codice verranno rispettati durante la digitazione, la formattazione e la creazione di un nuovo file Razor. È possibile configurare schede e spazi nelle schede Razor dell'editor > di testo opzioni strumenti >> (ASP.NET Core). >
  • L'editor di testo Razor in Opzioni strumenti è stato rinominato da ASP.NET Core Razor Language Services a Razor (ASP.NET Core).The Razor text editor in Tools Options has been renamed from ASP.NET Core Razor Language Services to Razor (ASP.NET Core).

Per abilitare il nuovo editor Razor di anteprima, passare a Strumenti > Opzioni ambiente > Funzionalità > di anteprima, selezionare Abilita editor Razor sperimentale e quindi riavviare Visual Studio.

Miglioramenti all'accessibilità dell'esperienza di test

  • Console.Writeline ora viene visualizzato in Esplora test. L'output lungo viene visualizzato come sezione collapsible nel riquadro di riepilogo dei dettagli del test. L'output su una determinata lunghezza visualizza le prime righe e viene quindi troncato con un'opzione per aprire il log di test in una finestra separata. Lo stacktrace tronca se sono presenti più di 20 fotogrammi e mostrerà solo il primo e gli ultimi 10 fotogrammi. Una parte importante della progettazione del troncamento è stata anche incentrata sulla riduzione dei blocchi di Visual Studio quando le esecuzioni di test hanno output di grandi dimensioni. I test con output di grandi dimensioni non bloccano più il thread dell'interfaccia utente.

Test output includes Console.Writeline

  • L'output di test ora può mantenere i tag in modo che i collegamenti ipertestuali e i collegamenti stacktrace siano esplorabili anche dai file di log. Questi collegamenti sono ora semplici da tastiera.

Test output preserves hyperlinks and stacktraces

Test logs also preserve hyperlinks and stacktraces

  • I file di log vengono creati per un singolo risultato del test quando l'output supera i 300 caratteri o se sono presenti più di 10 file allegati al risultato del test. I file di log possono anche essere aperti in anteprima in modo da semplificare la gestione delle schede. I file di log e Esplora test supportano CTRL PgUp/PgDn per spostarsi nel cursore e MAIUSC+CTRL PgUp/PgDn per la selezione.

Test logs are easier to select with keyboard shortcuts

  • L'editor di file di log usa ora l'interfaccia IVsTextView, il che significa che ora sarà in grado di aprire file di testo molto grandi. Questo dovrebbe eliminare la necessità per gli utenti Copy All di troncare i log e aprirli in un editor separato, ad esempio Blocco note. Per MSTest è ora incluso anche un singolo file di log che aggrega tutto l'output anziché avere solo singoli file di log per ogni riga di dati.

Strumenti di test

  • È ora possibile ottenere code coverage multipiattaforma dalla riga di comando in Ubuntu e Alpine con l'interfaccia della riga di comando dotnet. Per gli utenti interessati a ottenere code coverage nei computer destinati a tali piattaforme, è ora possibile aggiungere gli stessi comandi di raccolta code coverage che normalmente si usano nelle finestre. Per il test dotnet, vedere la documentazione.
  • Ora è presente un pulsante espandi tutto accanto al pulsante comprimi tutto in Esplora test. Questo comando è stato disponibile tramite tasti di scelta rapida (CTRL+A, CTRL+freccia destra), ma altri commenti indicano che l'aggiunta di un pulsante vale la pena aggiungere un'interfaccia utente aggiuntiva. Come sempre, grazie per averci fatto sapere cosa pensi tramite https://developercommunity.visualstudio.com/.
  • Ci sono anche alcune lievi modifiche al modo in cui Esplora test mostra "decadimento". "Decadimento" è il risultato dei test disattivati o "sbiaditi" che indicano che il risultato non è stato eseguito dall'esecuzione più recente del test. Se un risultato non fa parte dell'esecuzione del test più recente, verrà visualizzato come non aggiornato. In precedenza, le nuove individuazioni di test (o anche i vecchi risultati dei test che sono stati ritrovati) venivano visualizzate anche con icone solide. Questo ha causato qualche confusione sul motivo per cui alcuni test "Non eseguiti" sono stati sbiaditi e perché altri non erano. Questa modifica ridurrà la complessità della decadimento.
  • Con la funzionalità dei risultati dei test persistenti (aggiunta nella versione 16.2) è possibile visualizzare i risultati dei test dell'ultima esecuzione del test anche se Visual Studio è stato chiuso e riaperto. Ciò consente agli utenti di ricordare dove sono stati interrotti e di fornire più contesto senza richiedere un'altra esecuzione di test. È stato modificato anche il comportamento dei risultati persistenti in modo che vengano sempre visualizzati non aggiornati. Ciò indica che non sono stati eseguiti da un'esecuzione di test eseguita durante la sessione corrente di Visual Studio.

Persisted test results from last Visual Studio session appear faded

Strumenti Web

La configurazione dinamica consente l'aggiornamento automatico delle risorse di configurazione tramite un middleware. Configurazione app come servizio Connessione può ora integrare automaticamente la configurazione dinamica nell'applicazione. Per usare questo servizio connesso, fare clic su Servizi Connessione ed e aggiungere app Azure Configurazione come dipendenza del servizio.

Progetto di creazione pacchetti di applicazioni Windows "Albero delle dipendenze"

  • Dopo il lavoro dell'anno precedente per abilitare i riferimenti ai pacchetti NuGet nel progetto di creazione pacchetti di applicazioni Windows (WAP), è stata abilitata una nuova interfaccia utente nell'esperienza di Esplora soluzioni wap. L'esperienza precedente non ha mostrato questi riferimenti al pacchetto o ha consentito di aggiungere pacchetti NuGet tramite l'interfaccia utente.

Windows Application Packaging Project Old User Interface.

  • Nella nuova esperienza, con l'aiuto di CPS e .NET Project System, è stato abilitato un "Albero delle dipendenze" che continua a visualizzare i riferimenti di progetto tramite il sottoalbero "Applicazioni", ma include anche un sottoalbero "Pacchetti" che consentirà di gestire anche i pacchetti NuGet.

Windows Application Packaging Project New User Interface.

Miglioramenti agli strumenti XAML (WPF & Xamarin.Forms)

Xamarin.Forms

In questa versione sono stati apportati due piccoli miglioramenti a Xaml IntelliSense e Ricaricamento rapido XAML per i clienti di Xamarin.Forms. Ricaricamento rapido "solo modifiche" non segnala più errori falsi per:

  • Setter in VisualStateManager che fanno riferimento alle proprietà senza specificare il tipo, ad esempio <Setter Property="BackgroundColor" Value="Red">.
  • ResourceDictionaries unito non sottoposto a wrapping nell'elemento <ResourceDictionary.MergedDictionaries>

Esempio:

    <Application>
    <Application.Resources>
        <ResourceDictionary Source='Colors.xaml'/>
        <Style TargetType='Label'> ... <Style>
    </Application.Resources>
    </Application>

Dati di esempio XAML

In questa versione è stata ulteriormente migliorata la funzionalità dei dati in fase di progettazione di XAML introdotta da un nuovo modo per aggiungere dati di esempio generici a ItemsControls. Questa funzionalità funziona solo per ListBox, ListView e DataGrid in WPF.

  • I dati di esempio possono essere abilitati impostando d:ItemSource='{d:SampleData}' su ListBox, ListView o DataGrid
  • Questo popola il controllo nella finestra di progettazione solo con un set di 5 elementi che corrispondono ai datatemplate e ai percorsi di binding
  • È possibile modificare il numero di elementi generati usando la ItemCount proprietà , ad esempio: d:ItemSource='{d:SampleData ItemCount=3}'

ListBox showing Sample Data.

Azioni rapide della finestra di progettazione XAML

  • Una nuova lampadina vicino all'angolo di un controllo selezionato nella finestra di progettazione XAML può essere usata per accedere rapidamente alle proprietà comunemente modificate per tale controllo.

  • I controlli supportati includono:

    • UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox
    • WPF: Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox
  • Questa funzionalità è disponibile per UWP, WPF .NET Core e WPF .NET Framework (con la funzionalità di anteprima "Nuova finestra di progettazione XAML WPF per .NET Framework" abilitata nella finestra di dialogo opzioni).

  • Le azioni rapide della finestra di progettazione XAML hanno anche un modello di estendibilità. Per altre informazioni sulla creazione di azioni personalizzate, vedere XAML Designer Extensibility GitHub

XAML Designer Quick Actions on a Button

Strumenti MVVM per XAML

In questa versione è stata introdotta una lampadina nell'editor XAML per creare un modello di visualizzazione. Questa lampadina viene visualizzata sull'elemento radice del documento XAML quando viene rilevato che nel progetto viene usato un framework MVVM. La finestra di dialogo consente la personalizzazione dello spazio dei nomi del modello di visualizzazione generato, della cartella e del modello di visualizzazione di base ereditato.

Create view-model lightbulb experience

La lampadina imposta anche il modello di visualizzazione generato come x:DataType(Xamarin.Forms) o d:DataContext(tutte le altre piattaforme) per il documento XAML, consentendo all'utente di sfruttare ulteriormente le lampadine dell'editor XAML per generare proprietà e comandi associati nei modelli di visualizzazione.

Strumenti di Service Fabric

Questa funzionalità introduce StartupServices.xml file in una progettazione di un'applicazione di Service Fabric. Questo file ospita la sezione DefaultServices di ApplicationManifest.xml. Con questa implementazione, i parametri correlati a DefaultServices e Definizione del servizio vengono spostati da ApplicationManifest.xml esistenti a questo nuovo file denominato StartupServices.xml. Questo file viene usato in ogni funzionalità (Build/Rebuild/F5/CTRL+F5/Publish) in Visual Studio.

Problemi principali corretti in questa versione

  • È stato risolto un problema per cui gli sviluppatori C# richiamavano il comando Edit.SmartBreakline rimuoveva tutto il contenuto nella funzione di accesso di Property.
  • È stato risolto un problema per cui gli sviluppatori che aggiornano un'impostazione codestyle applicavano la modifica in tutte le istanze di Visual Studio anziché solo all'interno della cartella desiderata.
  • L'icona "Applica modifiche al codice" veniva visualizzata ogni volta che è stato aperto un progetto natvie o unito. Verrà abilitato solo dopo l'avvio del debug da parte di uno sviluppatore.
  • Correzione di una modifica che causa un'interruzione in AudioUnitPropertyIDType
  • È stato risolto un problema per cui gli sviluppatori che usano il framework di unit test UWP non erano in grado di eseguire test nei dispositivi remoti.

Dalla Developer Community

Developer Community include un elenco completo di tutti gli elementi inclusi in questa versione.

Ecco alcuni dei principali problemi votati rilasciati nella versione 16.10:


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 Feedback Icon 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