Visual Studio IconNote sulla versione di Visual Studio 2019 versione 16.0


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

Intervallo di tempo del supporto

Visual Studio 2019 versione 16.0 non è più supportato.

Gli utenti Enterprise e Professional di Visual Studio 2019 versione 16.0 beneficiano del supporto e riceveranno correzioni per le vulnerabilità della sicurezza fino a gennaio 2021. Questo intervallo di tempo dipende dal fatto che in dicembre 2019 Visual Studio 2019 versione 16.4 è stato designato come baseline di manutenzione finale per il prodotto Visual Studio 2019. Per altre informazioni sulle baseline supportate di Visual Studio, vedere i 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.0

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. Qui è possibile trovare informazioni approfondite sulle versioni di Visual Studio 2019.


Release Notes Icon Visual Studio 2019 versione 16.0.22

Data di rilascio: 12 gennaio 2020

Avviso di sicurezza per la versione 16.0.22

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.


Release Notes Icon Visual Studio 2019 versione 16.0.21

Data di rilascio: 08 dicembre 2020

Avviso di sicurezza per la versione 16.0.21

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.


Release Notes Icon Visual Studio 2019 versione 16.0.20

Data di rilascio: 10 novembre 2020

Avviso di sicurezza per la versione 16.0.20

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.


Release Notes Icon Visual Studio 2019 versione 16.0.19

Data di rilascio: 13 ottobre 2020

In questa versione 16.0.19

  • .NET Core SDK 2.1.616 aggiunto a Visual Studio 2019.

Release Notes Icon Visual Studio 2019 versione 16.0.18

Data di rilascio: 8 settembre 2020

Problema risolto nella versione 16.0.18

  • Le versioni non più supportate di .NET Core non verranno più reinstallate durante un ripristino o un aggiornamento se sono state rimosse all'esterno dell'installazione di Visual Studio.

Avviso di sicurezza per la versione 16.0.18

CVE-2020-1130 Vulnerabilità di elevazione dei privilegi dell'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. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eseguire processi in un contesto con privilegi elevati.

CVE-2020-1133 Vulnerabilità di elevazione dei privilegi dell'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 file. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eseguire processi in un contesto con privilegi elevati.

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

Esiste una vulnerabilità di esecuzione del codice remoto in Visual Studio quando gestisce in modo non corretto gli oggetti in memoria. Un utente malintenzionato può sfruttare efficacemente questa vulnerabilità ed eseguire codice arbitrario nel contesto dell'utente corrente.

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

Esiste una vulnerabilità di esecuzione del codice remoto in Visual Studio quando gestisce in modo non corretto gli oggetti in memoria. Un utente malintenzionato può sfruttare efficacemente questa vulnerabilità ed eseguire codice arbitrario nel contesto dell'utente corrente.

CVE-2020-1045 Vulnerabilità di bypass delle funzionalità di sicurezza principali di Microsoft ASP.NET

Esiste una vulnerabilità di bypass della funzionalità di sicurezza nel modo in cui Microsoft ASP.NET Core analizza i nomi dei cookie codificati. Il parser del cookie di ASP.NET Core decodifica intere stringhe di cookie e ciò potrebbero consentire a un utente malintenzionato di impostare un secondo cookie con il nome codificato con percentuale.


Release Notes Icon Visual Studio 2019 versione 16.0.17

Data di rilascio: 11 agosto 2020

Problema risolto nella versione 16.0.17

Avviso di sicurezza per la versione 16.0.17

CVE-2020-1597 ASP.NET vulnerabilità Core Denial of Service

Esiste una vulnerabilità Denial Of Service quando ASP.NET Core gestisce le richieste Web in modo non corretto. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e causare un attacco Denial of Service contro un'applicazione Web ASP.NET Core. La vulnerabilità può essere sfruttata da remoto, senza autenticazione.


Release Notes Icon Visual Studio 2019 versione 16.0.16

Data di rilascio: 14 luglio 2020

Problemi risolti nella versione 16.0.16

Avviso di sicurezza per la versione 16.0.16

CVE-2020-1393 Vulnerabilità di elevazione dei privilegi del servizio di raccolta standard dell'hub di diagnostica

Esiste una vulnerabilità di elevazione dei privilegi quando il servizio dell'agente di raccolta standard dell'hub di diagnostica di Windows non riesce a purificare correttamente l'input, causando un comportamento di caricamento delle librerie non sicuro.

CVE-2020-1416 Vulnerabilità di elevazione dei privilegi di Visual Studio

Esiste una vulnerabilità di elevazione dei privilegi in Visual Studio durante il caricamento delle dipendenze software.

CVE-2020-1147 Vulnerabilità Denial of Service di .NET Core

Un utente malintenzionato non autenticato remoto potrebbe sfruttare questa vulnerabilità inviando richieste appositamente predisposte a un'applicazione ASP.NET Core o a un'altra applicazione che analizza determinati tipi di XML. L'aggiornamento della sicurezza risolve la vulnerabilità limitando i tipi che possono essere presenti nel payload XML.


Release Notes Icon Visual Studio 2019 versione 16.0.15

Data di rilascio: 09 giugno 2020

Problemi risolti nella versione 16.0.15

Avviso di sicurezza per la versione 16.0.15

CVE-2020-1108 / CVE-2020-1108.NET Core Denial of Service vulnerabilità

Per risolvere in modo completo CVE-2020-1108, Microsoft ha rilasciato aggiornamenti per .NET Core 2.1 e .NET Core 3.1. I clienti che usano una di queste versioni di .NET Core devono installare la versione più recente di .NET Core. Vedere le note sulla versione per i numeri di versione più recenti e istruzioni per l'aggiornamento di .NET Core.

CVE-2020-1202 / CVE-2020-1203 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 o l'agente di raccolta standard di Visual Studio non riesce a gestire correttamente gli oggetti in memoria.

CVE-2020-1293 / CVE-2020-1278 / CVE-2020-1257 Vulnerabilità di elevazione dei privilegi del servizio agente di raccolta standard dell'hub di diagnostica

Esiste una vulnerabilità di elevazione dei privilegi quando il servizio dell'agente di raccolta standard dell'hub di diagnostica gestisce in modo non corretto le operazioni sui file


Release Notes Icon Visual Studio 2019 versione 16.0.14

Data di rilascio: 12 maggio 2020

Problemi risolti nella versione 16.0.14

  • Aggiunta di una modifica che consente agli amministratori IT aziendali e ai tecnici della distribuzione di configurare strumenti come il client Microsoft Update e SCCM per determinare l'applicabilità degli aggiornamenti di VS2019 16.0 ospitati nel catalogo di Microsoft Update e in WSUS.

Avviso di sicurezza per la versione 16.0.14

CVE-2020-1108 Vulnerabilità Denial of Service di .NET Core

Un utente malintenzionato non autenticato remoto potrebbe sfruttare questa vulnerabilità inviando richieste appositamente predisposte all'applicazione .NET Core. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui l'applicazione Web .NET Core gestisce le richieste Web.


Release Notes Icon Visual Studio 2019 versione 16.0.13

Data di rilascio: 14 aprile 2020

Avviso di sicurezza per la versione 16.0.13

CVE-2020-0899 Vulnerabilità di elevazione dei privilegi in Microsoft Visual Studio

Esiste una vulnerabilità di elevazione dei privilegi quando il servizio di aggiornamento di Microsoft Visual Studio gestisce in modo errato le autorizzazioni per i file. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe sovrascrivere contenuto di file arbitrario nel contesto di sicurezza del sistema locale.

CVE-2020-0900 Vulnerabilità di elevazione dei privilegi del servizio di installazione delle estensioni di Visual Studio

Esiste una vulnerabilità di elevazione dei privilegi quando il servizio di installazione delle estensioni di Visual Studio gestisce in modo errato le operazioni su file. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eliminare file in posizioni arbitrarie con autorizzazioni elevate.

CVE-2020-5260 Vulnerabilità di perdita delle credenziali in Git per Visual Studio a causa di convalida insufficiente degli URL

Esiste una vulnerabilità di perdita delle credenziali quando gli URL creati appositamente vengono analizzati e inviati ai programmi di supporto per le credenziali. Questa condizione può portare all'invio di credenziali all'host errato.


Release Notes Icon Visual Studio 2019 versione 16.0.12

Data di rilascio: 10 marzo 2020

Problemi risolti nella versione 16.0.12

Avviso di sicurezza

CVE-2020-0793 & CVE-2020-0810 Vulnerabilità di elevazione dei privilegi del servizio 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 errato le operazioni sui file o il servizio dell'agente di raccolta standard dell'hub di diagnostica di Windows non riesce a purificare correttamente l'input.

CVE-2020-0884 Vulnerabilità di spoofing quando si crea il componente aggiuntivo di Outlook Web

Esiste una vulnerabilità di spoofing quando si crea un componente aggiuntivo di Outlook Web se è abilitata l'autenticazione a più fattori

CVE-2020-0789 Vulnerabilità di tipo Denial of Service del servizio di installazione delle estensioni di Visual Studio

Esiste una vulnerabilità di tipo Denial of Service quando il servizio di installazione delle estensioni di Visual Studio gestisce in modo errato i collegamenti reali. Se un utente malintenzionato riesce a sfruttare questa vulnerabilità, il sistema di destinazione potrebbe smettere di rispondere.


Release Notes Icon Visual Studio 2019 versione 16.0.11

Data di rilascio: 14 gennaio 2020

Avviso di sicurezza

CVE-2020-0602 Vulnerabilità Denial Of Service ASP.NET Core

Un utente malintenzionato non autenticato remoto potrebbe sfruttare questa vulnerabilità inviando richieste appositamente predisposte all'applicazione ASP.NET Core. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui l'applicazione Web ASP.NET Core gestisce le richieste Web.

CVE-2020-0603 Vulnerabilità di esecuzione remota del codice di ASP.NET Core

Un utente malintenzionato non autenticato remoto potrebbe sfruttare questa vulnerabilità inviando richieste appositamente predisposte all'applicazione ASP.NET Core. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui l'applicazione Web ASP.NET Core gestisce la memoria.


Release Notes Icon Visual Studio 2019 versione 16.0.10

Data di rilascio: 10 dicembre 2019

Problemi risolti nella versione 16.0.10

Avviso di sicurezza

CVE-2019-1349 Vulnerabilità di esecuzione remota di Git per Visual Studio a causa di restrizioni troppo permissive per i nomi dei moduli secondari

Esiste una vulnerabilità di esecuzione remota del codice quando Git riscontra collisioni per i nomi di moduli secondari per le directory di moduli secondari di pari livello. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eseguire codice da remoto nel computer di destinazione. L'aggiornamento della sicurezza risolve la vulnerabilità con una nuova versione di Git per Windows che richiede che la directory per il clone dei moduli secondari sia vuota.

CVE-2019-1350 Vulnerabilità di esecuzione remota di Git per Visual Studio a causa di virgolette non corrette per gli argomenti della riga di comando

Esiste una vulnerabilità di esecuzione remota del codice quando Git interpreta gli argomenti della riga di comando con determinate virgolette durante una clonazione ricorsiva in combinazione con URL SSH. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eseguire codice da remoto nel computer di destinazione. L'aggiornamento della sicurezza risolve la vulnerabilità con una nuova versione di Git per Windows che corregge il problema.

CVE-2019-1351 Vulnerabilità di sovrascrittura di file arbitrari di Git per Visual Studio causata dall'utilizzo di nomi di unità non composti da lettere durante la clonazione

Esiste una vulnerabilità di sovrascrittura di file arbitrari in Git quando i nomi di unità non composti da lettere ignorano i controlli di sicurezza in git clone. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe scrivere in file arbitrari nel computer di destinazione. L'aggiornamento della sicurezza risolve la vulnerabilità con una nuova versione di Git per Windows che corregge il problema.

CVE-2019-1352 Vulnerabilità di esecuzione remota di Git per Visual Studio a causa del mancato riconoscimento dei flussi dei dati alternativi NTFS

Esiste una vulnerabilità di esecuzione remota del codice in Git durante la clonazione e la scrittura nella directory . git/ tramite flussi dei dati alternativi NTFS. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eseguire codice da remoto nel computer di destinazione. L'aggiornamento della sicurezza risolve la vulnerabilità con una nuova versione di Git per Windows che riconosce i flussi dei dati alternativi NTFS.

CVE-2019-1354 Vulnerabilità di sovrascrittura di file arbitrari di Git per Visual Studio a causa del mancato rifiuto di scrivere file tracciati contenenti barre rovesciate

Esiste una vulnerabilità di sovrascrittura di file arbitrari in Git a causa della quale le voci dell'albero con barre rovesciate e collegamenti simbolici dannosi potrebbero uscire dall'albero di lavoro. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe scrivere in file arbitrari nel computer di destinazione. L'aggiornamento della sicurezza risolve la vulnerabilità con una nuova versione di Git per Windows che non consente l'utilizzo di barre rovesciate.

CVE-2019-1387 Vulnerabilità di esecuzione remota di Git per Visual Studio a causa di una convalida troppo permissiva per i nomi dei moduli secondari nei cloni ricorsivi

Esiste una vulnerabilità di esecuzione di codice remota in Git durante la clonazione ricorsiva con moduli secondari. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eseguire codice da remoto nel computer di destinazione. L'aggiornamento della sicurezza risolve la vulnerabilità con una nuova versione di Git per Windows che applica criteri più restrittivi per la convalida dei nomi dei moduli secondari.

CVE-2019-1486 Vulnerabilità del reindirizzamento URL dell'estensione Live Share

È stata rilevata una vulnerabilità di spoofing nell'estensione Visual Studio Live Share, a causa della quale un guest connesso a una sessione di Live Share veniva reindirizzato a un URL arbitrario specificato dall'host della sessione. Un utente malintenzionato avrebbe potuto sfruttare questa vulnerabilità e ottenere l'apertura di un browser nel computer del guest con passaggio a un URL dannoso senza consenso esplicito. Questo faceva parte della funzionalità "server condiviso" di Live Share che consentiva l'inoltro automatico delle porte durante una sessione di Live Share attiva. L'aggiornamento più recente risolve questa vulnerabilità richiedendo il consenso al guest di Live Share prima di passare all'URL specificato dall'host.


Release Notes Icon Visual Studio 2019 versione 16.0.9

Data di rilascio: 15 ottobre 2019

Avviso di sicurezza

CVE-2019-1425 Vulnerabilità di elevazione dei privilegi per i pacchetti NPM (pubblicato il 12 novembre 2019)

Esiste una vulnerabilità di elevazione dei privilegi quando Visual Studio non riesce a convalidare correttamente collegamenti reali durante l'estrazione dei file archiviati. Le vulnerabilità sono state introdotte dai pacchetti NPM usati da Visual Studio come descritto nei due avvisi NPM seguenti: npmjs.com/advisories/803 e npmjs.com/advisories/886. Le versioni aggiornate di questi pacchetti NPM sono incluse in questa versione di Visual Studio.


Release Notes Icon Visual Studio 2019 versione 16.0.8

Data di rilascio: 10 settembre 2019

Problemi risolti in Visual Studio 2019 versione 16.0.8

Avviso di sicurezza

CVE-2019-1232: vulnerabilità di elevazione dei privilegi del servizio dell'agente di raccolta standard dell'hub di diagnostica

Esiste una vulnerabilità di elevazione dei privilegi quando il servizio dell'agente di raccolta standard dell'hub di diagnostica rappresenta in modo non corretto determinate operazioni sui file. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe ottenere privilegi elevati. Un utente malintenzionato con accesso senza privilegi a un sistema vulnerabile potrebbe riuscire a sfruttare questa vulnerabilità. L'aggiornamento della sicurezza risolve la vulnerabilità assicurando che il servizio dell'agente di raccolta standard dell'hub di diagnostica rappresenti correttamente le operazioni sui file.


Release Notes Icon Visual Studio 2019 versione 16.0.7

Data di rilascio: 13 agosto 2019

Problemi risolti in Visual Studio 2019 versione 16.0.7

Avviso di sicurezza

CVE-2019-1211 Vulnerabilità dell'elevazione dei privilegi in Git per Visual Studio

È stata rilevata una vulnerabilità relativa all'elevazione dei privilegi in Git per Visual Studio quando i file di configurazione vengono analizzati in modo non corretto. Un utente malintenzionato può sfruttare efficacemente questa vulnerabilità ed eseguire codice nel contesto di un altro utente locale. Per sfruttare la vulnerabilità, un utente malintenzionato autenticato deve modificare i file di configurazione Git in un sistema prima di eseguire un'installazione completa dell'applicazione. L'utente malintenzionato deve quindi convincere un altro utente nel sistema a eseguire specifici comandi Git. L'aggiornamento risolve il problema cambiando le autorizzazioni necessarie per modificare i file di configurazione.

**CVE-2019-1301: vulnerabilità Denial of Service in .NET Core

Esiste una vulnerabilità Denial Of Service quando .NET Core gestisce le richieste in modo non corretto. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e causare un attacco Denial of Service contro un'applicazione Web .NET Core. La vulnerabilità può essere sfruttata da remoto, senza autenticazione.

L'aggiornamento risolve la vulnerabilità correggendo il modo in cui l'applicazione Web .NET Core gestisce le richieste Web.


Release Notes IconVisual Studio 2019 versione 16.0.6

Data di rilascio: 09 luglio 2019

Problemi risolti in Visual Studio 2019 versione 16.0.6

  • È stato corretto il supporto dell'assistente vocale nei sistemi che vengono eseguiti in Windows 10 versione 1903 o installati con .NET 4.8.

Avviso di sicurezza

CVE-2019-1075 Vulnerabilità di spoofing in ASP.NET Core

Gli aggiornamenti di .NET Core sono stati rilasciati oggi e sono inclusi in questo aggiornamento di Visual Studio. Questa versione risolve problemi di protezione e altri problemi importanti. I dettagli sono disponibili nelle Note sulla versione di .NET Core.

CVE-2019-1077 Vulnerabilità dell'estensione durante l'aggiornamento automatico di Visual Studio

Esiste una vulnerabilità di elevazione dei privilegi quando il processo di aggiornamento automatico dell'estensione di Visual Studio non esegue in modo corretto determinate operazioni sui file. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eliminare file in posizioni arbitrarie. Per sfruttare questa vulnerabilità, un utente malintenzionato deve ottenere l'accesso senza privilegi a un sistema vulnerabile. L'aggiornamento della sicurezza risolve la vulnerabilità proteggendo le posizioni in cui l'aggiornamento automatico dell'estensione di Visual Studio esegue operazioni sui file.

CVE-2019-1113 La deserializzazione XOML WorkflowDesigner consente l'esecuzione di codice

Un file XOML che fa riferimento a determinati tipi può causare l'esecuzione di codice casuale quando il file XOML viene aperto in Visual Studio. Ora è stata implementata una restrizione sui tipi che possono essere usati nei file XOML. Se viene aperto un file XOML contenente uno dei tipi che non sono più autorizzati, un messaggio spiega che il tipo non è autorizzato.

Per altre informazioni, vedere https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.


Release Notes IconVisual Studio 2019 versione 16.0.5

Data di rilascio: 11 giugno 2019

Problemi risolti in Visual Studio 2019 versione 16.0.5


Release Notes Icon Visual Studio 2019 versione 16.0.4

Data di rilascio: 14 maggio 2019

Problemi risolti in Visual Studio 2019 versione 16.0.4

Avviso di sicurezza

CVE-2019-0727 Vulnerabilità di elevazione dei privilegi del servizio dell'agente di raccolta standard dell'hub di diagnostica

Esiste una vulnerabilità di elevazione dei privilegi quando il servizio dell'agente di raccolta standard dell'hub di diagnostica esegue in modo non corretto determinate operazioni sui file. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe eliminare file in posizioni arbitrarie. Per sfruttare questa vulnerabilità, un utente malintenzionato deve ottenere l'accesso senza privilegi a un sistema vulnerabile. L'aggiornamento della sicurezza risolve la vulnerabilità proteggendo le posizioni in cui il servizio dell'agente di raccolta standard dell'hub di diagnostica esegue operazioni sui file.


Release Notes Icon Visual Studio 2019 versione 16.0.3

Data di rilascio: 30 aprile 2019

Novità in Visual Studio 2019 versione 16.0.3

  • Visual Studio Tools per Kubernetes supporta ora la versione di Azure Dev Spaces più recente.

Problemi risolti in Visual Studio 2019 versione 16.0.3


Release Notes Icon Visual Studio 2019 versione 16.0.2

Data di rilascio: 18 aprile 2019

Problemi risolti in Visual Studio 2019 versione 16.0.2


Release Notes Icon Visual Studio 2019 versione 16.0.1

Data di rilascio: 09 aprile 2019

Problemi risolti in Visual Studio 2019 versione 16.0.1


Release Notes Icon Visual Studio 2019

Data di rilascio: 2 aprile 2019

Riepilogo delle novità in Visual Studio 2019

Installare

IDE

  • Collaborazione con altri utenti grazie a Visual Studio Live Share, installato per impostazione predefinita. Il supporto di linguaggi aggiuntivi per C++, VB.NET e Razor consente agli utenti guest di visualizzare la soluzione e di condividere la differenze di controllo del codice sorgente.
  • Apertura del codice usato di recente o avviato da uno dei flussi usati più di frequente, ad esempio clonazione, apertura o creazione di un progetto nella nuova finestra iniziale.
  • Creazione di nuovi progetti con un'esperienza di ricerca e filtri migliorati grazie a un nuovo elenco di modelli ordinati in base alla diffusione.
  • Maggiore disponibilità di spazio verticale per il codice e un aspetto moderno grazie a un set di nuove modifiche visuali nella shell.
  • Visualizzazione di una versione più chiara dell'IDE indipendentemente dalla configurazione o dal dimensionamento dello schermo poiché il supporto per la sensibilità ai valori DPI per monitor è stato migliorato.
  • Funzionalità di ricerca migliorate in Visual Studio per menu, comandi, opzioni e componenti installabili.
  • Informazioni rapide sull'integrità del file di codice tramite un indicatore per il documento. Esecuzione e configurazione vengono realizzate tramite la pulizia del codice avviata con un solo clic dall'indicatore.
  • Semplice gestione delle funzionalità di anteprima per cui è stato dato il consenso esplicito in una nuova pagina appropriata nella finestra di dialogo Opzioni.
  • Creazione di nuovi progetti con miglioramenti nella ricerca basata su tag ed elenco "Modelli di progetto recenti" facilmente accessibile.
  • Creazione di nuovi elementi direttamente dalla ricerca di Visual Studio e individuazione più rapida dei risultati con pertinenza migliore.
  • Nuova esperienza di gestione delle notifiche per restare sempre aggiornati su informazioni importanti, ad esempio le richieste di Visual Studio Live Share.
  • Possibilità di salvare una raccolta di correzioni per la pulizia del codice come profilo per selezionare facilmente le correzioni da eseguire durante la pulizia del codice.
  • Nuovi refactoring e correzioni del codice per .NET.
  • Configurazione semplificata dei progetti .NET Core con file di progetto di prima classe.
  • Visualizzazione dello stato delle estensioni con tag Anteprima, A pagamento e Versione di prova nella finestra di dialogo Estensioni e aggiornamenti.
  • Controllo e configurazione delle funzionalità di anteprima da attivare, in quanto in questa anteprima sono state ripristinate le impostazioni predefinite.
  • Possibilità di mantenere le estensioni aggiornate escludendo determinate API nelle finestre di test, che sono state contrassegnate come deprecate in questa versione.
  • Accesso, esplorazione, clonazione con un clic o connessione ai repository ospitati da Azure DevOps tramite la finestra iniziale.
  • Installazione delle estensioni per gli altri host di controllo del codice sorgente per visualizzare i repository di proprietà dell'utente e dell'organizzazione.
  • Miglioramento dell'esperienza con tema blu, che tiene conto dei commenti e suggerimenti sulla versione riducendo la luminosità, migliorando il contrasto generale e risolvendo altri problemi di usabilità.
  • Applicazione delle preferenze di stile per il codice dalla riga di comando con lo strumento globale dotnet format.
  • MSBuild e Visual Studio ora fanno riferimento a .NET Framework 4.7.2 per impostazione predefinita.
  • Rimozione di alcune funzionalità correlate a Servizio app di Azure da Esplora server. In Cloud Explorer sono invece disponibili funzionalità equivalenti.

Prestazioni

Debug e diagnostica generali

  • Parole chiave di ricerca nelle finestre Espressione di controllo, Auto e Variabili locali durante l'esecuzione del debug per migliorare la possibilità di trovare oggetti o valori.
  • Visualizzazione di un elenco a discesa di identificatori di formato nelle finestre Espressione di controllo, Auto e Variabili locali quando si esaminano i dati.
  • Uso di un visualizzatore personalizzato, ora compatibile con .NET Core.
  • Debug di applicazioni di grandi dimensioni con elevate quantità di moduli e file PDB.
  • Avvio di Google Chrome con argomenti personalizzati e debug delle applicazioni JavaScript, il tutto all'interno dell'IDE di Visual Studio.
  • Uso dell'evidenziazione del percorso critico per gli strumenti Utilizzo CPU e DotNet Object Allocation (Allocazione di oggetti .NET) nel profiler delle prestazioni.
  • Interrompere quando il valore della proprietà di un oggetto specifico cambia nelle applicazioni .NET Core 3.0+ usando punti di interruzione dei dati, una funzionalità originariamente esclusiva di C++.
  • Dalla Preview 1, l'interfaccia utente è stata aggiornata e semplificata per eseguire ricerche nelle finestre Auto, Variabili locali ed Espressioni di controllo. La funzione Aumenta profondità di ricerca è stata sostituita con un elenco a discesa per poter selezionare velocemente il livello di profondità per le ricerche iniziali e successive.

Controllo del codice sorgente e Team Explorer

  • Archiviazione temporanea delle modifiche in modo che sia possibile eseguire un'altra attività tramite il supporto degli strumenti Git di Team Explorer per Git stash.
  • Possibilità di usare l'estensione facoltativa Richieste pull per Visual Studio, disponibile in Visual Studio Marketplace, che si integra con le verifiche di richiesta pull in Visual Studio.
  • Uso della nuova esperienza degli elementi di lavoro di Azure DevOps basata sui flussi di lavoro degli sviluppatori, ad esempio visualizzazioni di elementi di lavoro specifici dell'utente, creazione di un ramo da un elemento di lavoro, ricerca di elementi di lavoro con la funzione menzione e modifica inline.

Estendibilità

  • Uso di un singolo SDK unificato di Visual Studio nel pacchetto NuGet Microsoft.VisualStudio.SDK.
  • Possibilità di sfruttare l'aggiornamento del progetto VSIX che ora include una classe AsyncPackage.
  • Possibilità di provare il nuovo modello di progetto VSIX vuoto aggiunto.
  • Nella finestra di dialogo Estensioni e aggiornamenti è ora indicato se un'estensione è gratuita, a pagamento o una versione di valutazione gratuita.

Linguaggi di programmazione

C#

Accedere all'anteprima delle funzionalità del linguaggio 8.0 supportate dal compilatore C#, tra cui:

  • Tipi riferimento nullable: quando la funzionalità è attivata (ad esempio, a livello di progetto con #nullable enable o a livello di progetto con <NullableContextOptions>enable</NullableContextOptions>), i tipi riferimento vengono considerati nullable se annotati con ?e come non nullable in caso contrario. Il compilatore quindi analizza il flusso di valori null e segnala eventuali utilizzi non sicuri.
  • switchespressioni: offre switchsemantiche simili in un contesto di espressione.
  • Criteri ricorsivi: i nuovi modelli consentono di testare campi/proprietà e elementi posizionali (da tuple o decostruzione).
  • Supporto per i tipi Range e Index usato in CoreFX per il sezionamento, tra cui la sintassi dei valori letterali x..y per gli intervalli.
  • I flussi asincroni rappresentati da IAsyncEnumerable<T> possono essere enumerati in modo asincrono con await foreach e creati con metodi iterator async IAsyncEnumerable<T>.
  • using dichiarazioni: eliminare alla fine del blocco corrente, senza aumentare il livello di annidamento. Gli struct ref possono essere eliminati implementando un metodo Dispose() pubblico.
  • static funzioni locali: le funzioni locali contrassegnate con static non possono fare riferimento this o variabili nelle funzioni di inclusione.
  • Funzioni locali ed espressioni lambda possono ora dichiarare parametri e variabili locali che consentono di occultare i nomi delle variabili delle funzioni contenitore.
  • Assegnazione null-coalescing: x ??= y; assegna solo y a x se x era null.

Altre informazioni sono disponibili nella panoramica di C# 8.0 di Mads.

Vedere lo stato delle funzionalità del linguaggio C# e le modifiche che causano un'interruzione per maggiori dettagli.

Inoltre, è possibile usare funzionalità del linguaggio C# più moderne in Visual Studio per impostazione predefinita.

C++
  • Risparmio di tempo quando si scrive codice C++ e XAML usando Visual Studio IntelliCode, un'estensione facoltativa che offre consigli basati sull'intelligenza artificiale per il codice.
  • Avvisi di analisi codice all'interno dell'editor. L'analisi codice viene eseguita automaticamente in background e gli avvisi vengono visualizzati come linee a zigzag di colore verde.
  • Nuova barra dei modelli, che usa l'interfaccia utente Finestra di anteprima e supporta i modelli annidati.
  • Nuova implementazione aggiornata del controllo dei profili di durata C++.
  • Configurazione dei progetti CMake tramite il nuovo editor delle impostazioni di CMake, che offre un'alternativa a CMakeSettings.json.
  • Introduzione di una serie di miglioramenti per il back-end, tra cui la vettorializzazione SIMD di OpenMP, l'accelerazione della fase di collegamento e un incorporamento più aggressivo.
  • Apertura di cache di CMake esistenti generate da strumenti esterni, come CMakeGUI, o sistemi di meta-compilazione personalizzati.
  • Miglioramento dell'analisi con /Qspectre per fornire assistenza per la mitigazione per Spectre variante 1 (CVE-2017-5753). Per altre informazioni, vedere il post di blog del team di Visual C++.
  • Spostamento rapido tra gli argomenti di esempio precedenti ora che la barra modelli per IntelliSense per i modelli ha un elenco a discesa degli elementi usati più di recente.
F#
  • F# 4.6 è stata rilasciata insieme ad altri miglioramenti del compilatore.
  • Miglioramenti delle prestazioni per soluzioni di dimensioni maggiori e diverse correzioni di bug per gli strumenti F# ed F#.
  • Informazioni su parte dello straordinario lavoro svolto da collaboratori open source per il linguaggio e gli strumenti F#.
JavaScript/TypeScript
Python
  • Semplificazione dell'aggiunta di ambienti virtuali e Conda tramite la finestra di dialogo per l'aggiunta di ambienti di Python.
  • Gestione semplificata degli ambienti Python, con il supporto migliorato per le aree di lavoro Apri cartella usando una nuova barra degli strumenti per la selezione dell'ambiente Python.
  • Creazione di sessioni di Visual Studio Live Share e collaborazione al codice Python con altri utenti di Visual Studio.

Tecnologie Web

Strumenti per contenitori

Sviluppo di app per dispositivi mobili Xamarin

Piattaforma UWP (Universal Windows Platform)

  • Conservazione di commenti, spaziature, spazi dei nomi e altre modifiche del testo quando si apportano modifiche dalla finestra di progettazione. La finestra di progettazione del manifesto di pacchetto mantiene ora una rigorosa fedeltà alle modifiche XML apportate al file Package.appxmanifest.
  • Uso del progetto Creazione pacchetti di applicazione Windows per i progetti .NET Core per la produzione di pacchetti MSIX.
  • Uso della procedura guidata di creazione di pacchetti per gli invii diretti in Microsoft Store.
  • La distribuzione in dispositivi Windows Mobile non è più supportata in Visual Studio 2019. I tentativi di distribuzione in un dispositivo Windows 10 Mobile genereranno un errore simile a "La distribuzione nei dispositivi Windows Mobile non è supportata in Visual Studio 2019". Se è necessario continuare a lavorare su un'applicazione per dispositivi Windows 10 Mobile, usare ancora Visual Studio 2017.

Strumenti di debug XAML:

  • Xaml Edit & Continue supporta ora x:bind (UWP): XAML Edit & Continue supporta ora la modifica dei data binding creati con x:bind per i percorsi contenenti proprietà pubbliche, nome elemento, percorsi di proprietà indicizzate (raccolte), proprietà associate e proprietà cast. Altre modifiche non sono supportate. Questo miglioramento è disponibile per tutte le app con versioni minima e massima destinate a Windows 10 SDK versione 1809 (build 10.0.17763) o successiva. (Nota: XAML Edit & Continue è ora noto come XAML Ricaricamento rapido a partire da Visual Studio 2019 Update 2+).

SQL Server Data Tools

  • Aggiornamento di SSDT e DacFX che ora include il supporto delle regole di confronto UTF-8.

Dettagli sulle novità in Visual Studio 2019

Installare

  • È ora possibile scegliere come installare gli aggiornamenti di Visual Studio. La modalità predefinita prevede il download di tutti gli aggiornamenti e la successiva installazione e permette di continuare a usare Visual Studio durante il download degli aggiornamenti. Se si seleziona questa modalità, sarà necessario completare l'installazione aprendo il programma di installazione di Visual Studio e quindi scegliendo Continua.
  • Gli aggiornamenti di Visual Studio vengono ora scaricati in background. Questi download vengono eseguiti solo quando il computer è inattivo. Al termine del download, si riceverà una notifica all'interno di Visual Studio che indica che i file scaricati sono pronti per essere installati.
  • È ora possibile controllare la modalità di installazione degli aggiornamenti e se scaricare gli aggiornamenti o meno tramite il menu Opzioni strumenti > modificando le impostazioni nella pagina Product Aggiornamenti.
Product Update Options
*Opzioni di aggiornamento del prodotto*

Finestra iniziale

La nuova finestra iniziale offre un'esperienza semplificata che consente di visualizzare rapidamente il codice all'avvio di Visual Studio.

  • Visualizzazione dei progetti e delle cartelle recenti e possibilità di aprirli con un solo clic. Aggiunta e rimozione di elementi dall'elenco usando il menu di scelta rapida.
  • Clonazione o esecuzione del checkout del codice usando qualsiasi URL pubblico o privato disponibile in Git, operazione che aprirà automaticamente anche la cartella nell'IDE.
  • Accesso, esplorazione e clonazione con un clic o connessione ai repository ospitati da Azure DevOps o installazione di estensioni per altri host di controllo del codice sorgente per visualizzare i repository di proprietà dell'utente e dell'organizzazione.
  • Ricerca nella condivisione di rete o nel disco locale di progetti, soluzioni o cartelle contenenti codice e aprirli nell'IDE.
  • Selezione di un modello di progetto che offre un processo di scaffolding del codice per iniziare un nuovo progetto o una nuova soluzione.
  • Ricerca di modelli di progetto in base a titolo, descrizione e tag o filtro in base a linguaggi, piattaforme e tipi di progetto disponibili. Nell'elenco predefinito sono riportati tutti i modelli disponibili, mentre nel riquadro a sinistra sono visualizzati i dieci modelli di progetto usati più di recente, per accedervi rapidamente. Una procedura guidata di due pagine consente di concentrarsi su una decisione alla volta.
Start window
*Nuova esperienza finestra iniziale*

Shell e piattaforma

  • Identificazione rapida della versione di Visual Studio da aprire e usare grazie alla nuova icona migliorata del prodotto. La nuova icona è anche più visibile su un'ampia varietà di sfondi.
  • Esperienza di un aspetto modernizzato di Visual Studio con il nostro tema blu aggiornato che offre un'interfaccia utente più chiara, rispettando nel contempo gli standard di accessibilità.
  • Maggiore quantità di codice visualizzato, tramite modifiche che mirano a un aumento della compattezza e dello spazio verticale nell'IDE. La barra del titolo e la barra dei menu sono state unite, mantenendo tuttavia le funzionalità esistenti.
  • Uso di Visual Studio come un'applicazione di sensibilità ai valori DPI per monitor grazie a una nuova impostazione sperimentale. Quando è attivata, questa impostazione consente di eseguire il rendering di parti di Visual Studio, ad esempio la shell e l'editor, in modo da ottenerne una visualizzazione più chiara, indipendentemente dalla configurazione e/o dal dimensionamento dello schermo.
  • Esperienza di ricerca avanzata tra menu, comandi, opzioni e componenti installabili. La nuova ricerca consente ora di visualizzare i risultati in modo dinamico, corregge gli errori di ortografia e offre informazioni pertinenti (ad esempio le scelte rapide da tastiera) nei risultati della ricerca.
Visual Studio Search with results
*Ricerca avanzata in Visual Studio*
  • Visualizzazione delle informazioni sull'integrità associate con il file aperto attualmente grazie alla funzionalità di indicatore di integrità del documento.
Document Health Indicator with issues
*Indicatore di integrità documento - problema nel documento*
Document Health Indicator with no issues
*Indicatore di integrità documento - nessun problema*
  • Uno sviluppatore C# può ora pulire rapidamente alcuni suggerimenti di codifica più comuni con la funzione di pulizia del codice.
  • Selezione del set di correzioni da eseguire tramite la configurazione della pulizia del codice.
Code Cleanup configuration dialog
*Configurare la pulizia del codice*
  • Visualizzazione del contenuto della cronologia degli Appunti tramite un menu di scelta rapida che estende Sequenza Appunti (CTRL + MAIUSC + V).
Clipboard Ring context menu
*Menu di scelta rapida anello Appunti*
  • L'esperienza di ricerca è stata migliorata in base a:
    • Aggiunta di filtri per menu, componenti e modelli
    • Integrazione delle selezioni per la ricerca per fornire i risultati più rilevanti
    • Possibilità di creare e aggiungere nuovi progetti/elementi alla soluzione direttamente dalla ricerca di Visual Studio
  • L'esperienza migliorata per la sensibilità ai valori DPI del monitor è ora attivata per impostazione predefinita per gli utenti che soddisfano il set minimo di requisiti (.NET 4.8 Preview e aggiornamento di aprile 2018 di Windows 10 o versioni successive). Le finestre degli strumenti, tra cui Casella degli strumenti, Punti di interruzione, Espressione di controllo, Variabili locali, Auto e Stack di chiamate, sono state convertite in modo da supportare la sensibilità ai valori DPI del monitor e di conseguenza vengono visualizzate più nitidamente, indipendentemente dalla configurazione e/o dal ridimensionamento dello schermo.
  • Una nuova esperienza di notifica aggiunge:
    • Una nuova icona e un contatore sulla barra di stato
    • Un nuovo meccanismo di notifica di tipo avviso popup
    • Notifiche sugli aggiornamenti di Visual Studio e sulla scadenza delle licenze di Visual Studio
  • L'esperienza con tema blu modificata ha tenuto conto dei commenti e suggerimenti riducendo la luminosità, migliorando il contrasto e risolvendo altri problemi di usabilità.
  • Sono state migliorate le funzionalità di trascinamento delle finestre sfruttando lo spazio libero disponibile nell'area della barra degli strumenti come area trascinabile.
  • È ora possibile salvare una raccolta di correzioni per la pulizia del codice come profilo, in modo da poter selezionare rapidamente il set di correzioni da eseguire durante la pulizia del codice.
Visual Studio Code Cleanup Profiles
*Profili di pulizia di Visual Studio Code*
  • Sono stati aggiunti alcuni tag nella finestra di dialogo Estensioni e aggiornamenti che permettono di identificare rapidamente se un'estensione sia disponibile come anteprima o a pagamento o se si tratti di una versione di valutazione.
Extensions and Updates dialogs with tags
*Estensioni e finestre di dialogo Aggiornamenti con tag*
  • Il modo consigliato per implementare le descrizioni comandi dei dati in Visual Studio 2019 e versioni successive è ora IAsyncQuickInfoSourceProvider. Le API legacy per le descrizioni comandi delle informazioni rapide dell'editor IVsTextTipData e TextTipData sono deprecate in Visual Studio 2019 Preview 1.
  • Gli smart tag dell'editor (famiglia di interfacce ISmartTag* nello spazio dei nomi Microsoft.VisualStudio.Language.Intellisense) sono deprecati e sostituiti dall'API LightBulb e non sono più supportati a partire da Visual Studio 2019 Preview 1.
  • Le opzioni della soluzione Mostra configurazioni della build avanzate, Mostra sempre soluzione e Salva nuovi progetti alla creazione sono state rimosse a causa dello scarso uso. Per tali impostazioni è stato specificato il valore predefinito True.
  • Acconsentire esplicitamente o rifiutare alcune funzionalità di anteprima usando la nuova pagina Funzionalità di anteprima disponibile in Strumenti > Opzioni > Ambiente > Funzionalità di anteprima.

Prestazioni

  • È stato aggiunto un nuovo collegamento per la selezione della compilazione per cartelle e soluzioni: CTRL+B.
  • Apertura rapida delle soluzioni di grandi dimensioni caricando la soluzione senza caricare tutti i progetti. Do not load projects
  • Scelta dei progetti da caricare nella soluzione aperta con i file di filtro della soluzione.
    • Creazione di un file di filtro della soluzione scaricando progetti da non aprire automaticamente, facendo clic con il pulsante destro del mouse sulla soluzione e selezionando Salva come filtro soluzione. È quindi possibile usare il file di filtro per aprire la soluzione per usi successivi. Solution filters
  • È stato aggiunto un comando per compilare tutto per i file CMake: CTRL + MAIUSC + B.
  • Sono state migliorate le prestazioni di IntelliSense nei file C++ nei progetti CMake.
  • È stato aggiunto un comando per caricare le dipendenze da progetti scaricati ai menu contestuali per progetti e soluzioni.
  • I suggerimenti per le notifiche per migliorare le prestazioni di Visual Studio sono ora resi persistenti nel Centro prestazioni, accessibili tramite Guida per > gestire le prestazioni di Visual Studio.
  • Possibilità di visualizzare lo stato di caricamento della soluzione nel centro stato attività, nonché gli avvisi al termine dell'operazione.
  • Scelta dei progetti da caricare nella soluzione aperta con i file di filtro della soluzione.
    • Creazione di un file di filtro della soluzione scaricando progetto da non aprire automaticamente, facendo clic con il pulsante destro del mouse la soluzione e selezionando Save As Solution Filter (Salva come filtro soluzione). È quindi possibile usare il file di filtro per aprire la soluzione per usi successivi.
  • Miglioramento dell'individuazione delle risorse di compilazione e della ricerca di file quando si seleziona CTRL + T negli scenari di apertura cartella.
  • Miglioramento delle prestazioni poiché l'editor di Visual Studio limita ora l'impatto dei componenti ausiliari sulle prestazioni di digitazione. In particolare, tutte le operazioni non essenziali con esecuzione prolungata durante la digitazione vengono annullate.
  • È possibile configurare il comportamento di limitazione del componente ausiliario di Visual Studio tramite Strumenti > Opzioni > Editor > di testo Avanzate:
Visual Studio Typing Latency Options
*Opzioni di latenza digitazione di Visual Studio*
  • È ora possibile disabilitare il ripristino dello stato della gerarchia del progetto dalla sessione precedente nella finestra degli strumenti di Esplora soluzioni. Questa modifica è stata implementata perché il ripristino della gerarchia del progetto dalla sessione precedente alla soluzione aperta può ritardare il caricamento della soluzione.
    • Attivare o disattivare questa opzione in Strumenti > Opzioni > Progetti e soluzioni > generale.
Solution load restore settings
*Impostazioni di ripristino del carico della soluzione*
* È ora possibile disabilitare il ripristino dello stato della finestra degli strumenti dalla sessione precedente e caricare sempre Esplora soluzioni e Team Explorer all'avvio. Questa modifica è stata implementata perché il ripristino delle finestre degli strumenti dalle sessioni precedenti può ritardare i caricamenti della soluzione all'avvio. * Attivare o disattivare questa opzione in **Strumenti > Opzioni > Ambiente > Avvio**.

Debug e diagnostica generali

Debug generale
  • Possibilità di evidenziare e trovare parole chiave con cui spostarsi usando la nuova funzionalità di ricerca integrata nelle finestre Espressione di controllo, Auto e Variabili locali.
Searching for keywords in Watch
Ricerca nella finestra Espressione di controllo
  • Visualizzazione di un elenco a discesa di identificatori e opzioni di formattazione dei dati nelle finestre Espressione di controllo, Auto e Variabili locali tramite l'aggiunta di una virgola a un elemento presente nell'elenco.
Format Specifier Dropdown List in Watch
Elenco a discesa di un identificatore di formato nella finestra Espressione di controllo
  • È ora possibile usare il supporto personalizzato e per il visualizzatore DataSet per .NET Core.
DataSet Visualizer for .NET Core
Visualizzatore DataSet per le applicazioni .NET Core
  • Per le applicazioni C++ in esecuzione in Windows, i file PDB vengono ora caricati in un processo a 64 bit separato. Questa modifica risolve una vasta gamma di arresti anomali causati dalla memoria insufficiente nel debugger durante l'esecuzione del debug di applicazioni che contengono un elevato numero di moduli e di file PDB.
Punti di interruzione dei dati gestiti

È ora possibile interrompere quando il valore della proprietà di un oggetto specifico cambia nelle applicazioni .NET Core (3.0 o successive) usando punti di interruzione dei dati, una funzionalità originariamente esclusiva di C++. Si tratta di un'ottima alternativa al semplice posizionamento di un punto di interruzione sul setter di una proprietà perché un punto di interruzione dei dati può concentrarsi sulla proprietà di un oggetto specifico anche quando non rientra nell'ambito, mentre l'opzione precedente può comportare interruzioni costanti e irrilevanti se si dispone di centinaia di oggetti che chiamano tale funzione.

Data breakpoints for .NET Core
Punti di interruzione dei dati nell'applicazione .NET Core
Aggiornamenti dell'esperienza utente di ricerca nella finestra Espressioni di controllo

L'interfaccia utente è stata aggiornata e semplificata per eseguire ricerche nelle finestre Auto, Variabili locali ed Espressioni di controllo. La funzione Aumenta profondità di ricerca è stata sostituita con un elenco a discesa per poter selezionare velocemente il livello di profondità per le ricerche iniziali e successive.

Applicare le preferenze di stile del codice
  • È ora possibile applicare le preferenze di stile per il codice dalla riga di comando con lo strumento globale dotnet format. Per l'installazione, sarà necessario .NET Core 2.1 SDK o versione successiva. Eseguire il comando seguente nel terminale preferito: dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
dotnet format video
Eseguire il formato dotnet dalla riga di comando.

Estendibilità

  • In Visual Studio 2019 non sarà più possibile installare le estensioni create con il formato vsixmanifest V1. La versione V1 è stata introdotta in Visual Studio 2010 ed è deprecata in Visual Studio 2017 poiché poteva causare problemi di affidabilità con Visual Studio. In Visual Studio 2019 il supporto per la versione V1 è stato completamente rimosso. Le estensioni destinate a Visual Studio 2019 devono essere ricompilate con le versioni V2 o V3 del formato vsixmanifest.
  • L'utente riceverà uno notifica quando l'estensione viene caricata automaticamente in modo sincrono. Si noti che l'estensione viene caricata e funziona come di consueto in questa versione, ma potrebbe non funzionare nell'aggiornamento successivo di Visual Studio 2019. Altre informazioni sono disponibili nel post del blog sul miglioramento della velocità di risposta di scenari critici grazie all'aggiornamento del comportamento di caricamento automatico per le estensioni.
Pacchetto NuGet SDK unificato

In passato, gli autori di estensioni dovevano creare molti riferimenti separati ai singoli pacchetti NuGet di Visual Studio SDK da usare nell'estensione. Le versioni dei vari pacchetti non erano sempre allineate e spesso causavano conflitti di dipendenza in fase di compilazione, nonché problemi di runtime.

Per risolvere questi problemi, usare un nuovo pacchetto denominato Microsoft.VisualStudio.SDK che contiene dipendenze da tutti i pacchetti che compongono Visual Studio SDK. Tale pacchetto risolve il problema delle versioni non corrispondenti e consente di individuare la versione da usare. È sufficiente usare la versione del pacchetto corrispondente alla versione minima di Visual Studio supportata dall'estensione per avere accesso all'intero SDK.

Per il momento, esiste solo la versione 15.9 del pacchetto SDK, ma nei prossimi mesi ne verranno rilasciate altre fino alla versione 14.0.

Modelli di progetto nuovi e aggiornati

Il modello Progetto VSIX ha subito più aggiornamenti che lo hanno semplificato e migliorato:

  • Usa il nuovo pacchetto NuGet SDK unificato
  • Include una classe AsyncPackage
  • Non è più necessario un file con estensione resx per compilare un pacchetto
  • Ha come destinazione .NET Framework 4.7.2

È stato creato un nuovo modello di progetto VSIX vuoto identico al modello Progetto VSIX, ma senza la classe AsyncPackage. Fa anche riferimento al pacchetto NuGet SDK unificato offrendo un valido punto di partenza per le estensioni MEF e altri tipi di estensioni senza pacchetto.

Gratuita/A pagamento/Versione di valutazione

Non c'è stato un modo semplice per vedere se un'estensione è stata contrassegnata come gratuita, a pagamento o una versione di valutazione. Ora invece ogni estensione che è una versione di valutazione o a pagamento verrà contrassegnata chiaramente come tale nella finestra di dialogo Estensioni e aggiornamenti. Le estensioni che non hanno un'etichetta di valutazione/a pagamento sono gratuite.

Strumenti di test

Altre API nella finestra di test non documentate nelle versioni precedenti, ma contrassegnate come pubbliche, sono state aggiunte all'elenco degli elementi deprecati.

Controllo del codice sorgente

  • Archiviazione temporanea delle modifiche in modo che sia possibile eseguire un'altra attività grazie agli strumenti Git di Team Explorer che ora supportano Git stash.
  • Verifica, esecuzione e debug delle richieste pull da Azure Repos senza uscire dall'ambiente IDE usando la nuova esperienza di richiesta pull in Visual Studio 2019. Per iniziale, è ora possibile scaricare l'estensione Richieste pull per Visual Studio da Visual Studio Marketplace.
New Pull Request Experience
Nuova esperienza di richiesta pull

MSBuild

  • La versione del set di strumenti MSBuild è stata modificata da 15.0 a Current. MSBuild.exe è ora disponibile in %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe.
  • MSBuild (e Visual Studio) ora fanno riferimento a .NET Framework 4.7.2. Se si desidera usare nuove funzionalità dell'API MSBuild, è necessario aggiornare anche l'assembly, ma il codice esistente continua a funzionare.

C#

Per ogni versione precedente a Visual Studio 2019, la versione predefinita del linguaggio C# era sempre equivalente a quella principale più recente. In Visual Studio 2017 C# si è evoluto e ha rilasciato tre versioni secondarie: 7.1, 7.2 e 7.3. Tuttavia, i nuovi progetti per impostazione predefinita usavano ancora C# 7.0. Questo fatto era motivo di frustrazione per gli sviluppatori di C# che volevano usare le nuove funzionalità, ma dovevano modificare manualmente la versione del linguaggio per ogni nuovo progetto.

Per risolvere questo problema, la versione predefinita del linguaggio C# è determinata dal relativo framework di destinazione:

  • Se la destinazione è .NET Core 3.0 Preview, la versione del linguaggio C# sarà C# 8.0 Preview.
  • Se la destinazione è .NET Framework o qualsiasi versione non di anteprima di .NET Core, la versione del linguaggio C# sarà C# 7.3.

Ciò consente di usare le funzionalità dell'ultima versione stabile del linguaggio C# per impostazione predefinita e, quando si usano le versioni di anteprima di .NET Core, di usare le funzionalità del linguaggio C# 8.0 Preview allineate a .NET Core 3.0 Preview.

Se si specifica con LangVersion una versione del linguaggio in un file di progetto o di proprietà, tale versione sostituisce la versione predefinita descritta in precedenza.

C++

  • Collaborazione in tempo reale ora che Visual Studio Live Share supporta C++.
  • Risparmio di tempo grazie all'uso di IntelliCode, un'estensione facoltativa che usa le proprie funzioni di formazione estesa e il contesto del codice per inserire gli elementi che probabilmente si desidera usare nella parte superiore dell'elenco di completamento. Per C++, IntelliCode offre il contributo ottimale quando si usano librerie diffuse, come STL.
  • Sono stati modificati diversi nomi e descrizioni dei modelli di progetto per adattarli alla finestra di dialogo Nuovo progetto aggiornata.
  • Il componente sperimentale Clang/C2 è stato rimosso. Usare il set di strumenti MSVC per la conformità agli standard C++ completa con /permissive- and/or /std:c++17 oppure la toolchain Clang/LLVM per Windows. Per altri dettagli, vedere ilblog del team di Visual C++.
  • L'opzione /Gm del compilatore C++ è deprecata. Provare a disabilitare l'opzione /Gm negli script di compilazione se è definita in modo esplicito. In alternativa, è possibile anche ignorare l'avviso di deprecazione per /Gm perché non verrà considerato come errore quando si usa l'opzione "Considera gli avvisi come errori" (/WX).
  • Per impostazione predefinita, l'esperienza Android per C++ ora fa riferimento a Android SDK 25 e Android NDK 16b.
Produttività
  • L'analisi codice viene ora eseguita automaticamente in background. Gli avvisi vengono visualizzati come linee a zigzag di colore verde all'interno dell'editor durante la digitazione.
  • La barra dei modelli utilizza ora l'interfaccia utente Finestra di anteprima invece di una finestra modale, supporta modelli annidati e immette in anticipo tutti gli argomenti predefiniti in Finestra di anteprima.
  • Una correzione automatica per l'avviso di analisi del codice NULL-nullptr> (C26477 U edizione Standard_NULLPTR_NOT_CONSTANT) è disponibile tramite il menu lampadina nelle righe pertinenti, abilitato per impostazione predefinita nel set di regole del tipo di controllo principale C++. Altre correzioni rapide nell'IDE includono l'aggiunta di direttive #include mancanti, l'aggiunta dei punti e virgola mancanti e la correzione dell'uso non corretto di "*" rispetto a "&".
  • Non vengono più generate intestazioni precompilate per app desktop e console C++ per impostazione predefinita.
  • La funzionalità Vai a definizione funziona ora nelle direttive #include, aprendo il file corrispondente. È incluso il tasto di scelta rapida F12, che offre un semplice metodo per spostarsi all'interno del codice.
  • Posizionando il puntatore del mouse su una parentesi graffa di chiusura di un blocco di codice, vengono visualizzate alcune informazioni utili sul contesto del blocco.
  • È stato aggiunto il supporto in ConcurrencyChecker per i tipi STL ben noti dall'intestazione <mutex>.
  • È disponibile un'implementazione parziale aggiornata del controllo dei profili di durata per il rilevamento di puntatori e riferimenti inesatti.
  • È stato aggiunto il supporto iniziale nel compilatore per l'operatore <C++20 => ("astronave") per il confronto a tre vie.
CMake
  • Sono state migliorate le prestazioni di IntelliSense per i file C++ nei progetti CMake.
  • Visual Studio permette il bootstrap dello sviluppo di C++ con CMake su Linux rilevando se è presente una versione di CMake compatibile nel computer Linux. In caso contrario, propone di installarla.
  • L'editor delle impostazioni di CMake offre un'alternativa a CMakeSettings.json e una certa parità con CMakeGUI.
  • Il menu di CMake è stato rimosso e riorganizzato per una maggiore parità con progetti e soluzioni.
  • Le impostazioni non compatibili in CMakeSettings, ad esempio le architetture non corrispondenti o le impostazioni del generatore CMake non compatibili, mostrano linee a zigzag nell'editor JSON e restituiscono errori nell'elenco degli errori.
  • La toolchain vcpkg viene automaticamente rilevata e abilitata per i progetti CMake aperti nell'IDE una volta eseguito vcpkg integrate install. Questo comportamento può essere disattivato specificando un file di toolchain vuoto in CMakeSettings.
  • I progetti CMake permettono ora il debug Just My Code per impostazione predefinita.
  • Gli avvisi di analisi statica possono ora essere elaborati in background e visualizzati nell'editor per i progetti CMake.
  • Sono stati aggiunti messaggi "begin" ed "end" di compilazione e configurazione più chiari per i progetti CMake e il supporto per l'interfaccia utente dello stato di compilazione di Visual Studio. Inoltre, è ora disponibile un'impostazione di dettaglio CMake in Opzioni strumenti > per personalizzare il livello di dettaglio dei messaggi di compilazione e configurazione di CMake nella finestra di output.
  • L'impostazione "cmakeToolchain" è ora supportata in CMakeSettings per specificare toolchain senza modificare manualmente la riga di comando di CMake.
Back-end
  • Sono stati implementati alcuni miglioramenti relativi alla velocità effettiva di compilazione, tra cui la gestione da parte del linker dell'I/O dei file e della fase di collegamento durante l'unione e la creazione di tipi PDB.
  • È stato aggiunto il supporto di base per la vettorializzazione SIMD di OpenMP. Questa può essere abilitata con la nuova opzione della riga di comando -openmp:experimental. Questa opzione permette la potenziale vettorializzazione dei cicli annotati con "#pragma omp simd". La vettorializzazione non è garantita e per i cicli con annotazioni ma non vettorializzati verrà restituito un avviso. Se non è supportata alcuna clausola SIMD, queste verranno semplicemente ignorate e verrà restituito un avviso.
  • È stata aggiunta la nuova opzione della riga di comando -Ob3 per l'incorporamento, che è una versione più aggressiva dell'opzione -Ob2. Il comando -O2 (ottimizzazione dei dati binari per la velocità) implica comunque -Ob2 per impostazione predefinita. Se si nota che l'incorporamento del compilatore è ancora insufficiente, provare a passare il comando -O2 -Ob3.
  • Per supportare la vettorializzazione manuale dei cicli che contengono chiamate a funzioni della libreria matematica e determinate altre operazioni come la divisione di interi, è stato aggiunto il supporto per funzioni intrinseche Short Vector Math Library (SVML) che calcolano gli equivalenti dei vettori a 128, 256 o 512 bit. Per le definizioni delle funzioni supportate, vedere la guida alle funzioni intrinseche Intel.
  • Ottimizzazioni nuove e migliorate:
    • Semplificazioni aritmetiche e a riduzione costante per le espressioni tramite funzioni intrinseche (vettoriali) SIMD per formati sia a virgola mobile sia interi
    • Analisi più potente per l'estrazione di informazioni dal flusso di controllo (istruzioni if/else/switch) per rimuovere i rami sempre dimostrati come true o false
    • Introduzione di memset migliorati per l'uso di istruzioni vettoriali SSE2
    • Rimozione migliorata di copie di coppie struct/classe inutili, in particolare per programmi C++ con passaggio di parametri per valore
    • Maggiore ottimizzazione del codice tramite memmove, ad esempio la costruzione di std::copy o di std::vector e std::string
Elementi deprecati
  • Il modello di progetto di test C++ gestito non è più disponibile. È possibile continuare a usare il framework di test C++ gestito nei progetti esistenti ma, per i nuovi unit test, è consigliabile usare uno dei framework di test nativi per cui Visual Studio fornisce modelli (MSTest, Google Test) o il modello di progetto di test C# gestito.
  • Windows 8.1 SDK non è più disponibile nel programma di installazione di Visual Studio. Aggiornare i progetti C++ alla versione più recente di Windows 10 SDK. Se esiste una dipendenza rigida dalla versione 8.1, è possibile scaricare l'SDK dall'archivio di Windows SDK.
  • Windows XP non sarà più disponibile come destinazione per il set di strumenti C++ più recente. Windows XP come destinazione con le librerie e il compilatore MSVC a livello di Visual Studio 2017 è ancora supportato e l'SDK può essere installato tramite "Singoli componenti".
  • La documentazione sconsiglia fortemente l'uso di moduli di unione per la distribuzione del runtime di Visual C++. In questa versione è stata intrapreso il passaggio aggiuntivo di contrassegnare i moduli di unione (MSM) come deprecati. Provare a eseguire la migrazione della distribuzione centrale di VCRuntime da moduli di unione al pacchetto ridistribuibile.
  • Le procedure guidate ATL/MFC C++ seguenti non sono più disponibili: Creazione guidata componente ATL COM+ 1.0, Creazione guidata componente ATL Active Server, Creazione guidata provider OLE DB ATL, Creazione guidata pagina proprietà ATL, Creazione guidata consumer OLE DB ATL, Consumer ODBC MFC, classe MFC dal controllo ActiveX e classe MFC da Type Lib. Il codice di esempio per queste tecnologie è archiviato nel repository GitHub VCSamples.

F#

I miglioramenti di F# in Visual Studio 2019 riguardano tre aree principali:

  • F# 4.6
  • Miglioramenti significativi delle prestazioni per le soluzioni di medie o grandi dimensioni
  • Una grande quantità di lavoro open source svolto dalla nostra eccellente community
F# 4.6

Questa versione contiene il linguaggio F# 4.6:

Miglioramenti del compilatore F# e di FSharp.Core

Sono stati apportati numero si miglioramenti al compilatore F# e a FSharp.Core, soprattutto da collaboratori open source:

  • fsi.exe and fsc.exe now defaults to .NET Framework 4.7.2, allowing the loading of components targeting this framework or lower (#4946).
  • Sono stati ottimizzati i metodi sui dati struct e i record di dati struct da eseguire, nonché metodi sulle classi e i record basati su classi (#3057).
  • È stato ottimizzato il linguaggio IL generato per la logica booleana combinato nel codice F# (#635).
  • È stato ottimizzato l'uso di + con stringhe in F# per chiamare la quantità minima possibile di chiamate String.Concat (n. 5560).
  • È stato risolto un problema del pacchetto FSharp.Core, per cui venivano incluse alcune directory aggiuntive con asset di test. FSharp.Core 4.5.5 e 4.6.1 dovrebbero contenere la correzione (#5814).
  • Quando un attributo definito dall'utente non eredita dalla classe Attribute, viene visualizzato un avviso, di Vasily Kirichenko.
  • Il valore AssemblyInformationVersionAttribute in un file di progetto ora supporta valori arbitrari per essere in grado di usare scenari come SourceLink (#4822).
  • È stato risolto un bug per cui la sintassi non valida con i modelli attivi provocherebbe un errore interno del compilatore; soluzione implementata da Steffen Forkmann (#5745).
  • Un bug per cui il suffisso Module è stato aggiunto erroneamente a un modulo in un modulo ricorsiva per corrispondere a un tipo in cui l'unica differenza è un parametro generico è stato risolto da BooksBaum (#5794).
  • Un miglioramento al messaggio di errore quando i parametri di tipo non sono adiacenti a un nome del tipo è stato apportato da Alan Ball (#4183).
  • Il suffisso letterale uint16 è elencato in modo corretto nei messaggi di errore per valori letterali numerici non validi; soluzione implementata da Teo Tsirpanis (#5712).
  • I messaggi di errore per le espressioni di calcolo non mostrano più async nel messaggio e fanno riferimento invece a "espressione/espressioni di calcolo"; soluzione implementata da John Wostenberg (#5343).
  • Un messaggio di errore che fa riferimento a file .dll in modo non corretto in codice F# interattivo è stato risolto da Bartoz Sypytkowski (#5416).
  • Un bug per cui i parametri di tipo risolti statisticamente non sono in grado di gestire la chiamata di un metodo che nasconde un membro ereditato è stato corretto da Victor Peter Rouven Müller (n. 5531).
  • Vari miglioramenti minori delle prestazioni del compilatore sono stati aggiunti da Steffen Forkmann e Robert Jeppesen.
Miglioramenti delle prestazioni di F#

Un'altra importante area di interesse per F# in Visual Studio 2019 è quella delle prestazioni per le soluzioni di medie e grandi dimensioni. Sono stati risolti alcuni problemi presenti da molto tempo, alcuni dei quali risalgono alla primissima edizione degli strumenti di F# per Visual Studio. Un contributo è stato offerto dall'eccellente community open source di F#.

  • È stata migliorata l'inizializzazione del servizio di linguaggio F# da parte di Roslyn. La colorazione dei tipi per le soluzioni di dimensioni maggiori appare in genere più rapidamente.
  • Modificata la rappresentazione del testo di origine per evitare grandi allocazioni nel corso del tempo, soprattutto con i file di dimensioni maggiori (n. 5935, n. 5936, n. 5937, n. 4881).
  • Modificate le cache di compilazione per le piccole modifiche ai file per usare una quantità di memoria notevolmente ridotta (n. 6028).
  • Modificata una funzione del compilatore che suggerisce i nomi quando vengono digitati token non per calcolare questi suggerimenti solo su richiesta, determinando una notevole riduzione di CPU e memoria quando si digita lentamente nelle soluzioni di dimensioni maggiori (6044 #).
  • IntelliSense è stato modificato in modo che non visualizzi più simboli degli spazi dei nomi non aperti per impostazione predefinita. Questo migliora notevolmente le prestazioni di IntelliSense nei progetti con molti riferimenti. Questa funzionalità può essere riattivata nelle impostazioni tramite Strumenti > Opzioni > Editor > di testo F# > IntelliSense.
  • È stato migliorato l'uso della memoria quando si usano provider di tipi per generare grandi quantità di tipi in un elenco di completamento (#5599).
  • Una riduzione dell'utilizzo della CPU e della memoria in un algoritmo interno di confronto tra le stringhe per suggerire i nomi non riconosciuti è stata risolta da Avi Avni (#6050).
  • Un notevole problema che causa allocazioni di stringhe di grandi dimensioni, in particolare per gli strumenti dell'IDE, è stato risolto da Avi Avni (n. 5922).
  • Un importante problema che causa allocazioni heap di oggetti grandi provenienti dall'elaborazione in IntelliSense è stato risolto da Chet Husk (#6084)
Miglioramenti degli strumenti di F#

Oltre ai miglioramenti delle prestazioni, sono stati apportati diversi altri miglioramenti agli strumenti di F# per Visual Studio 2019:

  • La correzione del codice dell'istruzione open aggiunta fa riferimento all'inserimento dell'istruzione open nella parte superiore del file.
  • È stato corretto un bug per cui l'elemento match! nel codice utente invalidava le linee guida della struttura e i nodi della struttura del codice per gli ambiti successivi (#5456).
  • L'editor colora correttamente i valori byref, outref e ref come campi di record in base alla colorazione dei valori variabile (#5579).
  • È stato corretto un bug per cui il refactoring di ridenominazione non riconosceva il carattere ' nei nomi dei simboli (#5604).
  • È stato risolto un bug esistente da tempo per cui la ridenominazione di file di script F# produce la perdita dei dati di colorazione (n. 1944).
  • IntelliSense è stato perfezionato in modo da non visualizzare gli elementi non correlati nell'elenco quando si preme BACKSPACE.
  • Con il rientro intelligente, il codice F# incollato nell'editor viene formattato per corrispondere a un ambito appropriato in base alla posizione corrente del cursore; soluzione implementata da Saul Rennison (#4702).
  • È stato risolto un problema per cui le opzioni dell'editor F# non vengono sincronizzate è stato risolto da Jakob Majocha (n. 5997, n. 5998).
  • Un bug per cui IntelliSense in un costruttore all'interno di una clausola inherit non visualizza il costruttore principale è stato corretto da Eugene Auduchinok (#3699)
  • Vari miglioramenti minori del servizio di linguaggio F# sono stati apportati da Eugene Auduchinok
Infrastruttura open source di F#

È stata eseguita una migrazione completa della codebase di F# e degli strumenti di F# per usare .NET SDK. Questo semplifica notevolmente l'apporto dei contributi da parte degli sviluppatori, soprattutto se non usano Windows. Inoltre Jakob Majocha ha contribuito alla pulizia dei documenti per i nuovi collaboratori in previsione delle modifiche della codebase.

Python

In base ai suggerimenti dei clienti, Visual Studio 2019 include un'esperienza di revisione per la gestione di ambienti Python.

  • È stato aggiunta una nuova finestra di dialogo Aggiungi ambiente che semplifica l'esperienza di creazione e di aggiunta di ambienti virtuali e di ambienti conda nel progetto.
  • Il programma di installazione di Visual Studio non installa più versioni complete di Anaconda per ridurre le dimensioni di installazioni di Visual Studio ed evitare errori durante gli aggiornamenti.
  • Miniconda è integrato nel carico di lavoro di Python come componente opzionale, per creare ambienti conda senza dover installare Miniconda/Anaconda.
  • Ora viene automaticamente richiesto di aggiungere un ambiente se un file Rrquirements.txt (ambiente virtuale) o environment.yml (ambiente conda) è presente nella radice del progetto.
  • Una nuova barra degli strumenti per gli ambienti Python è disponibile quando si modificano file Python. La nuova barra degli strumenti permette di passare tra diversi interpreti Python quando si usano progetti, aree di lavoro Apri cartella o file Python separati in altri progetti.
  • Miglioramenti della qualità del completamento automatico in Python IntelliSense, tra cui il rilevamento ottimizzato delle importazioni relative e degli spazi dei nomi.
  • I modelli di progetto Django sono stati aggiornati per supportare Django 2.x.
  • I valori restituiti delle funzioni vengono ora visualizzati nel debugger di Python.
  • Ora è possibile creare sessioni di Visual Studio Live Share e collaborare al codice Python con altri utenti di Visual Studio. In precedenza Python era supportato solo quando si partecipava a sessioni create da Visual Studio Code.

JavaScript/TypeScript

  • È stato aggiunto il supporto per l'abilitazione del debug di JavaScript all'interno di unit test in progetti Node.js. Si tratta di una funzionalità a lungo richiesta dai clienti che usano Node.js.
  • Il servizio di linguaggio JavaScript/TypeScript verrà caricato automaticamente nei progetti in cui è installato il pacchetto NuGet TypeScript o il pacchetto npm (TypeScript 3.2 e versioni successive sono supportati dal pacchetto NuGet e TypeScript 2.1 e versioni successive sono supportati dal pacchetto npm).
  • Sono stati implementati alcuni miglioramenti per le prestazioni nel servizio di linguaggio come conseguenza dell'aumento del limite di memoria nel servizio per la gestione di progetti di grandi dimensioni.
  • Per impostazione predefinita, negli elenchi degli errori non vengono più visualizzate le statistiche dei file JavaScript/TypeScript chiusi.
  • Il servizio di linguaggio JavaScript legacy non è più disponibile. In precedenza gli utenti avevano la possibilità di ripristinare il servizio di linguaggio JavaScript legacy. Il servizio di linguaggio JavaScript è ora disponibile per impostazione predefinita. Il nuovo servizio di linguaggio si basa sul servizio di linguaggio TypeScript, supportato dall'analisi statica. Ciò consente di usare meglio gli strumenti, in modo che il codice JavaScript possa trarre vantaggio da un'esecuzione di IntelliSense più completa in base alle definizioni di tipo. Il nuovo servizio è leggero e usa meno memoria rispetto al servizio legacy, offrendo agli utenti prestazioni migliori a seconda delle dimensioni del codice.

Team Explorer e Azure DevOps

Sono stati apportati miglioramenti all'esperienza di gestione degli elementi di lavoro Git con Azure DevOps.

  • È possibile assegnare elementi di lavoro a se stessi o ad altri utenti con il nuovo controllo di selezione identità. Per impostazione predefinita, verrà visualizzato un elenco delle persone selezionate più di recente. In alternativa, è possibile usare la funzionalità di ricerca per cercare e trovare altre persone nell'organizzazione.
  • È stata migliorata l'esperienza con elementi #mention nel messaggio di commit. Quando si seleziona un elemento di lavoro dal controllo di selezione di #mention, questo verrà automaticamente aggiunto all'elenco di elementi di lavoro correlati.
Assigning work items and #mention improvements
Assegnazione di elementi di lavoro e miglioramenti relativi a #mention

Evidenziazione dei percorsi ad accesso frequente

  • È stato aggiunto il supporto per l'evidenziazione del percorso critico negli strumenti Utilizzo CPU e DotNet Object Allocation (Allocazione di oggetti .NET) nel profiler delle prestazioni. Selezionare qualsiasi funzione nell'albero delle chiamate e fare clic sul pulsante Percorso critico per espandere il percorso critico di Utilizzo CPU o DotNet Object Allocation (Allocazione di oggetti .NET). Questa funzionalità permette di identificare facilmente le chiamate di funzioni che usano la percentuale di CPU più alta o che allocano il maggior numero di oggetti.
Hot path highlighting in the CPU Usage tool
Evidenziazione del percorso critico nello strumento Utilizzo CPU

Strumenti .NET e ASP.NET

  • Sono stati implementati diversi piccoli miglioramenti per l'esperienza utente nella pagina di riepilogo del profilo di pubblicazione (nuove intestazioni delle sezioni e azioni/tasti di scelta rapida) per tutte le applicazioni.
  • Quando si pubblicano applicazioni ASP.NET in Servizio app di Azure, la pagina di riepilogo del profilo di pubblicazione include ora una nuova sezione denominata "Dipendenze". Questa nuova sezione permette attualmente di associare risorse di Archiviazione di Azure e SQL di Azure all'istanza del servizio app. In futuro altri servizi di Azure verranno inclusi come disponibili tramite questo meccanismo.
  • Uso di metrica del codice con progetti .NET Core grazie alla compatibilità aggiunta.
  • Esportare le impostazioni dell'editor in un file Editorconfig tramite Strumenti > Opzioni > Editor > di testo Stile codice C# > con il pulsante "Genera file con estensione editorconfig dalle impostazioni".
  • Nuovo supporto del parser per Regex di C# e di Visual Basic. Le espressioni regolari sono ora riconosciute e le funzionalità del linguaggio sono abilitate per usarle. Una stringa regex viene riconosciuta sia quando viene passata al costruttore regex sia quando è immediatamente preceduta da un commento che contiene la stringa language=regex. Le funzionalità del linguaggio incluse in questa versione sono classificazione, corrispondenza tra le parentesi graffe, riferimenti di evidenziazione e diagnostica.
Regular expressions now have parser support
Supporto del parser per le espressioni regolari
  • È ora possibile analizzare il codice non utilizzato per membri privati non usati con una correzione del codice facoltativa per rimuovere la dichiarazione di membri non usati.
  • La funzionalità Trova riferimenti in una funzione di accesso ora restituisce solo i risultati per tale funzione.
  • È stata aggiunta una correzione del codice per la generazione di un metodo di decostruzione.
  • Le istruzioni "using" possono essere aggiunte quando il codice viene incollato in un file. Una correzione del codice viene visualizzata dopo che il codice riconosciuto è stato incollato, quando viene chiesto di aggiungere le importazioni mancanti rilevanti.
  • Sono ora disponibili altre azioni di refactoring e rapide usando "CTRL + ". o "ALT + INVIO":
    • Per i casi in cui l'opzione "await" è implicita, ma omessa, è ora presente un avviso del compilatore.
    • Per la conversione di una funzione locale in un metodo.
    • Per la conversione di una tupla in un tipo di dati struct denominato.
    • Per la conversione di un tipo anonimo in una classe.
    • Per la conversione di tipo anonimo un una tupla.
    • Per un ciclo foreach verso query o metodi LINQ.
  • È stato aggiunto il supporto per le applicazioni ASP .NET Core in esecuzione in un servizio Azure Kubernetes. Per iniziare, vedere questo esempio di docker in GitHub.
  • ASP.NET è ora supportato nello strumento di utilizzo della CPU del Profiler prestazioni.
CPU Usage Tool in Performance Profiler
Strumento di utilizzo della CPU nel Profiler prestazioni
  • È ora possibile usare l'opzione Trova tutti i riferimenti (MAIUSC-F12) e CodeLens per visualizzare i risultati dai file Razor (con estensione cshtml) nei progetti .NET Core. È quindi possibile accedere al codice identificato nei file Razor pertinenti.
  • È stato aggiunto il supporto fare riferimento ad applicazioni ASP.NET (di base e desktop) in esecuzione in macchine virtuali Windows e in set di scalabilità di macchine virtuali.
Snapshot debugger target selection UI
Interfaccia utente per la selezione di destinazione di Snapshot Debugger
  • Viene ora visualizzato un avviso durante l'esecuzione di analisi del codice tramite FxCop. Per eseguire l'analisi del codice in futuro, è consigliabile usare i compilatori .NET. Per altre informazioni, leggere l'articolo sulla migrazione agli analizzatori della piattaforma del compilatore .NET.
  • I modelli di progetto della libreria di classi portabile (PCL) non sono più disponibili e il supporto per il progetto non viene più installato per impostazione predefinita. I nuovi progetti destinati a fare riferimento a più piattaforme devono usare il tipo di progetto .NET Standard. I clienti che hanno bisogno del supporto per i progetti della libreria di classi portabile devono installare il componente separatamente nella scheda Singoli componenti del programma di installazione di Visual Studio.
  • Il comando "Project.CopyWebSite" non è più disponibile. Questa funzionalità era disponibile solo nel tipo di progetto "Sito Web" per .NET e offriva la possibilità di sincronizzare due siti Web in modo che disponessero della stessa versione di ogni file. In Visual Studio 2019 è possibile copiare i file dalla destinazione remota all'esterno di Visual Studio e quindi aprire il progetto.
  • La possibilità di aprire un progetto di tipo Sito Web da un percorso FTP remoto è stata rimossa. Gli utenti FTP possono copiare i file dalla destinazione remota all'esterno di Visual Studio, aprire il progetto, apportare modifiche e quindi usare la funzione di pubblicazione per inserirli nuovamente nel percorso FTP remoto.
  • Il carico di lavoro ASP.NET e Web non installa più un'esperienza di modifica CoffeeScript. Le aggregazioni TextMate di Visual Studio offrono un'esperienza di livello superiore per usare CoffeeScript.
  • Gli errori CSS e CoffeeScript generati attualmente dalle copie incorporate di CSSLint e CoffeeLint non emergono più automaticamente quando si modificano questi file. Per eseguire i linter, usare un metodo alternativo, ad esempio npm o Esplora esecuzione attività di Visual Studio.
  • In Visual Studio non è più disponibile IntelliSense per gli attributi HTML Knockout. In Visual Studio 2019 è necessario digitare gli attributi.
  • La possibilità di usare il debugger Chrome legacy nei progetti ASP.NET per eseguire il debug di JavaScript è stata rimossa. È possibile continuare a usare il debugger di Chrome corrente incorporato in Visual Studio.
  • La possibilità di usare la funzionalità Console JavaScript nei progetti ASP.NET è stata rimossa. È consigliabile che i clienti usino la funzionalità Console inclusa negli strumenti di sviluppo del browser di preferenza.

Strumenti per contenitori

  • È stata aggiunta un'esperienza semplificata a progetto singolo per la creazione di contenitori e il debug:
    • Applicazioni Web ASP.NET (.NET Framework)
    • Applicazioni console (.NET Core)
  • È stato aggiunto il supporto per il debug di applicazioni ASP.NET Core che usano Alpine come immagine di base.
  • È stato aggiunto il supporto per le immagini .NET Core e ASP.NET più recenti.

Strumenti di .NET Core

.NET Core 3.0

Con questa versione è possibile creare progetti ASP.NET Core, di console e di libreria di classi destinati a .NET Core 3.0 se è stato installato l'SDK di anteprima.

Se si usa Visual Studio RC, è necessario passare anche a Strumenti > Opzioni > progetti e soluzioni > .NET Core e selezionare la casella di controllo Usa anteprime degli SDK .NET Core. Se si usa Visual Studio Preview, non è necessario eseguire questa operazione. Altre informazioni su questa impostazione e il relativo comportamento sono disponibili in .NET Core tooling update for Visual Studio 2017 version 15.9 (Aggiornamento degli strumenti .NET Core per Visual Studio 2017 versione 15.9).

È anche possibile creare progetti Windows Form o WPF per .NET Core 3.0 con il comando "dotnet new". Questi progetti possono quindi essere aperti in Visual Studio 2019.

Nuove funzionalità

A partire da questa versione, i file di progetto per progetti in stile .NET SDK sono un tipo di file di prima classe in Visual Studio. Sono ora supportate le operazioni seguenti:

  • Doppio clic su un nodo del progetto per aprire il file di progetto
  • Singolo clic sul nodo del progetto per aprire il file di progetto in una scheda di anteprima
  • Ricerca di un file di progetto per nome con Vai a tutti (ctrl + T)
  • Ricerca di elementi di MSBuild in un file di progetto con la funzionalità Cerca nei file
  • Apertura dall'elenco degli errori se viene generato un errore di creazione di progetti

Inoltre, i progetti in stile .NET SDK usano ora la nuova console integrata per F5 e ctrl + F5 nelle app console. In questo modo, si ottiene un'esperienza unificata per l'avvio di applicazioni console da Visual Studio:

  • Per F5, la finestra della console non viene automaticamente chiusa al termine dell'esecuzione dell'app. Non è più necessario aggiungere chiamate Console.Read() alle app console.
  • Per ctrl + F5, la finestra della console viene riutilizzata nelle esecuzioni successive dell'app. Non è più necessario chiudere i caricamenti delle finestre della console.

La nuova finestra della console può essere chiusa automaticamente premendo un tasto quando è aperta o selezionando l'opzione in Opzioni > strumenti > Chiudere automaticamente la console quando si arresta il debug.

Supporto per le espressioni di licenza e i file di licenza aggiunto alle pagine delle proprietà del progetto. Ciò è conforme alle modifiche per impostare licenseUrl come deprecato in NuGet.

Miglioramenti delle prestazioni
  • La scalabilità delle soluzioni di grandi dimensioni è stata notevolmente migliorata, consentendo l'uso di soluzioni .NET Core molto più grandi rispetto a prima.
  • I tempi di caricamento delle soluzioni per i progetti di grandi dimensioni sono stati ridotti in modo significativo, così come l'utilizzo della CPU e della memoria durante il caricamento.
Parità delle funzionalità con i progetti non .NET Core

È possibile trovare un elenco completo dei problemi e delle richieste pull nelle attività cardine di 16.0, 16.0 Preview 2, 16.0 Preview 3 e 16.0 Preview 4.

Produttività .NET

  • Nuovi refactoring e correzioni del codice .NET:

    • Spazio dei nomi di sincronizzazione e nome della cartella
    • Refactoring per il pull di membri con opzioni della finestra di dialogo
    Pull members up refactoring with dialog options
    Finestra di dialogo per il pull di membri
    • Wrapping/rientro/allineamento di elenchi di parametri/argomenti
    • Conversione di tipi anonimi in tupla
    • Uso del corpo dell'espressione e/o del blocco per espressioni lambda
    • Inversione di espressioni condizionali e operazioni logiche
    • Chiusura automatica del commento del blocco in corrispondenza di "/"
    • Conversione in assegnazione composta
    • Correzione del problema per cui le variabili tipizzate in modo implicito non possono essere costanti
    • Correzione automatica per sostituire @$" con $@" durante la digitazione di una stringa verbatim interpolata
    • Completamento per #nullable enable|disable
    • Correzione per valori e parametri di espressione inutilizzati
    • Correzione per consentire a Estrai interfaccia di restare nello stesso file
  • Classificazione di riferimenti in base a lettura/scrittura.

  • Aggiunta dell'opzione when_multiline di Editorconfig per csharp_prefer_braces.

  • Sono disponibili nuovi colori di classificazione in .NET Compiler Platform SDK (noto anche come Roslyn). I nuovi colori predefiniti, simili ai colori di Visual Studio Code, vengono implementati gradualmente. È possibile modificare questi colori in Strumenti > Opzioni > Carattere e colori dell'ambiente > o disattivarli in Funzionalità di anteprima ambiente > deselezionando la casella di controllo Usa colori avanzati. Microsoft invita gli utenti a inviare commenti e suggerimenti sull'impatto di questa modifica sul flusso di lavoro.

New Roslyn classification colors
Nuovi colori di classificazione di Roslyn

Debug JavaScript nei progetti ASP.NET

  • Se è stato aggiunto un nuovo browser Google Chrome con argomenti personalizzati tramite il menu "Esplora con..." per il progetto ASP.NET, Visual Studio abilita ora il debug di JavaScript per l'applicazione all'avvio del debug. Gli argomenti di avvio personalizzati per Google Chrome verranno applicati all'avvio di Chrome.
Adding Google Chrome with Custom arguments using 'Browse with'
Aggiunta di Google Chrome con argomenti personalizzati tramite "Esplora con"
Nota: Visual Studio, per impostazione predefinita, avvierà Chrome usando una directory dati diversa rispetto all'istanza normale di Chrome, a meno che non si fornisca il percorso alla directory dei dati come argomento. Di conseguenza, se devono essere disponibili determinate estensioni quando si usa questa istanza di Chrome, è necessario installarle la prima volta.

strumenti ASP.NET e Funzioni di Azure

  • Visual Studio 2019 include una nuova esperienza per la creazione di nuovi progetti. In particolare quando si creano nuovi progetti ASP.NET, Visual Studio offre finestre di dialogo aggiuntive che presentano scelte specifiche di ASP.NET. Queste finestre di dialogo sono state aggiornate in modo da rispecchiare lo stile di visualizzazione del resto dell'esperienza.
  • Per il momento, le credenziali di pubblicazione in Visual Studio vengono crittografate e archiviate nel file utente del profilo di pubblicazione e non è quindi necessario immetterle nuovamente ogni volta che si pubblica l'applicazione. I file utente in genere sono esclusi dal controllo del codice sorgente per impostazione predefinita perché è probabile che contengano informazioni segrete e/o personali che non devono essere condivise. Finora, se nel controllo del codice sorgente veniva archiviato un profilo di pubblicazione per un progetto di Funzioni di Azure, ma non il file utente, le credenziali di pubblicazione non erano presenti e il profilo di pubblicazione non poteva essere riutilizzato. Ora è consentito modificare le credenziali e creare un nuovo file utente per poter riutilizzare il profilo di pubblicazione.

Creazione guidata sessione di prestazioni

In Visual Studio 2019 le esperienze di profilatura disponibili nella Creazione guidata sessione di prestazioni sono state spostate nel Profiler prestazioni. È possibile trovare lo strumento di utilizzo della CPU per il campionamento e la strumentazione nello strumento relativo nel Profiler prestazioni. Con questa modifica la Creazione guidata sessione di prestazioni non è più necessaria e pertanto è stata rimossa da Visual Studio 2019. L'opzione di campionamento negli strumenti da riga di comando delle prestazioni di Visual Studio è stata rimossa e uno strumento da riga di comando sostitutivo verrà rilasciato in un'anteprima imminente.

Strumenti di test

  • È ora possibile fare clic con il pulsante destro del mouse su test, classi di test o progetti di test in Esplora soluzioni per eseguire i test o eseguirne il debug.
  • Le esecuzioni dei test rilevano ora automaticamente l'architettura del processore impostata nelle proprietà del progetto.
  • Gli strumenti di test dell'interfaccia utente OSS, ad esempio Selenium e Appium, si sono sviluppati e dispongono di un forte supporto della community. Poiché tali framework sono diventati standard del settore, il test codificato dell'interfaccia utente per le operazioni di test funzionali e automatizzate basate sull'interfaccia utente è deprecato. Visual Studio 2019 rappresenterà l'ultima versione di Visual Studio con le funzionalità di test dell'interfaccia utente codificato. È consigliabile usare Selenium per eseguire il test delle applicazioni Web e Appium con WinAppDriver per eseguire il test delle app desktop e UWP.
  • Visual Studio 2019 sarà l'ultima versione di Visual Studio con le funzionalità di test di carico. Per i clienti che hanno bisogno di strumenti di test di carico, è consigliabile usare strumenti alternativi, ad esempio Apache JMeter, Akamai CloudTest e Blazemeter.
  • In Visual Studio 2019 alcune API delle finestre di test contrassegnate in precedenza come pubbliche, ma mai documentate ufficialmente, sono state rimosse. Tali API sono state contrassegnate come deprecate in Visual Studio 2017 per comunicare in anticipo un avviso ai gestori delle estensioni. In base alla nostra conoscenza, solo poche estensioni dipendono da tali API, che includono IGroupByProvider, IGroupByProvider, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken e SearchFilterTokenType. Se questa modifica interessa un'estensione in uso, comunicare il problema alla community degli sviluppatori.

Visual Studio Tools per Kubernetes

Visual Studio Tools per Kubernetes, in precedenza disponibile come estensione separata per Visual Studio 2017, è ora integrato nel carico di lavoro di sviluppo di Azure in Visual Studio 2019.

Aggiunta del supporto per Kubernetes in un nuovo progetto

Per aggiungere il supporto per Kubernetes in un nuovo progetto, aprire Visual Studio e selezionare l'opzione Crea un nuovo progetto. Nella finestra Crea un nuovo progetto cercare Kubernetes e selezionare il modello di progetto Container Application for Kubernetes (Applicazione contenitore per Kubernetes).

Creating a Container Application for Kubernetes
Creazione di un'applicazione contenitore per Kubernetes

Fare clic su Avanti e immettere nome del progetto, percorso e nome della soluzione. Scegliere quindi Crea. Selezionare il modello di applicazione ASP.NET Core che si vuole usare per il progetto e fare clic su OK. Visual Studio creerà automaticamente un documento Dockerfile e un grafico Helm che è possibile usare per compilare e distribuire la nuova applicazione in un cluster Kubernetes. È possibile modificare questi elementi in base alle esigenze.

Aggiunta del supporto per Kubernetes in un progetto esistente

È anche possibile aggiungere il supporto per Kubernetes in un'applicazione ASP.NET Core esistente. A questo scopo, aprire il progetto in Visual Studio 2019. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto, scegliere Aggiungi e quindi fare clic su Container Orchestrator Support (Supporto per agente di orchestrazione).

Adding container orchestrator support
Aggiunta del supporto per l'agente di orchestrazione

Nella finestra di dialogo Add Container Orchestrator Support (Aggiungi supporto per agente di orchestrazione) scegliere Kubernetes/Helm e fare clic su OK. Visual Studio creerà automaticamente un documento Dockerfile e un grafico Helm (in una cartella denominata charts) che è possibile usare per compilare e distribuire l'applicazione in un cluster Kubernetes. Se uno o entrambi questi elementi sono già presenti, non verranno sovrascritti. È possibile modificare questi elementi in base alle esigenze.

Creazione di un endpoint accessibile pubblicamente

Quando si aggiunge il supporto per Kubernetes in un progetto nuovo o esistente, Visual Studio chiede se si vuole creare un endpoint accessibile pubblicamente per l'applicazione.

Publicly accessible endpoint prompt
Richiesta relativa all'endpoint accessibile pubblicamente

Se si fa clic su , Visual Studio configura il grafico Helm per l'applicazione per creare un oggetto di ingresso di Kubernetes quando l'applicazione viene distribuita in un cluster Kubernetes. È possibile modificare questa opzione in qualsiasi momento modificando il grafico Helm.

Debug dell'applicazione nel servizio Azure Kubernetes

Dopo avere aggiunto il supporto per Kubernetes in un progetto nuovo o esistente, è possibile compilare, eseguire e sottoporre a debug l'applicazione in tutta semplicità in un cluster del servizio Azure Kubernetes live usando una funzionalità denominata Azure Dev Spaces. Questa funzionalità è utile per testare il progetto nel contesto di un effettivo cluster Kubernetes o per il debug di un servizio che fa parte di un'applicazione molto più grande senza dover replicare l'intera applicazione in locale. Azure Dev Spaces include anche una funzionalità che permette al team di sviluppo di condividere un cluster del servizio Azure Kubernetes. Per altre informazioni su Azure Dev Spaces, vedere la documentazione di Azure Dev Spaces. Per iniziare, assicurarsi che Azure Dev Spaces sia selezionato come destinazione di avvio del debug in Visual Studio.

Selecting Azure Dev Spaces as debug launch target
Selezione di Azure Dev Spaces come destinazione di avvio del debug

Prima di avviare il progetto in Azure Dev Spaces per la prima volta, configurare la sottoscrizione di Azure e il cluster del servizio Azure Kubernetes da usare. Inoltre, selezionare lo spazio in cui si vuole eseguire il progetto.

Configuring Azure Dev Spaces
Configurazione di Azure Dev Spaces

In genere, il team esegue la versione stabile più recente dell'intera applicazione nello spazio predefinito. Si esegue quindi la versione del servizio usata in uno spazio figlio dello spazio predefinito. Ora non è più necessario eseguire gli altri servizi nello spazio figlio: Azure Dev Spaces indirizza automaticamente le chiamate dal servizio alle versioni stabili dei servizi in esecuzione nello spazio predefinito. Per altre informazioni su come eseguire questa configurazione, vedere le esercitazioni di sviluppo per i team nella documentazione di Azure Dev Spaces. Dopo aver selezionato la sottoscrizione, il cluster e lo spazio corretti, fare clic su OK per procedere con la configurazione di Azure Dev Spaces. Se si seleziona un cluster cui non è già associato un controller Azure Dev Spaces, fare clic su OK nella finestra di dialogo successiva per crearne uno automaticamente.

Enable Dev Spaces dialog
Finestra di dialogo per l'abilitazione di Azure Dev Spaces

Per la creazione del controller sono necessari circa 2 minuti. È possibile fare clic sul pulsante Attività in background nell'angolo inferiore sinistro della finestra di Visual Studio per visualizzare lo stato.

Azure Dev Spaces controller creation status via Background Tasks
Stato di creazione del controller Azure Dev Spaces tramite Attività in background

Quando il controller Azure Dev Spaces è pronto per l'uso, premere F5 oppure fare clic sul pulsante di debug di Azure Dev Spaces sulla barra degli strumenti per eseguire il debug del progetto nel servizio Azure Kubernetes.

Azure Dev Spaces debug button
Pulsante di debug di Azure Dev Spaces

Azure Dev Spaces sincronizzerà il codice con Azure, compilerà un'immagine del contenitore che include il codice e la distribuirà nel cluster del servizio Azure Kubernetes tramite il grafico Helm definito nel progetto. Visual Studio aprirà una connessione di debug remota al servizio in esecuzione nel cluster in modo da consentire l'interazione proprio come quando si esegue il debug di un servizio in esecuzione in locale.

Sviluppo di app per dispositivi mobili Xamarin

Questa versione include miglioramenti per le dimensioni del carico di lavoro e le prestazioni della compilazione e l'affidabilità di Android, nonché miglioramenti per la produttività di Xamarin.Android e Xamarin.Forms.

  • Il carico di lavoro di Xamarin è ora di 7,69GB, con una riduzione di due volte rispetto a Visual Studio 2017 versione 15.9 e un miglioramento di 3 volte rispetto alla versione 15.7.
  • L'estensione IntelliCode ora supporta codice XAML di Xamarin.Forms.
File > Nuovo progetto

Sono stati apportati alcuni miglioramenti per le prestazioni destinati a ridurre il tempo impiegato per creare un nuovo progetto Xamarin, in modo da accelerare l'avvio della compilazione delle app. Sono ora inclusi anche i pacchetti NuGet usati dai modelli come parte dell'installazione del carico di lavoro per ridurre i tempi di ripristino dei pacchetti, in particolare in situazioni offline o con larghezza di banda ridotta. In alcuni casi, questi miglioramenti riducono quasi del 50% il tempo necessario per caricare e ripristinare completamente un nuovo progetto Xamarin.

New Xamarin project comparison gif
Creazione di un nuovo progetto Xamarin in Visual Studio versione 15.9 (a sinistra) e Visual Studio 2019 (a destra)
Indicatore di stato della compilazione

È ora possibile visualizzare informazioni più dettagliate sullo stato di compilazione durante la compilazione dei progetti. Facendo clic sull'icona Attività in background nell'angolo inferiore sinistro durante una compilazione, verrà visualizzata la destinazione di compilazione corrente in esecuzione. Questo può essere utile per determinare se la compilazione è ancora in esecuzione, ma il completamento di una destinazione sta impiegando molto tempo.

Xamarin build progress indicator
Indicatore dello stato di compilazione Xamarin
Modalità di anteprima basic di Xamarin.Forms Previewer

Non è più necessario compilare il progetto per il visualizzatore anteprima XAML di Xamarin.Forms per vedere un'anteprima del codice. Se l'utente usa controlli personalizzati nel file XAML, può essere necessario compilare il progetto per visualizzarli in anteprima oppure acconsentire esplicitamente al rendering degli stessi in fase di progettazione.

Elenco a discesa del dispositivo anteprima Xamarin.Forms

È ora possibile alternare l'uso di diversi dispositivi Android e iOS per visualizzare in anteprima il codice XAML di Xamarin.Forms usando il nuovo menu a discesa dei dispositivi.

Xamarin.Forms Device Drop-Down
Menu a discesa dei dispositivi di Xamarin.Forms
Pannello delle proprietà di Xamarin.Forms

È ora possibile modificare gli attributi più comuni dei controlli, delle celle e dei layout Xamarin.Forms in un pannello delle proprietà e visualizzare le modifiche immediatamente applicate al codice XAML.

Xamarin.Forms Property Panel
Pannello delle proprietà Xamarin.Forms
Modello della shell Xamarin.Forms

Sono stati aggiornati i modelli Xamarin.Forms in modo da usare la versione di Xamarin.Forms più recente ed è stata aggiunta anche una nuova opzione di modello per un'app Xamarin.Forms Shell. La shell mira a ridurre la complessità delle app migliorando la produttività degli sviluppatori e concentrandosi sulla velocità di rendering e sul consumo di memoria. Questo modello offre un'app shell con bootstrap per Android e iOS.

Prestazioni e affidabilità di Android Build

In Visual Studio 2017 versione 15.9 e in Visual Studio per Mac 7.7 sono stati apportato miglioramenti alle prestazioni e alla correttezza della compilazione iniziale. In Visual Studio 2019 e Visual Studio per Mac 7.8 la compilazione e la distribuzione sono ancora più veloci.

Android Build Performance
*Android Build Now Faster than Grabbing a Cup of Coffee*
  • È ora possibile usare gli strumenti di Android di nuova generazione. Per abilitare questa funzionalità, aggiungere un flag MSBuild nel progetto .csproj:
    • aapt2 divide i pacchetti Android in due passaggi: Compila e Collega. In questo modo vengono migliorate le prestazioni per le compilazioni incrementali e vengono segnalati tempestivamente gli errori. Se ad esempio sono presenti modifiche in un singolo file, è sufficiente ricompilare tale file. <AndroidUseAapt2>True</AndroidUseAapt2>
  • Se si abilita questo strumento nei progetti, si ottimizzano le prestazioni sia in fase di compilazione che in fase di esecuzione. Per altre informazioni su queste proprietà, vedere la documentazione sul processo di compilazione in Xamarin.Android.
Miglioramenti dell'emulatore Android

In Visual Studio 2019 le immagini dell'emulatore Android sono più semplici da creare. Abbiamo anche continuato a collaborare con il team di Windows in relazione all'Aggiornamento di Windows 10 (ottobre 2018), versione 1809, per migliorare le prestazioni dell'emulatore Android durante l'esecuzione in Hyper-V.

  • I nuovi utenti possono creare la prima immagine semplicemente premendo l'icona di esecuzione.
  • La nostra esperienza di acquisizione dell'emulatore determina automaticamente la migliore configurazione per il programma di installazione e consente di sfruttare l'accelerazione hardware (con Intel HAXM o Hyper-V) e l'avvio rapido per impostazione predefinita.
  • Quando si vuole creare un'altra immagine, è possibile selezionare Crea emulatore Android nell'elenco a discesa per aprire Android Device Manager.
Velocizzare i tempi di compilazione grazie ai miglioramenti per la compilazione in Xamarin.Android

È stato introdotto un insieme di miglioramenti per le prestazioni di compilazione iniziale. A partire da oggi, Xamarin.Android 9.1.1+ include miglioramenti significativi per le prestazioni di compilazione rispetto alla versione precedente. Per altri dettagli, vedere il confronto delle prestazioni di compilazione di Xamarin.Android 15.9 e 16.0.

Miglioramenti per la distribuzione rapida per Xamarin.Android

Fino a oggi Fast Deployment ha fornito tempi di distribuzione incrementale più rapidi ignorando la ricompilazione o la ridistribuzione del pacchetto Android (file APK) negli scenari in cui non vengono apportate modifiche ad alcun asset, risorsa o libreria nativa condivisa inclusa nel pacchetto dell'app, né ad alcuna classe definita dall'utente che eredita da Java.Lang.Object. La funzionalità Fast Deployment migliorata estende il supporto per la distribuzione rapida in modo da includere librerie native condivise e classi che ereditano da Java.Lang.Object. Le compilazioni Fast Deployment che usano questi nuovi miglioramenti devono generare un nuovo file APK solo in un numero limitato di scenari, ad esempio quando il file AndroidManifest.xml cambia a causa dell'aggiunta di una nuova sottoclasse Android.App.Application o Activity. Questi miglioramenti non sono ancora abilitati per impostazione predefinita nell'anteprima corrente. Per abilitarli, impostare la proprietà MSBuild $(AndroidFastDeploymentType) su Assemblies:Dexes nel file CSPROJ:

<PropertyGroup> 
  <AndroidFastDeploymentType>Assemblies:Dexes</AndroidFastDeploymentType> 
</PropertyGroup>
Supporto di Dex Compiler(d8) e Code Shrinker(r8) di nuova generazione in Xamarin.Android

Xamarin.Android supporta ora il compilatore dex (d8) e lo strumento di compressione del codice (r8) di Android. Per abilitare queste funzionalità, impostare le proprietà MSBuild $(AndroidDexTool) e $(AndroidLinkTool) rispettivamente su d8 e r8 nel file CSPROJ

  • d8 è un compilatore dex di nuova generazione che viene eseguito più rapidamente e produce file DEX di dimensioni minori con prestazioni di runtime migliori.
<PropertyGroup> 
  <AndroidDexTool>d8</AndroidDexTool>
</PropertyGroup>
  • r8 è un nuovo strumento per la compressione e la minimizzazione che converte bytecode Java in codice dex ottimizzato, eliminando la necessità di usare ProGuard.
<PropertyGroup> 
  <AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>

Per altri dettagli su d8 e r8, vedere la documentazione.

Miglioramenti di Xamarin.Android Designer

Sono stati apportati numerosi miglioramenti alla produttività per le interazioni in doppia visualizzazione.

  • Possibilità di trascinare e rilasciare gli elementi direttamente dalla casella degli strumenti nell'editor di origine per consentire rapidamente il processo di scaffolding dei layout Android.
Android Designer Toolbox to Source Editor
  • Selezione degli elementi direttamente dall'ambito di definizione XML nell'editor di origine. Questa funzionalità è stata implementata eseguendo la sincronizzazione della posizione del cursore con la visualizzazione di Android corrispondente, consentendo di accedere rapidamente alle proprietà di un elemento nel pannello relativo direttamente dall'editor.
Android Designer Source Editor to Property Editor
  • Uso di un'anteprima di colore inline per il codice XML in modo che sia possibile visualizzare i colori usati nei controlli.
Android Designer Color Preview
  • Uso della funzionalità di informazioni rapide passando il cursore del mouse su un valore per visualizzare altre informazioni, ad esempio il punto in cui è definito oppure il valore esadecimale del colore.
Android Designer Quick Info
*Informazioni rapide in azione*
Miglioramenti della finestra di progettazione Xamarin.Android con il supporto iniziale di layout con vincoli

Microsoft è impegnata a migliorare la velocità di avvio di Android Designer. Come parte di questo impegno, è stata anche migliorata la messaggistica fornita dalla finestra di progettazione durante il caricamento.

Android Designer Output

Insieme a questi miglioramenti, Android Designer supporta ora in modo nativo Android Pie (9.0) e offre il completamento automatico per attributi ConstraintLayout.

Ottenere migliori ottimizzazioni di IntelliSense e commento XML con Xamarin.Android Designer

Quando si Usa IntelliSense per aggiungere un widget a un layout, viene ora fornita un'esperienza completa di gestione dei frammenti in modo da permettere di fornire gli attributi necessari sin dall'inizio. Sono state aggiunte funzionalità intelligenti per l'aggiunta e la rimozione dei commenti per i layout XML per Android.

Essere più produttivi usando Go-To-Definition e usare IntelliSense XML all'interno di file di risorse Android e AndroidManifest.xml

È ora possibile fare clic tenendo premuto CTRL negli URL di risorsa per passare al file o alla riga in cui sono definiti.

Android Designer Go-To-Definition

Sono ora supportati IntelliSense e/o il completamento automatico per altri file XML Android diversi dai layout (colori, stringhe, risorse drawable, menu, manifesto Android e così via).

Piattaforma UWP (Universal Windows Platform)

  • L'estensione IntelliCode ora supporta XAML.
  • Per ridurre la complessità e le dimensioni di installazione di Visual Studio, gli emulatori di Windows Phone sono stati rimossi dall'installazione stessa. È quindi necessario scaricare gli emulatori manualmente.
  • Gli strumenti in fase di progettazione XAML per le app UWP che fanno riferimento agli SDK di Windows 10 prima di Windows 10 Fall Creators Update (versione 16299) sono stati rimossi. Per usare la finestra di progettazione XAML, le applicazioni devono fare riferimento a Windows 10 versione 1709 o successiva. In alternativa, usare l'editor XAML.
  • I progetti di test della piattaforma UWP che usano project.json per definire le dipendenze di NuGet non sono più supportati. Per usare il nuovo formato PackageReference, è necessario aggiornare il progetto.
  • Le app UWP JavaScript non sono più supportate in Visual Studio 2019. Non è possibile creare o aprire progetti JavaScript della piattaforma UWP (file con estensione jsproj). Per altre informazioni, leggere la documentazione sulla creazione delle app Web progressive eseguite in modo corretto in Windows.
  • È possibile continuare a collegarsi alle app UWP JavaScript come prima, tuttavia gli strumenti di profilatura JavaScript (rete, CPU e profiler della memoria) non sono più disponibili in Visual Studio 2019.

Aggiornamenti dei modelli degli strumenti di Office

In Visual Studio 2019 sono state apportate alcune modifiche ai modelli di Office, SharePoint e Visual Studio Tools per Office.

  • I modelli di SharePoint 2019 aggiunti in Visual Studio 2017 15.9 sono disponibili anche in Visual Studio 2019.
  • È stato rimosso il supporto per il flusso di lavoro sequenziale di SharePoint o per i flussi di lavoro della macchina a stati. Anche se non sarà possibile creare o aprire tali flussi di lavoro in Visual Studio 2019, è possibile continuare a modificarli nelle versioni precedenti di Visual Studio.
  • I modelli di Office 2010 non sono più disponibili. È comunque possibile aprire progetti esistenti di Office 2010 in Visual Studio 2019.
  • I modelli di Office 2013 e 2016 sono stati rinominati per riflettere il supporto di Office 2013 e versioni successive.

Team Explorer e Azure DevOps

È in fase di rilascio un'esperienza nuova, semplificata e specifica per gli sviluppatori nella connessione tra Team Explorer e un progetto Azure DevOps.

  • Attenzione concentrata sugli elementi di lavoro rilevanti filtrando e indirizzando la visualizzazione in base agli elementi di lavoro assegnati all'utente, ovvero quelli specifici seguiti dall'utente, quelli in cui l'utente è stato menzionato e quelli basati sull'attività dell'utente.

    • In ogni visualizzazione è possibile creare una funzione inline dell'elemento di lavoro, eseguire modifiche inline semplici, contrassegnare un elemento di lavoro come completato e associare un elemento di lavoro a modifiche in sospeso.
  • Creazione di un ramo locale da un elemento di lavoro che automaticamente mette in relazione l'elemento di lavoro alle modifiche apportate a tale ramo. Questa è l'esperienza predefinita. Per passare all'esperienza legacy, impostare l'esperienza Elementi di lavoro in Visual Studio. Si noti che questa nuova esperienza è valida solo per repository Git. La nuova esperienza per i repository tfvc sarà disponibile in un aggiornamento seguente.

    Azure DevOps Work Item Hub
    *Hub dell'elemento di lavoro di Azure DevOps*
  • Ricerca degli elementi di lavoro quando si inserisce una menzione nel messaggio di commit delle modifiche in sospeso. Per altre informazioni, vedere View and add work items using the Work Items page (Visualizzare e aggiungere elementi di lavoro nella pagina Elementi di lavoro).

    Azure DevOps #mentions
    *Azure DevOps #mentions*
  • Il supporto per Microsoft Project è stato rimosso dal plug-in Integrazione di Office con Team Foundation Server 2019 per Visual Studio 2019 a causa di una bassa frequenza di uso in Azure DevOps. È necessario pertanto esportare gli elementi di lavoro in Excel e incollarli manualmente in Project.

  • Il supporto per PowerPoint è stato rimosso dal plug-in Integrazione di Office con Team Foundation Server 2019 per Visual Studio 2019. Gli utenti possono comunque creare storyboard di PowerPoint e collegarli manualmente a elementi di lavoro in DevOps di Azure.

Application Insights e HockeyApp

  • La finestra Tendenze di Application Insights è stata rimossa in Visual Studio 2019 per essere sostituita con alternative con maggiori funzionalità. È possibile usare la finestra Ricerca di Application Insights in Visual Studio o la vasta gamma di strumenti di diagnostica in Application Insights nel portale di Azure.
  • Sono state rimosse le procedure guidate per l'aggiunta di HockeyApp SDK e per la creazione di nuove distribuzioni beta. È consigliabile usare Visual Studio App Center, componente successore di HockeyApp. È comunque possibile usare HockeyApp normalmente, ma senza questi collegamenti in Visual Studio.

Release Notes Icon Problemi risolti in Visual Studio 2019 RC

Data ultimo aggiornamento: 26 aprile 2019


Problemi noti

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

Visual Studio 2019 Known Issues

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