Visual Studio 2015 Update 3

Last Update: 01/09/2017

Data di rilascio: 27 giugno 2016

Oggi Microsoft è lieta di annunciare il rilascio di Visual Studio 2015 Update 3. Uno dei problemi principali segnalati in Update 2 è stato l'utilizzo elevato della memoria. Questo problema è stato affrontato in Update 3 RC e la sua risoluzione è confermata dai clienti che lo avevano segnalato, interpellati da Microsoft. In Update 3 sono incluse numerose correzioni a problemi di prestazioni e di stabilità segnalati dai clienti. Se queste non sono le note sulla versione previste, sono state visualizzate le note sulla versione per la versione più recente.

Inviare gli eventuali commenti usando l'opzione Commenti e suggerimenti in Visual Studio. È anche possibile inviare suggerimenti tramite il sito Visual Studio 2015 UserVoice.

Download

È possibile scaricare Visual Studio 2015 da My.VisualStudio.com. My.VisualStudio.com richiede una sottoscrizione Dev Essentials gratuita o una sottoscrizione di Visual Studio.

Per altre informazioni, vedere Procedura: Installare una versione specifica di Visual Studio.

Novità

Altre modifiche

Strumenti per Apache Cordova

Visual Studio 2015 Update 3 include strumenti per Apache Cordova Update 10, compresi i miglioramenti seguenti. Per altre informazioni su questa versione, vedere le note sulla versione di Strumenti per Apache Cordova, aggiornamento 9 e aggiornamento 10. Per le notizie più recenti sugli strumenti, visitare il Blog per sviluppatori su GitHub.

  • È stato aggiunto il supporto per Cordova 6.1.1, la versione predefinita per i nuovi progetti.
  • È stato ritirato il Registro di sistema del plug-in Cordova usato in Cordova 4. x, quindi ora è necessario un minimo di Cordova 5. x o versione successiva per aggiungere plug-in.
  • L'elenco dei plug-in di base è stato aggiornato e ora include i plug-in per gli ambienti aziendali, ad esempio Intune, Azure Mobile Engagement, sicurezza e archiviazione locale di SQLite.
  • Ora è possibile aggiungere i plug-in dalla finestra di progettazione di configurazione in base al nome del pacchetto npm o all'ID.

plug-in-byid

  • Dalla finestra di progettazione di configurazione possono essere aggiunti anche i plug-in che richiedono parametri.

plugin-parameters

Developer Analytics Tools

Strumenti di analisi per sviluppatori 7.0.2 include i miglioramenti seguenti:

  • Tendenze di Application Insights, uno strumento per il rilevamento di tendenze nei dati di telemetria dell'app.
  • Novità Telemetria delle eccezioni in CodeLens.
  • Informazioni sui dati di telemetria di produzione aggiunte alle eccezioni in Strumenti di diagnostica.
  • Supporto per l'aggiunta di Application Insights ai progetti ASP.NET Core RC2 da Visual Studio.
  • Eventi di Strumenti di diagnostica per i progetti ASP.NET 5 RC1 e ASP.NET Core RC2.
  • Aggiornamenti automatici di Ricerca di Application Insights quando sono selezionati filtri per i dettagli, intervalli di tempo ed eventi.
  • Vai al codice dalle richieste nella ricerca.
  • Migliorata l'esperienza di accesso a HockeyApp.

Per altre informazioni, vedere le note tecniche sulla versione nella documentazione di Microsoft Azure.

Debug e diagnostica

In Update 3 è stato aggiunto il supporto di Strumenti di diagnostica per le app eseguite in dispositivi OneCore, tra cui HoloLens e IOT.

Miglioramenti apportati a Modifica e continuazione in C++:

  • Prestazioni e affidabilità ottimizzate quando si abilita FASTLINK.
  • Corretta applicazione delle modifiche del codice alle librerie statiche senza generazione di codice non aggiornato.
  • Gli avvisi C4656 non appaiono più per modifiche di tipo falso positivo durante la ricompilazione.
  • Supporto per l'aggiunta di un nuovo tipo con lo stesso nome in più unità di compilazione.

Miglioramenti apportati al debug dell'interfaccia utente XAML:

  • Ogni volta che lo stato attivo cambia nell'app, con la nuova funzionalità di traccia dello stato attivo la selezione in Albero elementi visivi attivi si aggiorna in base all'elemento attivo.

IDE di Visual Studio

Sottoscrizioni e codici Product Key

In Update 3 sono stati elaborati i commenti e suggerimenti dei clienti che usano le sottoscrizioni tramite codici Product Key o un'identità online per sbloccare l'IDE, con i risultati seguenti:

  • Non è più necessario visitare il sito https://my.visualstudio.com per attivare la sottoscrizione cloud di Visual Studio assegnata ed è possibile iniziare immediatamente a usare l'IDE di Visual Studio non appena viene assegnata la sottoscrizione.
  • È stata migliorata la gestione degli errori quando si applica un codice Product Key.
  • Tutte le operazioni correlate alla gestione degli account utente e delle licenze ora sono protette con HTTPS.
  • Sono stati apportati miglioramenti all'accessibilità nella finestra di dialogo Impostazioni account riguardo all'attivazione di un abbonamento e all'immissione di un codice Product Key.
  • Novità Non è più necessario eseguire la riautenticazione ogni otto giorni circa per mantenere attivo l'account di personalizzazione e sincronizzare le impostazioni di roaming.

Strumenti per le app di Windows universale

Visual Studio 2015 Update 3 include vari miglioramenti agli strumenti per le app di Windows universale. Uno dei miglioramenti principali permette di accedere con le credenziali di Azure Active Directory di un account per lo store di AAD quando si crea un pacchetto da inviare al Windows Store. Quando il progetto viene associato al Windows Store non sarà più necessario accedere per creare un pacchetto da inviare allo Store.

.NET Native per le app di Windows universale

.NET Native 1.4 è una Service Release secondaria che migliora le prestazioni, corregge diversi bug segnalati dai clienti e migliora i tempi di compilazione della build di versione delle app di grandi dimensioni. Le applicazioni XAML e i giochi Unity che sfruttano .NET Native 1.4 avranno prestazioni di runtime migliori. Questi miglioramenti sono stati ottenuti rendendo più veloci le chiamate API native e con reflection.

Strumenti di architettura

Sono stati elaborati i commenti e i suggerimenti dei clienti riguardo al miglioramento delle prestazioni e dell'affidabilità.

Finestre di progettazione grafica specifiche del dominio, inclusi file EDMX e DBML

Quando in Windows 10 si apre o si prova a modificare diagrammi EDMX o DBML di grandi dimensioni mentre sullo schermo è visualizzata la tastiera, Visual Studio funziona correttamente.

Mappa codice

  • Quando si prova a generare la mappa codici per una soluzione che contiene progetti Installer, con estensione vdproj, Visual Studio funziona correttamente.
  • Quando si esegue un comando di generazione mappa codici dall'editor di codice e si chiude la finestra Mappa codice non appena viene visualizzata, Visual Studio funziona correttamente.

Convalida dei livelli

  • Quando si compila una soluzione con un progetto di modello contenente un diagramma livello con un'azione di convalida, non viene più usato un core CPU al termine della compilazione.
  • Ora è possibile convalidare un diagramma livello se il relativo progetto di modello padre fa riferimento a librerie PCL, ad esempio ODP.Net.

Node.js Tools per Visual Studio

Novità Node.js Tools 1.2 RC per Visual Studio è ora disponibile per il download. Questa versione dovrebbe rappresentare un notevole miglioramento in termini di stabilità e prestazioni e ridurre gli arresti anomali per memoria insufficiente delle versioni precedenti.

Tra le caratteristiche principali:

  • IntelliSense per ES6 più facile e veloce
  • Debug più affidabile
  • Esperienze di unit test migliorate, incluso il supporto per il nastro
  • Comando .npm in più tipi di progetto

Per altre informazioni e download, vedere la pagina relativa a Node.js Tools 1.2 RC.

Web Developer Tools

Per i progetti di applicazioni Web ASP.NET, quando la casella di controllo "Abilita Modifica e continuazione" è deselezionata, il processo IIS Express non si arresta più ogni volta che viene arrestato il debug.

Visual C++

In Update 3 sono stati inclusi miglioramenti quali nuovi controlli e messaggi di avviso per il compilatore C++, nonché il supporto e miglioramenti delle prestazioni per la codifica in Visual Basic e C#.

Compilatore C++

  • Ora è possibile controllare l'accesso di un ctor di copia/spostamento semplice eliminato. Senza il controllo, si potrebbe chiamare in modo errato il ctor di copia predefinito, in cui l'implementazione può essere in formato non valido, e causare la generazione di codice runtime potenzialmente errato.
  • Std::is_convertible ora rileva correttamente l'assegnazione automatica di un tipo di classe quando il costruttore di copia è eliminato o privato.
  • Come ultima fase del completamento della deprecazione del supporto ATL con attributi iniziata in Visual Studio 2008, è stato aggiunto un nuovo avviso di deprecazione al compilatore. Con Visual Studio 2015 Update 3, l'utilizzo di codice ATL con attributi genera un avviso di livello 1 abilitato per impostazione predefinita. C4467
  • Quando si usano file PCH, la mancata corrispondenza delle directory di inclusione -l nel compilatore tra le compilazioni -Yc e -Yu ora genera un nuovo avviso. C4599
  • Quando si usano file PCH, la mancata corrispondenza delle direttive #include nei file di origine tra le compilazioni -Yc e -Yu ora genera un avviso. C4598

Per altre informazioni sull'impatto di queste modifiche sul codice esistente, vedere Guida al porting e aggiornamento in Visual C++ su MSDN.

Librerie C++

  • Sono state ripristinate le prestazioni in modalità debug quando si eliminano intervalli di oggetti semplici regrediti in Update 2, ad esempio nel vettore.
  • Sono stati implementati i tratti scambiabili indicati nella proposta P0185 per l'aggiunta di tratti scambiabili [nothrow-] del documento di lavoro di C++17. Come funzionalità speculativa di C++17, i tratti (is_swappable, is_swappable_with, is_nothrow_swappable e is_nothrow_swappable_with) sono visibili e i vincoli per std::swap sono attivi solo se si esegue la compilazione con /std:c++latest.
  • Sono state rimosse le chiamate di eventi ETW da vcruntime140.dll e le librerie statiche che in precedenza venivano attivate durante l'avvio del processo e dllmain.
  • Novità È stata rimossa la lunghezza dei nomi dei simboli nei sistemi comuni usati dai contenitori STL, ad esempio std::vector. In questo modo è stata ridotta la probabilità che vengano generati avvisi C4503. Ad esempio, il tipo seguente non genera più un avviso: concurrency::concurrent_unordered_map<wstring, vector<pair<uint64_t, vector<uint8_t>>>>.

  • ATL/MFC/AMP/PPL: un numero elevato di correzioni della conformità riguardo alla ricerca in due fasi, come indicato di seguito:

    • _com_ptr_t ora ha un costruttore di spostamento e un operatore di assegnazione di spostamento.
    • MFC: corretta la gestione dei valori HMENU che occasionalmente impedivano la visualizzazione corretta dei menu nelle applicazioni a 64 bit.

    • ATL/MFC: non vengono più visualizzati gli avvisi seguenti:

    • Override/occultamento funzione: C4263, C4264, C4266
    • Specifica di eccezione non corrispondente: C4986
    • /analyze: C6386

    • ATL: tutte le variazioni di AtlThrow ora sono correttamente contrassegnate con __declspec(noreturn). In questo modo si evita la generazione di avvisi SAL errati.

    • ATL: corrette/migliorate diverse annotazioni SAL.

    • /std:c++latest abilita le nuove funzionalità seguenti: P0025R1 "clamp()", P0185R1 "is_swappable, is_nothrow_swappable" e P0272R1 "Non-const basic_string::data().".

    • /std:c++latest controlla anche la rimozione delle vecchie funzionalità seguenti: N4190 "Removing auto_ptr, random_shuffle(), And Old Stuff" (rimozione di auto_ptr, random_shuffle() e codice obsoleto), P0004R1 "Removing Deprecated Iostreams Aliases" (rimozione di alias iostream deprecati), LWG 2385 "function::assign allocator argument doesn't make sense" (argomento allocator function::assign non pertinente) e varie funzionalità non standard (spazio dei nomi std::tr1, alcuni sistemi solo TR1 e struct std::identity).

    • Corretto codegen silenzioso errato in atomic<int64_t>/atomic<uint64_t> on x86.

    • STL ora evita l'uso di "statistiche chiave" thread-safe tranne quando è assolutamente necessario, migliorando codegen.

    • Il costruttore di inoltro perfetto della tupla ora evita la concorrenza con il costruttore di copia, consentendo la correzione di errori del compilatore in determinati scenari.

  • Coroutine:

    • Deprecate le parole chiave seguenti: __yield_value & __await. In alternativa, usare co_await / co_yield .
    • Aggiunto avviso di deprecazione ai membri to_address e from_promise della classe coroutine_handle. Usare coroutine_handle::to_address() anziché coroutine_handle::address().
    • Usare coroutine_handle::from_promise(Promise *P) anziché coroutine_handle::from_promise(Promise &P).
  • Sono state ottimizzate le prestazioni delle operazioni std::equal e std::lexicographical_compare con l'invio a memcmp e memchr in modo più aggressivo, con un notevole miglioramento delle prestazioni in alcuni scenari. Ad esempio: equal(char,char,char, char) sulle piattaforme a 64 bit.

    • Debug significativo delle compilazioni riducendo il numero di chiamate di funzioni di gestione nel sistema di debug dell'iteratore.
    • string::push_back è migliorata di un altro 40% rispetto ad Update 2 nelle compilazioni di rilascio, con miglioramenti più sostanziali nelle compilazioni di debug. Si tratta di un'aggiunta ai miglioramenti generali inclusi in Update 2.
    • Le compilazioni di debug per tutti gli algoritmi standard sono state migliorate eliminando diversi tipi di chiamate vuote al supporto di metaprogrammazione basato su modelli, ad esempio _Iter_cat, per tutti gli algoritmi che usano i predicati, riducendo il numero di copie dei predicati.
    • std::mismatch in _ITERATOR_DEBUG_LEVEL 1 e 2 per intervallo controllando il secondo intervallo dove possibile prima dell'iterazione.
  • È stata migliorata la diagnostica per i messaggi _SCL_INSECURE_DEPRECATE a tutti gli altri algoritmi. In Update 2 solo un numero ridotto di algoritmi era associato al nuovo meccanismo di deprecazione. In questo modo l'esperienza di debug migliora quando si esegue il debug negli algoritmi standard, poiché non viene più usata alcuna interazione _ITERATOR_DEBUG_LEVEL del preprocessore che dichiara più copie di algoritmi standard. Sono stati inoltre risolti i problemi seguenti:

    • È stata corretta l'impossibilità di compilare alcune funzioni come mismatch(iter, iter, T[]) a causa dell'interazione tra algoritmi a doppio intervallo e _ITERATOR_DEBUG_ARRAY_OVERLOADS non standard.
  • Sono state corrette le violazioni dell'avviso C4242 disabilitato per impostazione predefinita in STL.
  • È stato corretto un possibile bug dell'overflow di Integer in std::pop_heap.
  • È stata corretta una potenziale interruzione in /clr:pure dovuta a chiamate a LoadLibrary inserite in CLR con la conservazione del blocco delle impostazioni locali.

Debug C++/CLI

  • Novità L'analizzatore di espressioni C++/CLI ora supporta funzionalità di debug, ad esempio Natvis, che in precedenza erano supportate solo per app native pure. Ora, quando gli oggetti in un'app mista gestita/nativa vengono elencati in una finestra delle variabili o all'interno di un suggerimento dati, si espandono esattamente come avviene in un'app nativa pura, in base alle definizioni dei visualizzatori dei tipi.

plug-in-byid

Set di strumenti della piattaforma Clang/C2

La versione 3.8 di Clang è stata integrata in Clang/C2 ed è stato messo a disposizione un set di strumenti a 64 bit ospitato.

C++ MDD

È stato abilitato il supporto per la versione più recente di Android NDK R11C ed è possibile aggiornare i progetti correnti in modo da adeguarli a tale versione di NDK.

TypeScript

Novità Visual Studio 2015 Update 3 include TypeScript 1.8.34. È stato corretto un errore di memoria insufficiente generato con alcuni progetti TypeScript di grandi dimensioni che usano AngularJS.

C# e Visual Basic

Novità Sono stati fatti investimenti per ridurre il footprint di memoria e migliorare le prestazioni della diagnostica del codice. Questo permetterà di ridurre molti degli arresti anomali per memoria insufficiente delle versioni precedenti. Sono state migliorate le prestazioni dell'esecuzione della diagnostica del codice in un'intera soluzione. Per altre informazioni sui miglioramenti apportati alle prestazioni della diagnostica del codice, vedere How to: Enable and Disable Full Solution Analysis for Managed Code (Procedura: Abilitare e disabilitare l'analisi completa della soluzione per il codice gestito) in MSDN.

Ulteriori miglioramenti, tra cui:

  • Un'opzione per aggiungere un riferimento a un pacchetto NuGet come correzione rapida:

plug-in-byid

È possibile abilitare questa opzione da Strumenti > Opzioni > Editor di testo > C# > Avanzate, in "Direttive using":

plug-in-byid

  • È stato migliorato il supporto per le librerie di classi portabili destinate alla piattaforma standard .NET.
  • Sono state migliorate le prestazioni all'implementazione GoTo in C# e Trova tutti i riferimenti. Per provare queste opzioni, selezionare un oggetto, fare clic sull'oggetto con il pulsante destro del mouse e selezionare le opzioni dal menu.
  • Se si applica un'azione di "correzione globale" al documento, progetto o soluzione, ora viene visualizzato un indicatore di stato.
  • Novità Sono state migliorate le prestazioni di ricaricamento di progetti C# e VB in soluzioni di grandi dimensioni. Per altre informazioni e suggerimenti, vedere Performance considerations for large solutions (Considerazioni sulle prestazioni per soluzioni di grandi dimensioni).

Team Explorer

Novità Sono stati corretti diversi bug in Team Explorer:

  • Impossibile visualizzare il contenuto di un file eliminato da un repository Git.
  • Quando si visualizza la cronologia di un ramo, l'icona Vai a elemento figlio dovrebbe essere disabilitata se lo stato attivo è l'ultimo commit.
  • Quando si modificano rami con Git.exe, Visual Studio potrebbe arrestarsi in modo anomalo oppure entrare in uno stato sconosciuto.
  • Quando si visualizza la cronologia di un ramo in un repository Git, l'evidenziazione nel grafico della cronologia presenta anomalie.
  • Quando si crea un ramo in Team Explorer, la scelta rapida da tastiera ALT+B per Crea ramo è in conflitto con il menu Compila.
  • In una situazione di utilizzo elevato della memoria durante il tentativo di decomprimere un oggetto più grande rispetto alla memoria disponibile Git restituisce un errore di oggetto non trovato () anziché un errore di memoria insufficiente.
  • La versione in lingua inglese del messaggio di errore "... Per aprire questa soluzione..." contiene un refuso.
  • Quando si visualizza la cronologia di un ramo e si fa clic con il tasto destro del mouse sul primo commit della cronologia, l'operazione di cherry-pick è disabilitata.
  • Quando si crea una richiesta di pull dalla pagina dei rami di Team Explorer, il menu di scelta rapida usa il ramo corrente anziché il ramo selezionato.

Xamarin per Visual Studio

Novità Visual Studio 2015 Update 3 ora include Xamarin 4.1. Oltre a diverse correzioni di bug, questa versione aggiunge il supporto per tvOS, migliora il supporto per il catalogo di asset iOS, migliora l'esperienza di modifica XML e aggiunge selettori per le implementazioni SSL/TLS e HttpClient durante la creazione di app iOS. Per altre informazioni, vedere le note sulla versione di Xamarin.

Problemi noti

Per una descrizione completa dei problemi noti in questa versione, vedere l'articolo Problemi noti di Visual Studio 2015 Update 3 in MSDN.