Condividi tramite


Icona di Visual StudioNote sulla versione di Visual Studio 2017 versione 15.8


Community degli sviluppatori | Requisiti di sistema | Compatibilità | Codice distribuibile | Condizioni di licenza | Blog | Problemi noti



Nota

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


Intervallo di tempo del supporto

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

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

Blog di Visual Studio

Il blog di Visual Studio è la fonte ufficiale di informazioni dettagliate sul prodotto dal team Visual Studio Engineering. Nei post seguenti sono disponibili informazioni dettagliate sulle versioni di Visual Studio 2017 versione 15.8:

Versioni di Visual Studio 2017 versione 15.8

Riepilogo delle nuove funzionalità di rilievo nella versione 15.8

Problemi principali risolti nella versione 15.8

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8:

Vedere tutti i problemi segnalati dai clienti e risolti in Visual Studio 2017 versione 15.8.

Portale della community per sviluppatori


Dettagli delle novità nella versione 15.8

Icona Note sulla versioneVisual Studio 2017 versione 15.8.0

Rilascio: 14 agosto 2018

Nuove funzionalità nella versione 15.8

Installa

Ora è possibile scaricare tutti i file di installazione prima di avviare l'installazione.

  • Per usare questa nuova opzione, selezionare l'opzione "Scarica tutto, quindi installa" nel programma di installazione (figura 1). È consigliabile usare questa opzione se si dispone di una connessione Internet lenta.
  • L'opzione predefinita rimane "Installa durante il download", con cui vengono eseguiti il download e l'installazione in parallelo.
Scaricare Otion
(Figura 1) Opzione di download

Prestazioni

Questa versione include i miglioramenti seguenti per le prestazioni:

  • La modifica del ramo per i progetti C#, VB e C++ è molto più veloce per le soluzioni di grandi dimensioni, perché il ricaricamento della soluzione non è più necessario.
  • Il tempo necessario per scaricare e ricaricare un piccolo set di progetti C# e VB nelle soluzioni di grandi dimensioni è stato ridotto da diversi minuti ad alcuni secondi.
  • È stata aggiunta un'opzione per disabilitare la riapertura dei documenti che sono stati aperti nella sessione precedente, perché la riapertura di determinati tipi di file o finestre di progettazione può ritardare il caricamento della soluzione.
    • Attivare o disattivare questa opzione in Strumenti > Opzioni > Progetti > Soluzioni > Generale.

Prestazioni prova

Sono stati apportati significativi miglioramenti delle prestazioni dei test durante l'esecuzione di un numero ridotto di test in una soluzione di grandi dimensioni con più progetti di test. Nei nostri laboratori, una soluzione con più di 10.000 MSTests ha eseguito un singolo test fino all'82% più velocemente.

Miglioramento delle prestazioni di Visual Basic

Visual Basic ora offre un significativo miglioramento delle prestazioni quando si usa lo schema CInt(Fix(number)) per la conversione da tipi non Integer a Integer.

Profilatura delle prestazioni

Questa versione include i miglioramenti seguenti per la profilatura delle prestazioni:

  • È stata aggiunta la possibilità di avviare la profilatura con stato in sospeso:

    • Lo strumento Utilizzo CPU in Profiler prestazioni (ALT+F2) ora può essere avviato con stato in sospeso (figura 2). Questo può essere utile in attesa di uno scenario che merita un'analisi tramite Utilizzo CPU. Se la raccolta Utilizzo CPU è disabilitata all'avvio, Profiler prestazioni non raccoglierà dati dallo stack di campioni sull'uso della CPU finché non viene abilitato in modo specifico. Questo consente di ridurre la quantità di dati da raccogliere e analizzare, rendendo più efficienti le indagini sulle prestazioni.

    • Per avviare una sessione con la raccolta di campioni Utilizzo CPU disabilitata, fare clic sull'icona a forma di ingranaggio accanto a Utilizzo CPU nella pagina di avvio di Profiler prestazioni. Nella pagina delle proprietà di Utilizzo CPU deselezionare Abilita profilatura CPU (campionamento) e fare clic su OK per salvare le impostazioni.

      Pagina delle impostazioni dello strumento utilizzo CPU
      (Figura 2) Impostazioni dello strumento Utilizzo CPU
    • Dopo aver avviato l'applicazione di destinazione (facendo clic su Avvia nella pagina di avvio di Profiler prestazioni), verrà visualizzato il grafico dell'utilizzo della CPU (figura 3), che consente di controllare la profilatura della CPU. Per abilitare la raccolta dei dati dello stack di campioni Utilizzo CPU, selezionare Abilita profilatura CPU al centro della visualizzazione oppure fare clic su Registra profilo CPU sotto il grafico dell'utilizzo della CPU. È possibile fare clic su Registra profilo CPU per abilitare o disabilitare la raccolta dei dati dei campioni tutte le volte che si vuole. Il colore del grafico Utilizzo CPU cambia per indicare se la raccolta di campioni è abilitata o disabilitata in un dato momento.

      Visualizzazione di monitoraggio dello strumento utilizzo CPU
      (Figura 3) Grafico dell'utilizzo della CPU
  • È stato aggiunto uno strumento Verifica allocazione oggetti .NET:

    • Lo strumento Verifica allocazione oggetti .NET estende la gamma di strumenti disponibili in Profiler prestazioni. Se si richiama questo strumento per una sessione di Profiler prestazioni, viene avviata la raccolta di un'analisi dello stack per ogni allocazione di oggetti .NET che si verifica nell'applicazione di destinazione. Questi dati dello stack vengono analizzati insieme alle informazioni sul tipo e le dimensioni dell'oggetto per identificare i dettagli sull'attività in memoria dell'applicazione. È possibile determinare rapidamente gli schemi di allocazione nel codice e identificare le anomalie. Inoltre, per gli eventi di Garbage Collection (GC), è possibile stabilire facilmente quali oggetti sono stati raccolti e conservati, identificando velocemente i tipi di oggetto predominanti nell'utilizzo della memoria dell'applicazione.
    • Ciò è particolarmente utile per consentire agli autori di API di ridurre al minimo le allocazioni. Se un numero elevato di applicazioni sovraccarica i limiti del buffer coinvolti nella raccolta dei dati di diagnostica, per le applicazioni di test di piccole dimensioni che eseguono gli scenari principali di un'API la diagnostica risulta piuttosto efficace. Mentre l'applicazione di test è in esecuzione, Profiler prestazioni visualizza un grafico a linee degli oggetti attivi (conteggio), nonché un grafico a barre Differenze oggetti (% di modifica).
    • Per usare lo strumento Verifica allocazione oggetti .NET, visualizzare la pagina di avvio di Profiler prestazioni (figura 4), selezionare una destinazione di cui eseguire la profilatura (la destinazione predefinita è il progetto di avvio nella soluzione), selezionare Verifica allocazione oggetti .NET in Strumenti disponibili e quindi fare clic su Avvia.
    Pagina di avvio di Profiler prestazioni
    (Figura 4) Pagina di avvio di Profiler prestazioni

Profilatura delle prestazioni (utilizzo CPU)

Questa versione include i miglioramenti seguenti per lo strumento Utilizzo CPU di Profiler prestazioni (disponibile tramite ALT+F2):

  • La visualizzazione struttura ad albero delle chiamate ora per impostazione predefinita visualizza l'esecuzione asincrona dallo stack di chiamate logico. È possibile disattivare questo comportamento deselezionando l'opzione Unisci codice asincrono nell'elenco a discesa Filtro della visualizzazione principale Utilizzo CPU.
  • È stata aggiunta una visualizzazione Moduli/Funzioni, che mostra le informazioni sulle prestazioni in base al modulo (dll) e alla funzione all'interno di un modulo. È possibile accedere alla visualizzazione Moduli/Funzioni dal menu di scelta rapida disponibile quando si seleziona una funzione nella finestra principale di Utilizzo CPU o dall'elenco a discesa Visualizzazione nelle visualizzazioni Albero delle chiamate o Chiamante/chiamato.
  • È stata aggiunta un'indicazione dell'istanza al grafico di Utilizzo CPU nella visualizzazione principale dello strumento Utilizzo CPU. È possibile visualizzare le istanze quando una funzione è in esecuzione (ad esempio, nello stack) facendo doppio clic su una funzione elencata in qualsiasi visualizzazione di Utilizzo CPU.

Produttività

Questa versione include i miglioramenti seguenti per la produttività:

  • È possibile eseguire una pulizia aggiuntiva del codice con Formatta documento (CTRL+K, D oppure +E, D) per lo sviluppo in C#. Per configurare la pulizia, passare a Strumenti>Opzioni>Editor di testo>C#>Stile codice>Formattazione>Generale.
  • Sono stati aggiunti altri refactoring e azioni rapide usando CTRL + o ALT + INVIO:
    • Inverti If consente di invertire la logica nelle istruzioni if-else. Posizionare il cursore nella parola chiave if per attivare questa funzionalità di refactoring.
    • Add parameter from method callsite (Aggiungi parametro da sito di chiamata del metodo) consente di aggiungere un parametro a un metodo aggiungendo un argomento a un sito di chiamata del metodo e attivando Azioni rapide e refactoring.
    • Rimuovi le parentesi non necessarie rimuove le parentesi degli operatori binari che non sono essenziali per la compilazione. È possibile configurare questa regola di stile tramite Strumenti>Opzioni>Editor>di testo C#>Stile>codice Generale o .editorconfig:
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • Usare le istruzioni condizionali ternarie nelle assegnazioni e nelle istruzioni return può anche essere configurata come regola di stile nelle opzioni degli> strumenti>... o tramite .editorconfig:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Sono stati aggiunti nuovi comandi e miglioramenti alla finestra Vai a tutto :
    • Vai a Blocco di inclusione (CTRL+ALT+freccia SU) consente di passare rapidamente all'inizio del blocco di codice di inclusione.
    • Vai a Problema successivo/precedente (ALT+PGSU/PGGIÙ) consente di passare al problema successivo/precedente (errore, sottolineatura ondulata, indicatore lampadina).
    • Vai a Membro (CTRL+T, M) ora per impostazione predefinita ha come ambito il file. È possibile reimpostare il valore predefinito sulla soluzione attivando e disattivando Documento corrente per l'ambito (CTRL+ALT+C).
  • È ora possibile creare punti di inserimento e selezioni in più posizioni arbitrarie in un file, con il supporto per più punti di inserimento. In questo modo è possibile aggiungere, modificare o eliminare il testo in più posizioni simultaneamente.
    • Inserire punti di inserimento con CTRL+ALT+clic con il pulsante sinistro del mouse.
    • Aggiungere una selezione e un punto di inserimento nella posizione successiva che corrisponde alla selezione corrente con MAIUSC+ALT+INS.
    • Per un elenco completo delle azioni, vedere Modifica > Più punti di inserimento.
  • Accedere a un menu di scelta rapida di navigazione con ALT+`.
  • Mantenere la coerenza dei tasti di scelta rapida con due nuovi profili di tastiera: Visual Studio Code e ReSharper (Visual Studio). Questi schemi sono disponibili in Strumenti > Opzioni > Ambiente > Tastiera e nel menu a discesa superiore.

Debug

Questa versione include i miglioramenti seguenti per il debug:

  • Se è stata eseguita l'installazione di più istanze di Visual Studio 2017, ora è possibile selezionare l'istanza in cui distribuire l'estensione durante il debug (figura 5). In questo modo, ad esempio, è possibile eseguire le attività di sviluppo nel canale della versione di Visual Studio e il debug nel canale di anteprima.

    Selezionare l'istanza di debug
    (Figura 5) Selezionare l'istanza di debug
  • Ora è possibile collegare Snapshot Debugger direttamente dalla pagina Riepilogo pubblicazione (figura 6).

    Allegare snapshot debugger dalla pagina Riepilogo pubblicazione
    (Figura 6) Collegare Snapshot Debugger dalla pagina Riepilogo pubblicazione
  • È ora supportata la visualizzazione delle attività gestite tramite la finestra Attività durante il debug di minidump con heap.

Strumenti per sviluppatori piattaforma UWP (Universal Windows Platform)

Sono apportati diversi importanti miglioramenti alla finestra di progettazione XAML per i progetti destinati alla piattaforma UWP (Universal Windows Platform) con una versione della piattaforma di destinazione corrispondente a Windows 10 Fall Creators Update (build 16299) o versione successiva. I miglioramenti includono:

  • È ora possibile modificare le raccolte nel controllo proprietà.
  • La finestra di progettazione ora consente la modifica di modelli e stili, anche quando le definizioni per le entità sono definite in altri documenti.
  • Le proprietà di tipo IconElement (ad esempio, l'icona in un AppBarButton) ora dispongono di un editor personalizzato nel controllo proprietà, che ne rende più semplice l'impostazione.
  • La finestra di progettazione, l'editor e Modifica e continuazione ora dovrebbero tutti funzionare correttamente con x:DefaultBindMode.
  • L'esperienza di Visual State Manager in Blend ora supporta AdaptiveTrigger.

F# 4.5 e F# Tools per Visual Studio

In questa versione è stato introdotto il linguaggio F# versione 4.5. Corrisponde anche alla nuova famiglia 4.5.x di FSharp.Core (libreria di core F#). È possibile leggere le specifiche per ognuna di queste modifiche nel repository RFC F#. Con questa versione sono stati apportati anche molti miglioramenti agli strumenti F# per Visual Studio.

F# 4.5

Ecco alcune delle evidenziazioni con il linguaggio F# versione 4.5:

Span'T<> support

Sono state implementate Span<'T> e correlate funzionalità in modo che l'uso efficace e la produzione di API tramite Spancostrutti , Memorye ref-like siano possibili con F#. Le funzionalità includono:

  • Nuovo tipo voidptr.
  • Nuove funzioni NativePtr.ofVoidPtr e NativePtr.toVoidPtr in FSharp.Core.
  • Nuovi tipi inref<'T> e outref<'T>, che sono rispettivamente byref di sola lettura e byref di sola scrittura. Questo corrisponde a in ref e out ref nel linguaggio C#.
  • Possibilità di produrre struct ByRefLike, ad esempio Span e ReadOnlySpan.
  • Possibilità di produrre struct IsReadOnly.
  • Dereferenziazione implicita dei valori byref e inref restituiti dai metodi.
  • Possibilità di produrre membri di estensione su byref/inref/outref.

Questo set di funzionalità corregge un bug nella progettazione iniziale di byref-returns in F# 4.1, dove funzioni, metodi e proprietà che byrefrestituiscono 's non dereferenziavano implicitamente il valore restituito. Questa modifica è stata apportata per allineare la funzionalità con il modo in cui vengono gestiti C# i valori restituiti ref. Viene visualizzato un messaggio di errore quando un'annotazione di tipo indica che ora viene usata una dereferenziazione implicita di un valore restituito ref.

Inoltre, questo set di funzionalità corregge anche un bug nel compilatore F# in cui era possibile eseguire la sostituzione dello struct Evil; Ad esempio, la chiamata di un metodo in uno struct F# potrebbe sostituire lo struct effettivo chiamato con uno diverso. Il parametro this su uno struct ora viene considerato un inref<MyStruct>, visualizzando un errore che suggerisce di aggiungere un campo modificabile se si vuole modificare lo struct.

Per altre informazioni sui costrutti di tipo span e ref, vedere la RFC per questo set di funzionalità.

Fiammifero! nelle espressioni di calcolo

F# 4.5 introduce match!, una nuova parola chiave da usare all'interno delle espressioni di calcolo, con contributi interamente di John Wostenberg. Questa soluzione sintattica equivale a un let! seguito da un match sul risultato. Per altre informazioni, vedere la RFC per match!.

Riduzione della necessità di eseguire l'upcast con yield in espressioni di sequenza, elenco o matrice

F# 4.5 ora riduce alcuni casi in cui era necessario un upcast quando si usava yield per convertire un sottotipo in un supertipo. Questa restrizione non era già necessaria per queste espressioni a partire da F# 3.1 quando non si usa yield, quindi ciò rende le cose più coerenti con il comportamento esistente. Per altre informazioni, vedere la RFC per questa funzionalità.

Rientro nelle parentesi quadre di elenchi e matrici

F# 4.5 ora riduce la regola di rientro per le parentesi quadre di elenchi e matrici che ne richiedevano il rientro di un ambito in avanti quando si trova sulla propria riga. Questo requisito precedente è sempre stato piuttosto confuso, soprattutto per i principianti di F#. Non è inoltre necessario per le espressioni di sequenza F#. Questo garantisce alle espressioni di matrice e di elenco la stessa coerenza delle espressioni di sequenza. Per altre informazioni, vedere la RFC per questa funzionalità.

Case di enumerazione generati come pubblici

F# 4.5 genera ora casi di enumerazione come pubblici in tutte le circostanze, per allinearsi al modo in cui C# genera i case di enumerazione. In questo modo è anche più semplice per gli strumenti di profilatura analizzare i log dal codice F#, in cui è stato generato il valore anziché il nome dell'etichetta. Per altre informazioni, vedere la RFC per questa funzionalità.

Miglioramenti del compilatore F#

I miglioramenti apportati al compilatore F# oltre alle funzionalità del linguaggio menzionate in precedenza sono disponibili in F# 4.5. tra cui:

  • Sono state migliorate le prestazioni del compilatore rimuovendo fino al 2,2% di tutte le allocazioni nel compilatore F# (in vari scenari).
  • È stato risolto un bug che causava un'eccezione AccessViolatioNException per l'uso di yield! con elementi enumerabili basati su struct.
  • Ora è nuovamente possibile ereditare da FSharpFunc.
  • Le chiamate tail sono disabilitate per impostazione predefinita per le compilazioni di debug di F# per .NET Core. Sono abilitate per il rilascio, in modo che corrispondano al compilatore F# desktop.
  • La normalizzazione dei riferimenti F# è stata corretta per consentire di controllare i riferimenti di assembly transitivi scritti in un file di output. Questo consente di eseguire l'equivalente del reindirizzamento dell'assembly in .NET Core.
  • È stato risolto un bug per cui veniva ignorato il messaggio di errore visualizzato durante il tentativo di usare una chiamata dinamica in funzioni inline. Il messaggio di errore ora viene propagato.
  • F# ora rispetta il WarningsNotAsErrors flag che è possibile impostare nei file di progetto.
  • Il messaggio di errore visualizzato quando i rami dei criteri di ricerca non restituiscono lo stesso tipo è stato reso più intuitivo da Isaac Abraham.
  • Un bug per un errore interno durante la compilazione di implementazione dell'interfaccia che non dispone di un'implementazione del metodo di overload è stato corretto da Steffen Forkmann.
  • Alcune copie di matrici inutili nella fase Lex del compilatore sono state rimosse da Gauthier Segay.
  • Le corrispondenze con criteri incompleti nelle enumerazioni F# generano ora un avviso dettagliato che fornisce un esempio di caso non trattato, fornito da John Wostenberg.
  • `#nowarn "2003" ora viene rispettato (contributo di Matthias Diitrich).
  • Un bug per cui l'uso dei metodi di estensioni C# potrebbe non riuscire nella risoluzione dell'overload F# è stato risolto da Steffen Forkmann.
  • Un bug della struttura di dati interna QueueList è stato risolto da Steffen Forkmann.
  • Varie ottimizzazioni e attività di pulizia di codice di minore entità sono state apportate con il contributo di Steffen Forkmann, Eugene Auduchinok e ncave.

Libreria di base F# 4.5.x

Sono ora disponibili le aggiunte seguenti alla libreria di base di F#:

  • È stato eseguito un notevole lavoro per migliorare le analisi dello stack per le espressioni di calcolo async { }. Ora è possibile visualizzare il codice utente e i numeri di riga specificati dall'utente nelle analisi dello stack. Per altre informazioni, vedere la RFC per questa funzionalità.
  • API FuncConvert.FromFunc e FuncConvert.FromAction che contengono gli overload System.Func e System.Action, per facilitare l'interoperabilità con C#. Per altre informazioni, vedere la RFC per questa funzionalità.
  • ValueOption è un nuovo tipo disponibile, che rappresenta la prima di un set di funzionalità future che hanno lo scopo di migliorare le prestazioni per i criteri attivi. Per altre informazioni, vedere la RFC per questa funzionalità.
  • TryGetValue è ora un nuovo membro nel tipo di mappa F#. Per altre informazioni, vedere la RFC per questa funzionalità.
  • È stato corretto l'uso elevato della CPU al momento della prima chiamata di MailboxProcessor.TryReceive.
  • Il confronto di bool ora usa il confronto generico rapido (contributo di Vasily Kirichenko).
  • Il testo di riepilogo per Array.allPairs è stato corretto (contributo di Patrick McDonald).

Miglioramenti degli strumenti F#

In questa versione sono inclusi miglioramenti significativi negli strumenti F#, ad esempio miglioramenti delle prestazioni e alcune nuove funzionalità dell'editor. Come sempre, con un numero elevato di contributi della community open source di F#. Ecco le novità:

  • Sono state migliorate le prestazioni di IntelliSense per i progetti in stile .NET SDK di tutti i moduli, inclusi quelli con funzionalità di multitargeting.
  • È stata condotta un'iniziativa gestita dalla community per analizzare e migliorare le prestazioni di IntelliSense per i file di dimensioni molto grandi (contributo di Vasily Kirichenko, Steffen Forkmann e Gauthier Segay). IntelliSense nei file di dimensioni molto grandi (oltre 10.000 righe di codice) ora è circa due volte più veloce.
  • L'avviso relativo a una versione obsoleta di FSharp.Core (nonostante sia in corso l'installazione del pacchetto) non è più visualizzato nei progetti in stile .NET SDK.
  • Per la descrizione comando che visualizza la documentazione XML per un membro dopo . in IntelliSense non si verifica più il timeout dopo 10 secondi.
  • È stato risolto un bug per cui non era possibile impostare punti di interruzione negli argomenti del costruttore di oggetti.
  • È stato risolto un bug per cui un simbolo rinominato veniva duplicato quando era un parametro generico.
  • I modelli per .NET Framework (modelli F# classici) ora usano FSharp.Core da un pacchetto NuGet per allinearsi ai modelli F# di .NET SDK.
  • È ora disponibile il completamento automatico transazionale delle parentesi per le coppie di parentesi (), [], {}, [||] e [<>]. Questa funzionalità è stata introdotta in collaborazione con Rosa Gibran.
  • È ora possibile passare alla definizione con CTRL+ Clic su un simbolo F#. Le impostazioni per questa azione vengono rispettate anche nella finestra Strumenti > Opzioni.
  • Le prestazioni dell'interfaccia utente di IntelliSense sono state modificate per consentire la configurazione delle informazioni di controllo dei tipi non aggiornati per diverse funzionalità dell'IDE. Le spiegazioni per ogni opzione ora sono presenti nelle descrizioni comandi per le impostazioni.
  • La corrispondenza delle parentesi ora viene evidenziata correttamente (funzionalità completata in collaborazione con Vasily Kirichenko).
  • Vai a definizione ora esegue correttamente lo spostamento quando un tipo viene definito in modo ricorsivo (contributo di Vasily Kirichenko).
  • Un bug per cui uno spazio dei nomi importato automaticamente non veniva aperto quando l'inizio di un file era vuoto è stato risolto da Vasily Kirichenko.
  • Un bug per cui venivano applicati colori errati agli identificatori printf che contenevano punti è stato risolto da Vasily Kirichenko.
  • Un bug per cui tutte le aperture venivano considerate inutilizzate all'interno di un modulo ricorsivo è stato risolto da Vasily Kirichenko.
  • Le prestazioni dell'analizzatore delle aperture inutilizzate sono state migliorate in modo significativo da Vasily Kirichenko.
  • Il completamento automatico per gli attributi ora suggerisce solo le opzioni che sono effettivamente attributi (contributo di Vasily Kirichenko).
  • Le descrizioni comandi della Guida per la firma ora vengono generate per i parametri statici del provider di tipi nel sito di chiamata del costruttore (contributo di Vasily Kirichenko).
  • Un bug per cui i tipi valore usati come unità di misura venivano colorati come tipi riferimento è stato risolto da Vasily Kirichenko.
  • Un bug per cui la colorazione semantica poteva scomparire per alcuni file durante lo scorrimento è stato risolto da Vasily Kirichenko.
  • È ora disponibile un'implementazione sperimentale di CodeLens (contributo di Victor Peter Rouven Müller). È possibile attivarla in Opzioni Editor di testo F# > Code Lens.> >
  • Un bug per cui il servizio compilatore F# eliderebbe erroneamente i nomi dei moduli nella documentazione XML è stato corretto da Sebastian Urban.
  • Il codice che usa Dictionary con ContainsKey e le chiamate Item successive è stato modificato in modo da usare TryGetValue (di Eugene Auduchinok).
  • Jakob Majoka ha anche contribuito al processo di utilizzo di un'API diversa per le descrizioni comandi.

Miglioramenti di infrastruttura, creazione dei pacchetti e open source

Sono stati apportati i miglioramenti seguenti all'infrastruttura, alla creazione dei pacchetti e all'esperienza per i contributi open source:

  • Il compilatore F# distribuito con Visual Studio non viene più installato come singleton nel percorso dell'SDK del compilatore F#. Ora è completamente affiancato a Visual Studio, il che significa che le installazioni side-by-side di Visual Studio avranno finalmente esperienze di linguaggio e strumenti F# side-by-side.
  • Il pacchetto NuGet FSharp.Core ora è dotato di firma.
  • La registrazione ETW è stata aggiunta agli strumenti e al compilatore F#.
  • I file di dimensioni molto grandi control.fs/control.fsi in FSharp.Core sono stati suddivisi nei file async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi e observable.fs/observable.fsi.
  • Sono state aggiunte versioni in stile .NET SDK degli artefatti per i test di stress delle prestazioni del progetto.
  • Newtonsoft.Json è stato rimosso dalla codebase e ora viene scaricato un pacchetto in meno per i collaboratori di OSS.
  • Ora vengono usate le versioni più recenti di System.Collections.Immutable e System.Reflection.Metadata.

Miglioramenti della conformità e del set di strumenti per C++

Questa versione include i miglioramenti seguenti per la conformità e il set di strumenti per C++:

  • Un nuovo preprocessore sperimentale basato su token conforme agli standard C++ 11 (incluse le funzionalità del preprocessore C99), abilitato con l'opzione /experimental:preprocessor. Questa funzionalità è controllata con la macro _MSVC_TRADITIONAL, che viene definita come 1 quando si usa il preprocessore tradizionale e 0 quando si usa il nuovo preprocessore sperimentale conforme agli standard.
  • Il prompt dei comandi per gli sviluppatori di Visual Studio supporta l'abilitazione dei runtime ridotti con Visual C++ Spectre variante 1 (-vcvars_spectre_libs = spectre). Altre informazioni sulle mitigazioni Spectre sono disponibili nel blog del team di Visual C++.
  • Due nuove funzionalità per l'ottimizzatore SSA focalizzate sulla generazione di codice C++ moderno: eliminazione degli archivi ridondanti e riduzione dei rami ridondanti.
  • Ottimizzazione delle prestazioni di I/O con mapping alla memoria nel linker per ridurre i tempi di collegamento.

Sviluppo multipiattaforma C++

In questa versione sono state aggiunte e migliorate le funzionalità seguenti per lo sviluppo multipiattaforma C++:

  • È stato aggiunto il modello Aggiungi>Nuovo elemento per la generazione di un file in formato clang conforme alla convenzione per la scrittura di codice specificata per ClangFormat in Strumenti>Opzioni. Se è selezionata la convenzione per Visual Studio, il file generato tenta di trovare la corrispondenza con la configurazione della formattazione corrente di Visual Studio specificata dell'utente da Strumenti > Opzioni.
  • La versione di clang-format.exe è stata aggiornata alla 6.0.0.
  • Modelli per semplificare l'aggiunta di configurazioni a CppProperties.json.
  • Sono stati aggiunti modelli per semplificare l'aggiunta di configurazioni a CMakeSettings.json (figura 7).
Modelli di configurazione per CMake
(Figura 7) Modelli di configurazione per CMake

Produttività di C++

Sono stati apportati i miglioramenti seguenti per la produttività di C++:

  • Le descrizioni comandi Informazioni rapide per le macro ora mostrano l'elemento che espandono, anziché solo la relativa definizione. Questo è particolarmente utile per la macro complesse che fanno riferimento ad altre macro, perché chiarisce con cosa il preprocessore sostituisce l'identificatore macro.
  • È stato aggiunto un nuovo indicatore lampadina con un'opzione di correzione rapida per convertire le macro di base in constexpr come un nuovo strumento per modernizzare il codice.
  • IntelliSense per i modelli fornisce maggiori dettagli sugli argomenti del modello per sfruttare al meglio IntelliSense nel corpo del modello (figura 8).
IntelliSense per i modelli
(Figura 8) IntelliSense per i modelli
  • Stiamo lavorando all'aggiornamento dell'esperienza di analisi del codice. Ora è possibile abilitare le nuove funzionalità in fase di sviluppo in Strumenti>Opzioni>Editor di testo>C + +>Sperimentale>Analisi del codice. L'analisi del codice può essere eseguita in background all'apertura o al salvataggio dei file. I risultati vengono visualizzati nell'elenco degli errori e tramite sottolineature ondulate verdi nell'editor (figura 9).
Analisi del codice nell'editor
(Figura 9) Analisi del codice nell'editor

Miglioramenti apportati al debug C++

Sono stati apportati i miglioramenti seguenti per il debug:

  • Just My Code ora consente di eseguire lo step-over del codice da librerie C++ di sistema o di terze parti, oltre che di comprimere queste chiamate nella finestra dello stack di chiamate. È possibile controllare questo comportamento per tutte le librerie C++ quando il codice viene compilato con /JMC e vengono specificati percorsi di librerie non dell'utente in un file con estensione natjmc. Se la libreria di sistema esegue chiamate nel codice utente, quando si esegue l'istruzione, il debugger ignora tutto il codice di sistema e si interrompe alla prima riga di callback del codice utente (figura 10).
Just My Code
(Figura 10) Just My Code
  • Ora è possibile impostare punti di interruzione dei dati all'interno delle finestre Espressioni di controllo, Controllo immediato, Auto e Variabili locali, consentendo di interrompere l'esecuzione quando cambia un valore archiviato in memoria con pochi clic del mouse.
  • Il collegamento all'origine consente di incorporare informazioni sul codice sorgente originale di una libreria o un file eseguibile nel file PDB durante la compilazione.
  • Durante il debug, la finestra della console ora rimane aperta per impostazione predefinita quando il programma termina l'esecuzione (in modo analogo all'esecuzione del programma senza il debugger). Questo comportamento può essere modificato ripristinando la chiusura automatica della console in Strumenti > Opzioni > Debug > Generale.

Miglioramenti di JavaScript e TypeScript

TypeScript 3.0

Visual Studio 2017 versione 15.8 include ora TypeScript 3.0 per impostazione predefinita. Per altre informazioni su questa versione, vedere l'annuncio del rilascio di TypeScript 3.0.

Miglioramento del supporto di Vue.js

Il supporto per la libreria Vue.js è stato migliorato e in particolare il supporto per i file con estensione vue, noti anche come "componenti a file singolo". Ciò consente miglioramenti durante la modifica di blocchi di script all'interno di file con estensione vue, incluso il supporto per i blocchi di script creati in TypeScript mediante l'attributo lang="ts" per l'elemento script. Nota: un processo di compilazione che usa WebPack o simile deve essere usato per convertire i file con estensione vue nei file HTML e JS necessari in fase di esecuzione. Per altri dettagli, vedere la pagina Single File Components (Componenti file singoli).

Se il carico di lavoro Node.js è installato, saranno ora disponibili i modelli "Applicazione Web Vue.js di base" nei percorsi "JavaScript / Node.js" o "TypeScript / Node.js" nella finestra di dialogo Nuovo progetto. Di seguito viene illustrato un esempio di modifica del codice TypeScript all'interno di un blocco di script in un file con estensione vue (figura 11).

Modifica di un file con estensione vue
(Figura 11) Modifica dei file con estensione vue

Miglioramenti per ESLint

È stata reimplementato il supporto di ESLint per questa versione. Per ESLint sono disponibili i miglioramenti seguenti:

  • Invece di sottoporre a lint solo i file salvati, Visual Studio esegue il lint dei file JavaScript anche durante la modifica.
  • I risultati possono essere segnalati per tutti i file JS del progetto e non solo per i file aperti. Se si vuole escludere dal lint parti del progetto, è opera possibile usare un file con estensione eslintignore per specificare le directory e i file che devono essere ignorati.
  • ESLint è stato aggiornato per usare ESLint 4 per impostazione predefinita, ma se il progetto contiene un'installazione locale di ESLint, verrà invece usata tale versione.

ESLint può essere disabilitato a livello globale in Visual Studio. Deselezionare l'impostazione Abilita ESLint in **Strumenti > Opzioni > Editor di testo > Javascript/Typescript > Linting ** (figura 12).

Opzioni ESLint
(Figura 12) Opzioni di ESLint

Miglioramenti di Apri cartella per Node.js

Sono disponibili numerosi miglioramenti per l'utilizzo di JavaScript e TypeScript nello scenario Apri cartella quando è installato il "carico di lavoro Node.js". Ad esempio, la gestione dei pacchetti NPM, la compilazione di TypeScript, l'avvio e il debug con Node.exe, l'esecuzione di script NPM e l'esecuzione di unit test.

Vedere Sviluppare il codice JavaScript e TypeScript in Visual Studio senza soluzioni o progetti per altre informazioni.

Miglioramenti alle prestazioni dell'editor

Nelle versioni precedenti, tutte le operazione del servizio di linguaggio JavaScript e TypeScript erano gestite da un singolo processo Node.js. Ciò poteva causare ritardi dell'editor in caso di invio di comandi con effetti sulla digitazione dell'utente (ad esempio, la formattazione automatica dopo un carattere di nuova riga) durante un'operazione potenzialmente lunga in corso (ad esempio l'analisi del codice per individuare eventuali errori). Per risolvere questo problema, viene ora usato un processo separato per le operazioni con il maggiore impatto sulla modifica. Questo processo è molto meno oneroso per le risorse di sistema rispetto al processo del servizio di linguaggio esistente. Tuttavia, se si vuole disabilitare il nuovo processo, selezionare la casella di controllo Disabilita il processo dedicato della sintassi in Strumenti > Opzioni > Editor di testo > JavaScript/TypeScript > Servizio di linguaggio.

Strumenti Web di Visual Studio

Gestione librerie è una nuova funzionalità inclusa in Visual Studio 2017. Consente di gestire librerie lato client nei progetti Web.

Strumenti per contenitori

È stato aggiunto un nuovo progetto singolo Docker container experience (Esperienza contenitore Docker) per i progetti Web ASP.NET Core. Si integra con gli strumenti esistenti per i contenitori basati su Docker Compose e fornisce un modo più semplice per creare, eseguire il debug e compilare i contenitori Docker direttamente da Visual Studio.

È possibile aggiungere il supporto per Docker durante la creazione del progetto (figura 13):

Abilita supporto Docker
(Figura 13) Abilitare il supporto per Docker

In alternativa, è possibile abilitare il supporto per Docker in un progetto esistente tramite il menu di scelta rapida del progetto in Esplora soluzioni (figura 14). In questo caso, Visual Studio crea un singolo Dockerfile nel progetto. È possibile scegliere Windows o Linux.

Aggiungi supporto Docker
(Figura 14) Aggiungere il supporto per Docker

In Visual Studio è stato aggiunto anche un profilo di avvio del debugger (figura 15) per Docker, che consente di eseguire il debug del progetto durante l'esecuzione in un contenitore.

Profilo di avvio di Docker
(Figura 15) Profilo di avvio per Docker

Se si dispone di una soluzione con più progetti Docker, per impostazione predefinita viene eseguito un solo contenitore quando si sceglie di avviare la soluzione. Per eseguire più contenitori contemporaneamente, è possibile fare clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni e scegliere Imposta progetti di avvio, Progetti di avvio multipli e quindi impostare l'elenco a discesa Azione su Avvia oppure Avvia senza eseguire debug per tutti i progetti da eseguire.

Una volta che il progetto nei contenitori è in esecuzione nel modo desiderato, è possibile fare clic con il pulsante destro del mouse sul progetto e selezionare Build Docker Image (Compila immagine Docker) per compilare un'immagine in locale, quando si è pronti per eseguire il push nel Registro Azure Container o in DockerHub.

È anche possibile aggiungere le funzionalità esistenti basate su Docker Compose a un progetto Web ASP.NET Core tramite la nuova opzione Container Orchestrator Support (Supporto agente di orchestrazione) (figura 16). Fare clic con il pulsante destro del mouse sul progetto Web ASP.NET Core in Esplora soluzioni, scegliere Aggiungi > Container Orchestrator Support (Supporto agente di orchestrazione) e quindi selezionare Docker Compose dal menu a discesa.

Aggiungere il supporto di Container Orchestrator
(Figura 16) Aggiungere il supporto di orchestrazione

Miglioramenti alla pubblicazione

Questa versione include i miglioramenti seguenti per la pubblicazione:

  • Quando si pubblica un contenitore Docker in un registro contenitori, ora è possibile personalizzare il tag dell'immagine. È possibile aggiungere manualmente un tag (il valore predefinito è "latest") o usare un tag generato automaticamente per assicurarsi che ogni tag sia univoco.
  • Quando si crea un nuovo servizio app di Azure, è anche possibile configurare Application Insights per raccogliere automaticamente i dati di telemetria. Se si sceglie un'area in cui è disponibile anche Application Insights, viene abilitato per impostazione predefinita. Se si sceglie un'area che non contiene ancora Application Insights, è possibile specificare manualmente un'area diversa per la risorsa di Application Insights nell'elenco a discesa.
  • Quando si pubblicano progetti di Funzioni di Azure, è possibile scegliere di eseguire la pubblicazione usando la nuova funzionalità Esegui da ZIP.

Visual Studio Tools per Xamarin

Questa versione include gli aggiornamenti seguenti per Xamarin:

  • È stato aggiunto il supporto per Xcode 9.4.
  • Quando si crea un nuovo progetto Xamarin.Forms, l'opzione predefinita per la condivisione del codice ora è .NET Standard. L'opzione Progetto condiviso è ancora disponibile.
  • Sono stati apportati miglioramenti alla compilazione incrementale di Android. Xamarin.Android usa i file generati nella directory di output intermedia per ottenere compilazioni incrementali più veloci rispetto alle compilazioni complete. In precedenza, se si modificava il framework di destinazione del progetto, i file venivano invalidati e di conseguenza veniva eseguita una build completa all'esecuzione successiva. In questa versione vengono mantenuti i file nelle cartelle per ogni framework, di conseguenza è possibile passare tra diversi framework di destinazione e trarre comunque vantaggio dalle compilazioni incrementali. La pulizia del progetto consente di recuperare lo spazio su disco usato dai file conservati.
  • È stato aggiunto il supporto minimo per i progetti di binding Xamarin.Mac in Visual Studio 2017. Ciò consente a Visual Studio di caricare e riconoscere i progetti di binding Xamarin.Mac come supportati. È anche possibile compilare progetti di binding Xamarin.Mac. Tuttavia il processo di compilazione viene eseguito in locale senza usare la catena di strumenti Mac nativa, quindi gli assembly IL generati non possono essere usati per l'esecuzione o il debug nelle app.

Supporto dell'emulatore Android Hyper-V

In questa versione è stato aggiunto il supporto per l'emulatore Android di Google che è compatibile con Hyper-V durante l'esecuzione nell'Aggiornamento di Windows 10 (aprile 2018) (figura 17). In questo modo, è possibile usare l'emulatore Android di Google side-by-side con altre tecnologie basate su Hyper-V, tra cui macchine virtuali Hyper-V, strumenti per Docker, l'emulatore di HoloLens e altro ancora. Gli sviluppatori di app per dispositivi mobili che usano Hyper-V ora hanno accesso a un emulatore Android veloce che supporta le API Android più recenti, funziona automaticamente con Google Play Services e supporta tutte le funzionalità dell'emulatore Android, inclusi la fotocamera, la georilevazione e l'avvio rapido.

Screenshot dell'emulatore Android di Google e dell'emulatore HoloLens in esecuzione contemporaneamente.
(Figura 17) Emulatore Android di Google ed emulatore HoloLens

Progettazione Xamarin.Android

Sono stati apportati significativi miglioramenti all'esperienza della finestra di progettazione per Xamarin.Android. Gli elementi di rilievo includono:

  • È stato introdotto un editor con visualizzazione suddivisa che consente di creare, modificare e visualizzare in anteprima i layout contemporaneamente (figura 18).
Screenshot dell'editor della doppia visualizzazione di Xamarin.Android.
(Figura 18) Editor con visualizzazione suddivisa per Xamarin.Android
  • Miglioramento dell'esperienza IntelliSense e affidabilità dei controlli personalizzati.
  • Supporto dei dati di esempio per i valori di sistema.

Visualizzatore anteprima di Xamarin.Forms

Il visualizzatore anteprima di Xamarin.Forms ora include il supporto della casella degli strumenti quando si usa Xamarin.Forms versione 3.1.0.583944 o successiva. I controlli di Xamarin.Forms verranno visualizzati nella casella degli strumenti in modo da renderli più facilmente individuabili per chi non ha familiarità con il toolkit. È anche possibile trascinare e rilasciare un controllo nell'editor di codice XAML per aggiungere il controllo alla pagina. Il visualizzatore anteprima di Xamarin.Forms fa ora parte dell'editor XAML. È possibile aprirlo e chiuderlo tramite l'icona di espansione sul bordo del riquadro dell'editor.

Python

In questa versione sono stati aggiunti i miglioramenti seguenti per gli sviluppatori Python:

  • Python IntelliSense ora usa definizioni typeshed per fornire risultati più dettagliati per le librerie in cui non è possibile dedurre i completamenti automatici tramite l'analisi statica.
  • Il debugger sperimentale, annunciato per la prima volta nelle versioni di anteprima 15.7, ora è il motore di debug predefinito usato per Python, che garantisce un debug più veloce e affidabile per il codice Python.
  • È stato aggiunto il supporto per Python 3.7, incluse correzioni per il collegamento del debug, la profilatura e le funzionalità di debug in modalità mista (tra linguaggi diversi).
  • Per altre informazioni sulle funzionalità precedenti, consultare il post di blog su Python in Visual Studio 2017 versione 15.8.

Eseguire la migrazione delle impostazioni delle funzioni di Azure locali

La finestra di dialogo "Managed Application Settings" (Impostazioni applicazione gestita) disponibile dalla pagina di riepilogo della pubblicazione ora visualizza i valori presenti nel file local.settings.json e consente di eseguire la migrazione dei valori nell'app per le funzioni di Azure remota ospitata in Azure.

Servizi connessi

Ora è possibile configurare il recapito continuo per le funzioni di Azure direttamente da Visual Studio 2017 per le soluzioni con progetti Funzione di Azure.

Miglioramento di Esplora test

Esplora test ora mostra maggiori informazioni sullo stato dei test nel riquadro di riepilogo (riquadro inferiore di Esplora test) quando viene selezionato uno dei raggruppamenti nella visualizzazione gerarchica. Il riquadro ora visualizza il numero di test non riusciti, superati o non in esecuzione in tale raggruppamento.

Nuove funzionalità di estendibilità

Protocollo di server di linguaggio

Visual Studio ora offre un supporto nativo per il protocollo di server di linguaggio. Gli autori di estensioni possono creare estensioni che comunicano con i server di linguaggio esistenti per aggiungere il supporto di linguaggi aggiuntivi a Visual Studio. Gli utenti delle estensioni possono installare queste estensioni per iniziare a usare il proprio linguaggio preferito in Visual Studio, ad esempio Rust.

Modello AsyncPackage

Gli autori di estensioni ora possono usare i modelli di elemento per creare AsyncPackage, in modo da ottimizzare le prestazioni dell'estensione. Altre informazioni su AsyncPackages.

Pacchetti di estensioni

È possibile condividere facilmente il proprio set di estensioni preferite o configurare una nuova installazione di Visual Studio con tutte le estensioni usando un pacchetto di estensioni. I pacchetti di estensioni consentono di creare un elenco di estensioni, inserirlo in un'estensione e usarlo rapidamente per installare le estensioni in blocco.

Pubblicazione di estensioni dalla riga di comando

È possibile pubblicare le estensioni in Visual Studio Marketplace tramite la riga di comando.

.NET Core SDK 2.1.400

Visual Studio 2017 versione 15.8 include .NET Core SDK 2.1.400. Le nuove funzionalità dell'SDK includono:

  • Sono stati aggiunti i modelli NUnit
  • È stato aggiunto il supporto per gli strumenti globali dotati di firma
  • Il testo della Guida è stato migliorato per maggiore chiarezza

Sono stati chiusi 32 problemi nell'interfaccia della riga di comando di .NET Core.
Sono stati chiusi 20 problemi in .NET Core SDK.

Controllo del codice sorgente

Per i progetti .NET Core, i file aggiunti direttamente al progetto tramite Esplora file ora mostrano le icone di rilevamento corrette per Git e TFS in Esplora soluzioni, senza dover ricaricare la soluzione.

Estensione adattatore di test .NET

L'adattatore di test .NET presenta la seguente modifica importante e deprecazione:

  • Modifica importante: tutti i progetti di test devono includere il riferimento NuGet all'adattatore di test .NET nel relativo file csproj. In caso contrario, questo output di test verrà visualizzato nel progetto se l'individuazione da un'estensione dell'adattatore di test viene avviata dopo una compilazione o se l'utente tenta di eseguire i test selezionati:
    • Il progetto di test {<Percorso completo del progetto> di test} non fa riferimento ad alcuna scheda NuGet .NET. L'individuazione o l'esecuzione dei test potrebbe non funzionare per questo progetto. È consigliabile fare riferimento agli adattatori di test NuGet in ogni progetto di test nella soluzione.
  • I framework di test .NET hanno rilasciato i propri adattatori in pacchetti NuGet e stanno abbandonando le estensioni di Visual Studio. Gli adattatori di test .NET resi disponibili tramite estensioni sono deprecati, ma ancora supportati. Ciò significa che sono disponibili due nuove opzioni in Strumenti > Opzioni > Test.
    • La prima opzione consente a Visual Studio di usare solo gli adattatori di test che trova nella cartella dell'assembly di test (popolata dal riferimento NuGet dell'adattatore di test) o come specificato nel file runsettings.
    • La seconda opzione consente a Visual Studio di eseguire il "fallback" al comportamento precedente e cercare le estensioni dell'adattatore di test per i progetti che non hanno un riferimento NuGet dell'adattatore di test. Entrambe le opzioni sono selezionate per impostazione predefinita, pertanto in questa versione non è prevista alcuna modifica del comportamento predefinito.
  • Si noti che gli adattatori di test non .NET non sono interessati da questa modifica.

supporto dei segreti di .NET Framework ASP.NET

Per i progetti .NET Framework di ASP.NET destinati a .NET Framework 4.7.1 o versioni successive, ora è possibile aprire e archiviare i segreti che non si vuole inserire nel codice sorgente nel file usersecrets.xml, facendo clic con il pulsante destro del mouse sul progetto e scegliendo "Managed User Secrets" (Segreti utente gestiti).

Migliorare le prestazioni di ASP.NET .NET Framework

Se il pacchetto .NET Compiler di riferimento non è aggiornato in un progetto .NET Framework di ASP.NET, quando si apre il progetto Visual Studio richiede di aggiornare il pacchetto per migliorare le prestazioni di compilazione.

.NET Framework 4.7.2

Visual Studio 2017 versione 15.8 ora offre gli strumenti di sviluppo di .NET Framework 4.7.2 per tutte le piattaforme supportate con il runtime 4.7.2 incluso. .NET Framework 4.7.2 include diverse nuove funzionalità e miglioramenti, oltre a numerose correzioni relative ad affidabilità, stabilità, sicurezza e prestazioni.

È possibile trovare altre informazioni su .NET Framework 4.7.2 in questi articoli:

Ritardare il caricamento dei pacchetti

Visual Studio ora ritarda il caricamento dei pacchetti asincroni che sono configurati per il caricamento automatico dopo che l'IDE di Visual Studio è stato completamente avviato e la soluzione è stata caricata. Questa modifica non influisce sui pacchetti caricati automaticamente in modo sincrono. Gli utenti possono esaminare il centro stato attività nell'angolo inferiore sinistro della barra di stato per monitorare lo stato di avanzamento. Gli autori di estensioni che creano AsyncPackage devono testare la propria estensione. Per altre informazioni, vedere Improving the responsiveness of critical scenarios by updating auto load behavior for extensions (Migliorare la velocità di risposta degli scenari critici aggiornando il comportamento di caricamento automatico per le estensioni).


---

Icona Note sulla versione Avvisi di sicurezza di Visual Studio 2017 versione 15.8

Versione di servizio di Visual Studio 2017 versione 15.8.7 - Data di rilascio: 10 ottobre 2018

CVE-2018-8292 vulnerabilità di diffusione di informazioni di .NET Core

In .NET Core esiste una vulnerabilità di bypass della funzionalità di sicurezza quando le informazioni di autenticazione HTTP vengono esposte inavvertitamente in una richiesta in uscita con reindirizzamento HTTP. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e usare le informazioni per compromettere l'applicazione Web. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui le applicazioni .NET gestiscono i reindirizzamenti HTTP.

Versione di servizio di Visual Studio 2017 versione 15.8.4 - Data di rilascio: 11 settembre 2018

CVE-2018-8409 Vulnerabilità Denial Of Service .NET Core

Esiste una vulnerabilità Denial Of Service in .NET Core 2.1 quando System.IO.Pipelines gestisce le richieste in modo non corretto. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e causare un attacco Denial of Service contro un'applicazione che usa System.IO.Pipelines. La vulnerabilità può essere sfruttata da remoto, senza autenticazione. Un utente malintenzionato non autenticato remoto potrebbe sfruttare questa vulnerabilità fornendo richieste appositamente predisposte all'applicazione.

CVE-2018-8409 Vulnerabilità Denial Of Service ASP.NET Core

Esiste una vulnerabilità Denial Of Service in ASP.NET Core 2.1 che 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 ASP.NET Core. La vulnerabilità può essere sfruttata da remoto, senza autenticazione. Un utente malintenzionato non autenticato remoto potrebbe sfruttare questa vulnerabilità fornendo richieste Web appositamente predisposte all'applicazione ASP.NET Core.

Visual Studio 2017 versione 15.8 - Data di rilascio: 14 agosto 2018

CVE-2018-0952 Vulnerabilità di elevazione dei privilegi dell'agente di raccolta standard dell'hub di diagnostica

Esiste una vulnerabilità di elevazione dei privilegi in un servizio di Visual Studio, a causa del quale un utente senza privilegi di amministratore può ottenere privilegi di sistema durante la scrittura di file. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe scrivere file come sistema pur avendo solo l'accesso a livello di utente. Questo aggiornamento della sicurezza risolve questo problema rappresentando l'utente corrente per convalidare l'accesso al percorso del file.

Visual Studio 2017 versione 15.8 Preview 4 - Data di rilascio: 10 luglio 2018

CVE-2018-8172 Vulnerabilità di Visual Studio per l'esecuzione remota del codice

Una vulnerabilità di esecuzione remota del codice può consentire lo sfruttamento del computer di un utente, tramite l'apertura di un progetto o di un file di risorse creato appositamente. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui Visual Studio controlla il markup di origine di un file.

CVE-2018-8260 Vulnerabilità di esecuzione remota del codice di .NET Framework

Esiste una vulnerabilità di esecuzione remota del codice nel software .NET che può consentire lo sfruttamento del computer di un utente consentendo a utenti malintenzionati di eseguire codice arbitrario nel contesto dell'utente corrente. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui .NET controlla il markup di origine di un file.

CVE-2018-8232 Vulnerabilità di manomissione di Microsoft Macro Assembler .NET.

Vulnerabilità di manomissione correlata alla convalida non corretta del codice da parte di Microsoft Macro Assembler. L'aggiornamento della sicurezza risolve la vulnerabilità assicurando che Microsoft Macro Assembler convalidi correttamente la logica del codice.

CVE-2018-8171 Vulnerabilità di bypass della funzionalità di sicurezza di ASP.NET Core

La vulnerabilità di bypass della funzionalità di sicurezza di ASP.NET Core si verifica quando non viene convalidato il numero di tentativi di accesso non corretti, situazione che può consentire a un utente malintenzionato di eseguire un numero infinito di tentativi di autenticazione. L'aggiornamento risolve la vulnerabilità convalidando il numero di tentativi di accesso non corretti.

Visual Studio 2017 versione 15.8 Preview 3 - Data di rilascio: 26 giugno 2018

CVE-2018-11235 Avviso di sicurezza Microsoft per vulnerabilità di sicurezza di Git

È stata risolta una vulnerabilità di sicurezza in Git divulgata dalla community di Git. La vulnerabilità può causare l'esecuzione di codice arbitrario quando un utente clona un repository dannoso.

Visual Studio 2017 versione 15.8 Preview 1 - Data di rilascio: 8 maggio 2018

CVE-2018-0765 Avviso di sicurezza Microsoft per vulnerabilità Denial of Service di .NET Core

  • Microsoft ha rilasciato questo avviso di sicurezza per fornire informazioni su una vulnerabilità in .NET Core e .NET Native versione 2.0. Questo avviso offre anche informazioni aggiuntive sulle operazioni che gli sviluppatori possono eseguire per aggiornare le applicazioni per rimuovere questa vulnerabilità.
  • Microsoft è a conoscenza di una vulnerabilità per attacchi Denial of Service esistente quando .NET Framework e .NET Core elaborano in modo non appropriato documenti XML. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e causare un attacco Denial of Service contro un'applicazione .NET Framework, .NET Core o .NET Native.
  • L'aggiornamento risolve la vulnerabilità correggendo la modalità con cui le applicazioni NET Framework, .NET Core e .NET Native gestiscono l'elaborazione dei documenti XML.
  • Se l'applicazione è un'applicazione ASP.NET Core, si consiglia inoltre agli sviluppatori di eseguire l'aggiornamento ad ASP.NET Core 2.0.8.

Icona Note sulla versioneVisual Studio 2017 versione 15.8.1

Rilascio: 17 agosto 2018

Problemi principali risolti nella versione 15.8.1

Questi sono i problemi risolti nella versione 15.8.1:

  • Risolto un problema a causa del quale Visual Studio viene chiuso in modo imprevisto quando una finestra del browser viene chiusa durante il debug di un progetto Web.

Icona Note sulla versioneVisual Studio 2017 versione 15.8.2

Rilascio: 28 agosto 2018

Problemi principali risolti nella versione 15.8.2

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.2:


Icona Note sulla versioneVisual Studio 2017 versione 15.8.3

Rilascio: 6 settembre 2018

Problemi principali risolti nella versione 15.8.3

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.3:


Icona Note sulla versioneVisual Studio 2017 versione 15.8.4

Rilascio: 11 settembre 2018

Problemi principali risolti nella versione 15.8.4

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.4:

Notifiche di avvisi di sicurezza


Icona Note sulla versioneVisual Studio 2017 versione 15.8.5

Rilascio: 20 settembre 2018

Riepilogo delle novità nella versione 15.8.5

  • Strumenti di Visual Studio per Xamarin ora supporta Xcode 10.

Problemi principali risolti nella versione 15.8.5

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.5:

Dettagli delle novità nella versione 15.8.5

Visual Studio Tools per Xamarin

Strumenti di Visual Studio per Xamarin supporta ora Xcode 10, che consente di compilare le app per iOS 12, tvOS 12 e watchOS 5 e di eseguirne il debug. Per altri dettagli sulle nuove funzionalità disponibili, vedere come prepararsi per iOS 12 e l'introduzione a iOS 12.


Icona Note sulla versioneVisual Studio 2017 versione 15.8.6

Rilascio: 02 ottobre 2018

Riepilogo delle novità nella versione 15.8.6

Problemi principali risolti nella versione 15.8.6

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.6:

Dettagli delle novità nella versione 15.8.6

Nuova versione di Windows 10 SDK per sviluppatori per la piattaforma UWP (Universal Windows Platform)

La versione più recente di Windows 10 SDK (Build 17763) è ora disponibile come componente facoltativo per il carico di lavoro Sviluppo di app per la piattaforma UWP (Universal Windows Platform). È possibile aggiungere questo SDK al carico di lavoro selezionando la casella di controllo Windows 10 SDK (10.0.17763.0).


Icona Note sulla versioneVisual Studio 2017 versione 15.8.7

Rilascio: 10 ottobre 2018

Novità nella versione 15.8.7

Azure DevOps

Visual Studio Team Services è diventato Azure DevOps. Questo nuovo nome sarà usato in Team Explorer e in tutti i riferimenti in Visual Studio.

Notifiche di avvisi di sicurezza

CVE-2018-8292 vulnerabilità di diffusione di informazioni di .NET Core


Icona Note sulla versioneVisual Studio 2017 versione 15.8.8

Rilascio: 24 ottobre 2018

Problemi principali risolti nella versione 15.8.8

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.8:


Icona Note sulla versioneVisual Studio 2017 versione 15.8.9

Data di rilascio: 02 novembre 2018

Problemi principali risolti nella versione 15.8.9

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.9:


Problemi noti

Vedere tutti i problemi noti esistenti e le soluzioni alternative disponibili in Visual Studio 2017 versione 15.8.

Problemi noti di Visual Studio 2017


Commenti e suggerimenti

I commenti degli utenti sono molto apprezzati. È possibile segnalare un problema tramite l'opzione Segnala un problema disponibile nell'angolo superiore destro del programma di installazione o dell'IDE di Visual Studio. L'icona Icona Segnala un problema 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à.

Blog sugli strumenti di sviluppo


Cronologia delle note sulla versione di Visual Studio 2017

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


In alto