Visual Studio Icon Note sulla versione di Visual Studio 2017 versione 15.8Visual Studio 2017 version 15.8 Release Notes


Community degli sviluppatori | Requisiti di sistema | Compatibilità | Codice distribuibile | Condizioni di licenza | Blog | Problemi notiDeveloper Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues



Nota

Questa non è la versione più recente di Visual Studio.This is not the latest version of Visual Studio. Per scaricare la versione più recente, vedere le note sulla versione corrente per Visual Studio 2019.To download the latest release, please visit the current release notes for Visual Studio 2019.


Per scaricare Visual Studio 2017, fare clic sul pulsante di download e accedere con la sottoscrizione di Visual Studio quando richiesto.To download Visual Studio 2017, click the download button and log in with your Visual Studio Subscription when prompted. Se non è disponibile una sottoscrizione di Visual Studio, è possibile crearne una gratuitamente facendo clic su "Crea un nuovo account Microsoft" nella pagina di accesso.If you don’t have a Visual Studio Subscription, you can create one for free by clicking on “Create a new Microsoft account” on the login page. È consigliabile usare Visual Studio 2019 per ottenere le funzionalità e le correzioni di bug più recenti.We recommend using Visual Studio 2019 to get the latest features and bug fixes.

Visitare la pagina della versione precedente per scaricare altri prodotti Visual Studio 2017.Visit the older version page to download other Visual Studio 2017 products.


Novità nella versione 15.8What's New in 15.8

Il blog di Visual Studio è la fonte ufficiale di informazioni dettagliate sul prodotto dal team Visual Studio Engineering.The Visual Studio Blog is the official source of product insight from the Visual Studio Engineering Team. Nei post seguenti sono disponibili informazioni dettagliate sulle versioni di Visual Studio 2017 versione 15.8:You can find in-depth information about Visual Studio 2017 version 15.8 releases in the following posts:

Versioni di Visual Studio 2017 versione 15.8Visual Studio 2017 version 15.8 Releases

Riepilogo delle nuove funzionalità di rilievo nella versione 15.8Summary of Notable New Features in 15.8

Problemi principali risolti nella versione 15.8Top Issues Fixed in 15.8

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8:These are the customer-reported issues addressed in 15.8:

Vedere tutti i problemi segnalati dai clienti e risolti in Visual Studio 2017 versione 15.8.See all customer-reported issues fixed in Visual Studio 2017 version 15.8.

The Developer Community Portal


Dettagli delle novità nella versione 15.8Details of What's New in 15.8

Release Notes Icon Visual Studio 2017 versione 15.8.0Visual Studio 2017 version 15.8.0

Rilascio: 14 agosto 2018released on August 14, 2018

Nuove funzionalità nella versione 15.8New Features in 15.8

InstallazioneInstall

Ora è possibile scaricare tutti i file di installazione prima di avviare l'installazione.You now have the option to download all installation files before starting your installation.

  • Per usare questa nuova opzione, selezionare l'opzione "Scarica tutto, quindi installa" nel programma di installazione (figura 1) .To use this new option, select the "Download all, then install" option in the installer (Figure 1). È consigliabile usare questa opzione se si dispone di una connessione Internet lenta.We suggest this option if you have a slower internet connection.
  • L'opzione predefinita rimane "Installa durante il download", con cui vengono eseguiti il download e l'installazione in parallelo.The default option remains "Install while downloading", which downloads and installs in parallel.
Download Otion
(Figura 1) Opzione di download(Figure 1) Download Option

PrestazioniPerformance

Questa versione include i miglioramenti seguenti per le prestazioni:This release contains the following performance improvements:

  • 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.Branch switching for C#, VB, and C++ projects is much faster for large solutions since solution reload is no longer required.
  • 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.We reduced the time to unload and reload a small set of C# and VB projects in large solutions from minutes to several seconds.
  • È 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.We added an option to disable reopening documents that were open in the previous session, as reopening certain types of files or designers can delay solution load.
    • Attivare o disattivare questa opzione in Strumenti > Opzioni > Progetti > Soluzioni > Generale.Toggle this option in Tools > Options > Projects > Solutions > General.

Prestazioni dei testTest Performance

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.We significantly improved performance when running a few tests in a large solution with multiple test projects. Nei nostri laboratori, una soluzione con più di 10.000 MSTests ha eseguito un singolo test fino all'82% più velocemente.In our labs, a solution with over 10,000 MSTests executed a single test up to 82% faster!

Miglioramento delle prestazioni di Visual BasicVisual Basic Performance Improvement

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.Visual Basic now provides a significant performance improvement when using the pattern CInt(Fix(number)) to convert from non-integer types to integers.

Profilatura delle prestazioniPerformance Profiling

Questa versione include i miglioramenti seguenti per la profilatura delle prestazioni:This release contains the following performance profiling enhancements:

  • È stata aggiunta la possibilità di avviare la profilatura con stato in sospeso:We added the capability to start profiling in a paused state:

    • Lo strumento Utilizzo CPU in Profiler prestazioni (ALT+F2) ora può essere avviato con stato in sospeso (figura 2) .The CPU Usage tool in the Performance Profiler (ALT-F2) can now be started in a paused state (Figure 2). Questo può essere utile in attesa di uno scenario che merita un'analisi tramite Utilizzo CPU.This can be useful while waiting for a scenario worthy of a CPU Usage investigation. 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.If CPU usage collection is disabled at startup, the Performance Profiler will not collect any CPU usage sample stack data until it is specifically enabled. Questo consente di ridurre la quantità di dati da raccogliere e analizzare, rendendo più efficienti le indagini sulle prestazioni.This results in a smaller amount of data to collect and analyze, thus making your performance investigations more efficient.

    • 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.To start a session with CPU Usage sample collection disabled, click the gear icon next to CPU Usage on the Performance Profiler launch page. Nella pagina delle proprietà di Utilizzo CPU deselezionare Abilita profilatura CPU (campionamento) e fare clic su OK per salvare le impostazioni.On the CPU Usage property page, uncheck Enable CPU Profiling (Sampling) and click OK to save the settings.

      CPU Usage Tool settings page
      (Figura 2) Impostazioni dello strumento Utilizzo CPU(Figure 2) CPU Usage Tool Settings
    • 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.Once you start the target application (click Start on the Performance Profiler launch page), you will see the CPU utilization graph (Figure 3) which allows you to control CPU profiling. 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.To enable CPU usage sample stack data collection, select Enable CPU profiling in the middle of the view, or click Record CPU Profile just below the CPU utilization graph. È possibile fare clic su Registra profilo CPU per abilitare o disabilitare la raccolta dei dati dei campioni tutte le volte che si vuole.You can click Record CPU Profile to enable/disable sample data collection as many times as you like. Il colore del grafico Utilizzo CPU cambia per indicare se la raccolta di campioni è abilitata o disabilitata in un dato momento.The CPU utilization graph color changes to indicate whether sample collection is enabled/disabled at that point in time.

      CPU Usage Tool monitoring view
      (Figura 3) Grafico dell'utilizzo della CPU(Figure 3) CPU Usage Utilization Graph
  • È stato aggiunto uno strumento Verifica allocazione oggetti .NET:We added a .NET Object Allocation Tracking tool:

    • Lo strumento Verifica allocazione oggetti .NET estende la gamma di strumenti disponibili in Profiler prestazioni.The .NET Object Allocation Tracking Tool joins the family of tools available from the Performance Profiler. 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.Invoking this tool for a performance profiler session initiates the collection of a stack trace for every .NET object allocation that occurs in the target application. 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.This stack data is analyzed along with object type and size information to reveal details of the memory activity of your application. È possibile determinare rapidamente gli schemi di allocazione nel codice e identificare le anomalie.You can quickly determine the allocation patterns in your code and identify anomalies. 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.In addition, for Garbage Collection (GC) events, you can easily determine which objects were collected and retained and quickly identify object types that dominate the memory usage of the application.
    • Ciò è particolarmente utile per consentire agli autori di API di ridurre al minimo le allocazioni.This is especially useful for API writers to help minimize allocations. 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.Many applications will overrun the buffer limits involved in the diagnostics data collection, but small test applications exercising an API's key scenarios can be diagnosed quite well. 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).While your test application is executing, the Performance Profiler displays a line graph of Live Objects (count), as well as an Object Delta (% change) bar graph.
    • 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.To use the .NET Object Allocation Tracking Tool, display the Performance Profiler launch page (Figure 4), select a target to profile (the default target is the startup project in the solution), check .NET Object Allocation Tracking under Available Tools, then click Start.
    Performance Profiler launch page
    (Figura 4) Pagina di avvio di Profiler prestazioni(Figure 4) Performance Profiler Launch Page

Profilatura delle prestazioni (Utilizzo CPU)Performance Profiling (CPU Usage)

Questa versione include i miglioramenti seguenti per lo strumento Utilizzo CPU di Profiler prestazioni (disponibile tramite ALT+F2):This release contains the following improvements to the CPU Usage tool of the Performance Profiler (available through ALT-F2):

  • La visualizzazione struttura ad albero delle chiamate ora per impostazione predefinita visualizza l'esecuzione asincrona dallo stack di chiamate logico.The Call Tree view now displays asynchronous execution by logical call stack by default. È possibile disattivare questo comportamento deselezionando l'opzione Unisci codice asincrono nell'elenco a discesa Filtro della visualizzazione principale Utilizzo CPU.You can turn off this behavior by unchecking the option Stitch Async Code in the Filter dropdown of the CPU Usage main view.
  • È 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.We added a Modules/Functions view that displays performance information by module (dll) and by function within a module. È 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.One can display the Modules/Functions view from the context menu available when selecting a function in the CPU Usage main view, or from the View dropdown in the Call Tree or Caller/Callee views.
  • È stata aggiunta un'indicazione dell'istanza al grafico di Utilizzo CPU nella visualizzazione principale dello strumento Utilizzo CPU.Instance indication has been added to the CPU Usage graph in the CPU Usage tool's main view. È 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.You can view the instances when a function is executing (for instance, on the stack) by double-clicking a function listed in any of the CPU Usage views.

ProduttivitàProductivity

Questa versione include i miglioramenti seguenti per la produttività:This release contains the following productivity enhancements:

  • È possibile eseguire una pulizia aggiuntiva del codice con Formatta documento (CTRL+K, D oppure +E, D) per lo sviluppo in C#.You can perform additional code cleanup with Format Document (Ctrl + K, D or Ctrl + E, D) for C# development. Per configurare la pulizia, passare a Strumenti > Opzioni > Editor di testo > C# > Stile codice > Formattazione > Generale.Configure cleanup by going to Tools > Options > Text Editor > C# > Code Style > Formatting > General.
  • Sono stati aggiunti altri refactoring e azioni rapide con CTRL+.We added more refactorings and quick actions using Ctrl + . oppure ALT+INVIO:or Alt + Enter:
    • Inverti If consente di invertire la logica nelle istruzioni if-else.Invert If enables you to invert your logic in if-else statements. Posizionare il cursore nella parola chiave if per attivare questa funzionalità di refactoring.Place your cursor in the if keyword to trigger this 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.Add parameter from method callsite allows you to add a parameter to a method by adding an argument to a method callsite and triggering Quick Actions and Refactorings.
    • Rimuovi le parentesi non necessarie rimuove le parentesi degli operatori binari che non sono essenziali per la compilazione.Remove unnecessary parentheses removes parentheses around binary operators that are not essential for compilation. È possibile configurare questa regola di stile tramite Strumenti > Opzioni > Editor di testo > C# > Stile codice > Generale o mediante .editorconfig:You can configure this style rule through Tools > Options > Text Editor > C# > Code Style > General or .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
    • È anche possibile configurare Use ternary conditionals in assignments and return statements (Usa istruzioni condizionali ternarie in assegnazioni e istruzioni return) come una regola di stile in Strumenti > Opzioni > ... o mediante editorconfig:Use ternary conditionals in assignments and return statements can also be configured as a style rule in Tools > Options > ... or through .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 tutti:We added new commands and improvements to the Go to All window:
    • Vai a Blocco di inclusione (CTRL+ALT+freccia SU) consente di passare rapidamente all'inizio del blocco di codice di inclusione.Go to Enclosing Block (Ctrl + Alt + UpArrow) allows you to quickly navigate up to the beginning of the enclosing code block.
    • Vai a Problema successivo/precedente (ALT+PGSU/PGGIÙ) consente di passare al problema successivo/precedente (errore, sottolineatura ondulata, indicatore lampadina).Go to Next/Previous Issue (Alt + PgUp/PgDn) allows you to skip to the next/previous issue (error, squiggle, lightbulb).
    • Vai a Membro (CTRL+T, M) ora per impostazione predefinita ha come ambito il file.Go to Member (Ctrl + T, M) is now scoped to the file by default. È possibile reimpostare il valore predefinito sulla soluzione attivando e disattivando Documento corrente per l'ambito (CTRL+ALT+C).You can change the default back to solution by toggling the Scope to Current Document (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.You can now create insertion points and selections at multiple, arbitrary locations in a file with multiple caret support. In questo modo è possibile aggiungere, modificare o eliminare il testo in più posizioni simultaneamente.This allows you to add, edit, or delete text in multiple places simultaneously.
    • Inserire punti di inserimento con CTRL+ALT+clic con il pulsante sinistro del mouse.Insert carets with Ctrl + Alt + LeftMouseClick.
    • Aggiungere una selezione e un punto di inserimento nella posizione successiva che corrisponde alla selezione corrente con MAIUSC+ALT+INS.Add a selection and caret at next location that matches current selection with Shift + Alt + Ins.
    • Per un elenco completo delle azioni, vedere Modifica > Più punti di inserimento.See Edit > Multiple Carets for full list of actions.
  • Accedere a un menu di scelta rapida di navigazione con ALT+` .Access a contextual navigation menu with Alt + `.
  • Mantenere la coerenza dei tasti di scelta rapida con due nuovi profili di tastiera: Visual Studio Code e ReSharper (Visual Studio) .Keep your keybindings consistent with two new keyboard profiles: Visual Studio Code and ReSharper (Visual Studio). Questi schemi sono disponibili in Strumenti > Opzioni > Ambiente > Tastiera e nel menu a discesa superiore.You can find these schemes under Tools > Options > Environment > Keyboard and the top drop-down menu.

DebugDebugging

Questa versione include i miglioramenti seguenti per il debug:This release contains the following debugging enhancements:

  • 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) .When you have more than one instance of Visual Studio 2017 installed, you can now select which instance to deploy your extension to when debugging (Figure 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.That way you can, for example, develop in the Visual Studio release channel while debugging in the preview channel.

    Select your debug instance
    (Figura 5) Selezionare l'istanza di debug(Figure 5) Select Debug Instance
  • Ora è possibile collegare Snapshot Debugger direttamente dalla pagina Riepilogo pubblicazione (figura 6) .You can now attach the Snapshot Debugger directly from the Publish summary page (Figure 6).

    Attach Snapshot Debugger from Publish Summary page
    (Figura 6) Collegare Snapshot Debugger dalla pagina Riepilogo pubblicazione(Figure 6) Attach Snapshot Debugger from Publish Summary
  • È ora supportata la visualizzazione delle attività gestite tramite la finestra Attività durante il debug di minidump con heap.We now support viewing Managed Tasks through the Tasks window while debugging minidumps with heap.

Strumenti per sviluppatori per la piattaforma UWP (Universal Windows Platform)Tools for Universal Windows Platform Developers

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.We made many important improvements to the XAML designer for projects targeting the Universal Windows Platform with a target platform version of the Windows 10 Fall Creators Update (build 16299) or later. Questi miglioramenti includono:These improvements include:

  • È ora possibile modificare le raccolte nel controllo proprietà.You can now edit collections in the Property Inspector.
  • La finestra di progettazione ora consente la modifica di modelli e stili, anche quando le definizioni per le entità sono definite in altri documenti.The designer now allows Templates and Styles to be edited, including when the definitions for those entities are defined in other documents.
  • 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.Properties of type IconElement (such as Icon in an AppBarButton) now have a custom editor in the Property Inspector making these properties easier to set.
  • La finestra di progettazione, l'editor e Modifica e continuazione ora dovrebbero tutti funzionare correttamente con x:DefaultBindMode.The designer, editor, and Edit and Continue should all now work correctly with x:DefaultBindMode.
  • L'esperienza di Visual State Manager in Blend ora supporta AdaptiveTrigger.The Visual State Manager experience in Blend now supports AdaptiveTrigger.

F# 4.5 e Strumenti F# per Visual StudioF# 4.5 and F# Tools for Visual Studio

Con questa versione è stato introdotto il linguaggio F# versione 4.5.We introduced the F# language version 4.5 with this release. Questo corrisponde anche alla nuova famiglia 4.5.x di FSharp.Core (la libreria principale di F#).This also corresponds with the new 4.5.x family of FSharp.Core (the F# core library). È possibile leggere le specifiche per ognuna di queste modifiche nel repository RFC di F#.You can read the specs for each of these changes in the F# RFC repository. Sono inoltre stati apportati numerosi miglioramenti a Strumenti F# per Visual Studio con questa versione.There are also many improvements to F# tools for Visual Studio with this release.

F# 4.5F# 4.5

Ecco alcune delle caratteristiche principali della versione 4.5 del linguaggio F#:Here are the some of the highlights with the F# language version 4.5:

Supporto di Span<'T>Span<'T> support

Sono stati implementati Span<'T> e le funzionalità correlate in modo da rendere possibili l'uso e la produzione di API tramite costrutti di tipo Span, Memory e ref con F#.We implemented Span<'T> and related features so that effective consumption and production of APIs using Span, Memory, and ref-like constructs are possible with F#. Le funzionalità includono:The features for this include:

  • Nuovo tipo voidptr.New voidptr type.
  • Nuove funzioni NativePtr.ofVoidPtr e NativePtr.toVoidPtr in FSharp.Core.New NativePtr.ofVoidPtr and NativePtr.toVoidPtr functions in FSharp.Core.
  • Nuovi tipi inref<'T> e outref<'T>, che sono rispettivamente byref di sola lettura e byref di sola scrittura.New types inref<'T> and outref<'T>, which are read-only byrefs and write-only byrefs, respectively. Questo corrisponde a in ref e out ref nel linguaggio C#.This correspond to in ref and out ref in C#.
  • Possibilità di produrre struct ByRefLike, ad esempio Span e ReadOnlySpan.The ability to produce ByRefLike structs (such as Span and ReadOnlySpan).
  • Possibilità di produrre struct IsReadOnly.The ability to produce IsReadOnly structs.
  • Dereferenziazione implicita dei valori byref e inref restituiti dai metodi.Implicit dereference of byref- and inref-returns from methods.
  • Possibilità di produrre membri di estensione su byref/inref/outref.The ability to produce extension members on byref/inref/outref.

Questo set di funzionalità corregge un bug nella progettazione iniziale dei valori restituiti byref in F# 4.1, per cui le funzioni, i metodi e le proprietà che restituiscono byref non eseguivano la dereferenziazione in modo implicito del valore restituito.This feature set fixes a bug in the initial design of byref-returns in F# 4.1, where functions, methods, and properties returning byref's were not implicitly dereferencing the return value. Questa modifica è stata apportata per allineare la funzionalità con il modo in cui vengono gestiti C# i valori restituiti ref.We make this change to bring the feature in-line with how C# handles ref-returns. Viene visualizzato un messaggio di errore quando un'annotazione di tipo indica che ora viene usata una dereferenziazione implicita di un valore restituito ref.An error message is used when a type annotation indicates that an implicit dereference of a ref- return is now used.

Inoltre, questo set di funzionalità corregge un bug nel compilatore di F# che rendeva possibile la sostituzione di struct dannosi. Ad esempio, chiamando un metodo su uno struct F# era possibile sostituire l'effettivo struct chiamato con uno diverso.Additionally, this feature set also fixes a bug in the F# compiler where "Evil struct replacement" was possible; i.e., calling a method on an F# struct could replace the actual struct that was called with a different one. 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.The this parameter on a struct is now considered an inref<MyStruct>, with an error that suggests you add a mutable field if you wish to modify the struct.

Per altre informazioni sui costrutti di tipo span e ref, vedere la RFC per questo set di funzionalità.You can learn more about span and ref-like constructs in the RFC for this feature set.

Match! nelle espressioni di calcoloMatch! in computation expressions

F# 4.5 introduce match!, una nuova parola chiave per l'uso all'interno di espressioni di calcolo, realizzata interamente da John Wostenberg.F# 4.5 introduces match!, a new keyword for use within computation expressions, contributed entirely by John Wostenberg. Questa soluzione sintattica equivale a un let! seguito da un match sul risultato.This syntactic sugar is equivalent to a let! followed by a match on the result. Per altre informazioni, vedere la RFC per match!.You can learn more in the RFC for match!.

Riduzione della necessità di eseguire l'upcast con yield in espressioni di sequenza, elenco o matriceRelaxing the need to upcast with yield in sequence, list, and array expressions

In F# 4.5 sono state ridotte le restrizioni per alcuni casi in cui era necessario un upcast quando si usa yield per convertire un sottotipo in un supertipo.F# 4.5 now relaxes some cases where an upcast when using yield was required to convert a subtype into a supertype. Tale restrizione era già non richiesta per queste espressioni da F# 3.1 quando non si usa yield, pertanto questa modifica rende il tutto più coerente con il comportamento esistente.This restriction was already not necessary for these expressions since F# 3.1 when not using yield, so this makes things more consistent with existing behavior. Per altre informazioni, vedere la RFC per questa funzionalità.You can learn more in the RFC for this feature.

Rientro nelle parentesi quadre di elenchi e matriciPermitting indentation on list and array brackets

In F# 4.5 sono state ridotte le restrizioni per la regola di rientro per le parentesi quadre di elenchi e matrici, per cui era necessario un rientro di un ambito in avanti quando erano presenti in una riga separata.F# 4.5 now relaxes the indentation rule for list and array brackets that required them to be indented one scope forward when on their own line. Questo requisito precedente è sempre stato poco chiaro, soprattutto per i principianti nello sviluppo in F#.This previous requirement has always been quite confusing, especially for beginners to F#. Inoltre, non è necessario per le espressioni di sequenza F#.Additionally, it is not required for F# sequence expressions. Questo garantisce alle espressioni di matrice e di elenco la stessa coerenza delle espressioni di sequenza.This now brings array and list expressions to the same consistent state as sequence expressions. Per altre informazioni, vedere la RFC per questa funzionalità.You can learn more in the RFC for this feature.

Case di enumerazione generati come pubbliciEnum cases emitted as public

In F# 4.5 ora i case di enumerazione vengono generati come pubblici in tutte le circostanze, per garantire l'allineamento con la modalità in cui vengono generati i case di enumerazione in C#.F# 4.5 now emits enumeration cases as public under all circumstances, to align with how C# emits enumeration cases. Questo rende inoltre più semplice per gli strumenti di profilatura analizzare i log relativi al codice F#, in cui veniva riportato il valore anziché il nome dell'etichetta.This also makes it easier for profiling tools to analyze logs from F# code, where the value rather than the label name was emitted. Per altre informazioni, vedere la RFC per questa funzionalità.You can learn more in the RFC for this feature.

Miglioramenti del compilatore F#F# Compiler Improvements

In F# 4.5, in aggiunta alle funzionalità del linguaggio citate in precedenza, sono stati apportati miglioramenti al compilatore di F#.Improvements to the F# compiler in addition to the previously-mentioned language features are in F# 4.5. Sono inclusi:These include:

  • Sono state migliorate le prestazioni del compilatore rimuovendo fino al 2,2% di tutte le allocazioni nel compilatore di F# (in vari scenari).We improved compiler performance work by removing up to 2.2% of all allocations in the F# compiler (under various scenarios).
  • È stato risolto un bug che causava un'eccezione AccessViolatioNException per l'uso di yield! con elementi enumerabili basati su struct.We fixed a bug that results in an AccessViolatioNException when using yield! with struct-based enumerables.
  • Ora è nuovamente possibile ereditare da FSharpFunc.It is now possible to inherit from FSharpFunc again.
  • Le chiamate tail sono disabilitate per impostazione predefinita per le build di debug di F# per .NET Core.Tail calls are disabled by default for debug builds of F# for .NET Core. Sono abilitate per il rilascio, pertanto corrispondono al compilatore desktop di F#.They are enabled for release, thus matching the desktop F# compiler.
  • La normalizzazione dei riferimenti di F# è stata corretta in modo da consentire di controllare i riferimenti ad assembly transitivi scritti in un file di output.F# reference normalization has been fixed to allow you to control transitive assembly references written to an output file. Questo consente di eseguire l'equivalente del reindirizzamento dell'assembly in .NET Core.This allows you to perform the equivalent of assembly redirection on .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.We fixed a bug where the error message used when attempting to use dynamic invocation on inline functions was ignored. Il messaggio di errore ora viene propagato.The error message now propagates.
  • F# ora rispetta il flag WarningsNotAsErrors che è possibile impostare nei file di progetto.F# now respects the WarningsNotAsErrors flag that you can set in project files.
  • Il messaggio di errore visualizzato quando i rami dei criteri di ricerca non restituiscono lo stesso tipo è stato reso più intuitivo da Isaac Abraham.When branches of a pattern match do not return the same error message type condition, has been updated to be friendlier by 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.An internal error bug when a compiling interface implementation that lacks an overloaded method implementation has been fixed by Steffen Forkmann.
  • Alcune copie di matrici inutili nella fase Lex del compilatore sono state rimosse da Gauthier Segay.Some unnecessary array copying in the lexing phase of the compiler has been removed by Gauthier Segay.
  • I criteri di ricerca incompleti nelle enumerazioni F# ora generano un avviso dettagliato che contiene un esempio di un case non coperto (contributo di John Wostenberg).Incomplete pattern matches on F# enumerations now produces a detailed warning that gives an example of a case not covered, contributed by John Wostenberg.
  • `#nowarn "2003" ora viene rispettato (contributo di Matthias Diitrich).`#nowarn "2003" is now respected, contributed by Matthias Diitrich.
  • Un bug in cui l'uso dei metodi di estensione di C# potrebbe avere esito negativo nella risoluzione dell'overload in F# è stato risolto da Steffen Forkmann.A bug where consuming C# extensions methods could fail in F# overload resolution has been fixed by Steffen Forkmann.
  • Un bug della struttura di dati interna QueueList è stato risolto da Steffen Forkmann.An internal QueueList data structure bug was fixed by 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.Various smaller optimizations and code cleanup efforts were contributed by Steffen Forkmann, Eugene Auduchinok, and ncave.

Libreria principale di F# 4.5.xF# Core Library 4.5.x

Sono ora disponibili le aggiunte seguenti alla libreria principale di F#:The following additions to the F# Core Library are now available:

  • È stato eseguito un notevole lavoro per migliorare le analisi dello stack per le espressioni di calcolo async { }.Significant work has been done to improve stack traces for async { } computation expressions. Ora è possibile visualizzare il codice utente e i numeri di riga specificati dall'utente nelle analisi dello stack.You should now be able to see user code and user line numbers in stack traces. Per altre informazioni, vedere la RFC per questa funzionalità.You can learn more in the RFC for this feature.
  • API FuncConvert.FromFunc e FuncConvert.FromAction che contengono gli overload System.Func e System.Action, per facilitare l'interoperabilità con C#.FuncConvert.FromFunc and FuncConvert.FromAction APIs that type System.Func and System.Action overloads, to help in interoperation with C#. Per altre informazioni, vedere la RFC per questa funzionalità.You can learn more in the RFC for this feature.
  • 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.ValueOption is a new type available, which is the first in a set of future features ultimately aimed at better performance for Active Patterns. Per altre informazioni, vedere la RFC per questa funzionalità.You can learn more in the RFC for this feature.
  • TryGetValue è ora un nuovo membro nel tipo Map di F#.TryGetValue is now a new member on the F# Map type. Per altre informazioni, vedere la RFC per questa funzionalità.You can learn more in the RFC for this feature.
  • È stato corretto l'uso elevato della CPU al momento della prima chiamata di MailboxProcessor.TryReceive.We fixed High CPU usage upon the first invocation of MailboxProcessor.TryReceive.
  • Il confronto di bool ora usa il confronto generico rapido (contributo di Vasily Kirichenko).Comparison for bool now uses fast generic comparison, contributed by Vasily Kirichenko.
  • Il testo di riepilogo per Array.allPairs è stato corretto (contributo di Patrick McDonald).The summary text for Array.allPairs has been updated to be correct, contributed by Patrick McDonald

Miglioramenti degli strumenti F#F# Tooling Improvements

In questa versione sono stati inclusi significativi miglioramenti degli strumenti F#, ad esempio ottimizzazioni delle prestazioni e alcune nuove funzionalità dell'editor.Significant improvements in the F# tools, such as performance enhancements and some new editor features are included this release. Come sempre, queste modifiche sono state realizzate con numerosi contributi della community open source F#.As always, with a large number of contributions from the F# open source community. Ecco le novità:Here are the highlights:

  • Sono state migliorate le prestazioni di IntelliSense per i progetti in stile .NET SDK di tutti i moduli, inclusi quelli con funzionalità di multitargeting.We improved IntelliSense performance for .NET SDK-style projects of all forms, including those that use multi-targeting.
  • È 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).A community-driven effort to analyze and improve IntelliSense performance for very large files was contributed by Vasily Kirichenko, Steffen Forkmann, and Gauthier Segay. IntelliSense nei file di dimensioni molto grandi (oltre 10.000 righe di codice) ora è circa due volte più veloce.IntelliSense in very large files (10k+ lines of code) is roughly twice as fast now.
  • 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.The warning for an outdated FSharp.Core (despite the package being installed) is no longer present in .NET SDK-style projects.
  • Per la descrizione comando che visualizza la documentazione XML per un membro dopo . in IntelliSense non si verifica più il timeout dopo 10 secondi.The description tooltip that displays XML documentation for a member after . in IntelliSense no longer times out after 10 seconds.
  • È stato risolto un bug per cui non era possibile impostare punti di interruzione negli argomenti del costruttore di oggetti.A bug where you could not set breakpoints in object constructor arguments has been fixed.
  • È stato risolto un bug per cui un simbolo rinominato veniva duplicato quando era un parametro generico.A bug where a renamed symbol would be duplicated when it is a generic parameter has been fixed.
  • I modelli per .NET Framework (modelli F# classici) ora usano FSharp.Core da un pacchetto NuGet, in modo da garantire l'allineamento con i modelli .NET SDK F#.Templates for .NET Framework (classic F# templates) now consume FSharp.Core from a NuGet package, to align with .NET SDK F# templates.
  • È ora disponibile il completamento automatico transazionale delle parentesi per le coppie di parentesi (), [], {}, [||] e [<>].Automatic, transactional brace completion is now available for (), [], {}, [||], and [<>] brace pairs. Questa funzionalità è stata introdotta in collaborazione con Rosa Gibran.We did this work in collaboration with Gibran Rosa.
  • È ora possibile passare alla definizione con CTRL+clic su un simbolo di F#.You can now go to definition with Ctrl + Click on an F# symbol. Le impostazioni per questa azione vengono rispettate anche nella finestra Strumenti > Opzioni.The settings for this gesture are also respected in the Tools > Options window.
  • 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.The IntelliSense performance UI has been modified to allow configuration of stale typecheck information for various IDE features. Le spiegazioni per ogni opzione ora sono presenti nelle descrizioni comandi per le impostazioni.Explanations for each option are now present in tooltips for the settings.
  • La corrispondenza delle parentesi ora viene evidenziata correttamente (funzionalità completata in collaborazione con Vasily Kirichenko).Brace match highlighting now correctly highlights braces, completed in collaboration with Vasily Kirichenko.
  • Vai a definizione ora esegue correttamente lo spostamento quando un tipo viene definito in modo ricorsivo (contributo di Vasily Kirichenko).Go to definition now navigates correctly when a type is defined recursively, contributed by 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.A bug where an auto-imported namespace wasn't opened when the top of a file was empty has been fixed by Vasily Kirichenko.
  • Un bug per cui venivano applicati colori errati agli identificatori printf che contenevano punti è stato risolto da Vasily Kirichenko.A bug where printf specifiers that contained dots were miscolored has been fixed by Vasily Kirichenko.
  • Un bug per cui tutte le aperture venivano considerate inutilizzate all'interno di un modulo ricorsivo è stato risolto da Vasily Kirichenko.A bug where all opens were considered unused inside of a recursive module has been fixed by Vasily Kirichenko.
  • Le prestazioni dell'analizzatore delle aperture inutilizzate sono state migliorate in modo significativo da Vasily Kirichenko.The performance of the Unused Opens analyzer has been improved significantly by Vasily Kirichenko.
  • Il completamento automatico per gli attributi ora suggerisce solo le opzioni che sono effettivamente attributi (contributo di Vasily Kirichenko).Autocompletion for attributes now only suggests options that are actually attributes, contributed by 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).Signature Help tooltips are now generated for Type Provider static parameters at the constructor call site, contributed by Vasily Kirichenko.
  • Un bug per cui i tipi valore usati come unità di misura venivano colorati come tipi riferimento è stato risolto da Vasily Kirichenko.A bug where value types used as units of measure were colored as reference types has been fixed by Vasily Kirichenko.
  • Un bug per cui la colorazione semantica poteva scomparire per alcuni file durante lo scorrimento è stato risolto da Vasily Kirichenko.A bug where semantic colorization could disappear for some files while scrolling has been fixed by Vasily Kirichenko.
  • È ora disponibile un'implementazione sperimentale di CodeLens (contributo di Victor Peter Rouven Müller).There is now an experimental CodeLens implementation, contributed by Victor Peter Rouven Müller. È possibile attivarla in Opzioni > Editor di testo > F# > CodeLens.You can turn it on in Options > Text Editor > F# > Code Lens.
  • Un bug per cui il servizio di compilazione di F# troncava in modo errato i nomi dei moduli nella documentazione XML è stato risolto da Sebastian Urban.A bug where the F# compiler service would incorrectly elide the module names in XML documentation has been fixed by Sebastian Urban.
  • Il codice che usa Dictionary con ContainsKey e le chiamate Item successive è stato modificato in modo da usare TryGetValue (di Eugene Auduchinok).Code that uses Dictionary with ContainsKey and subsequent Item calls has been changed to use TryGetValue, by Eugene Auduchinok.
  • Jakob Majoka ha anche contribuito al processo di utilizzo di un'API diversa per le descrizioni comandi.Jakob Majoka also contributed in the process of consuming a different API for Tooltips.

Miglioramenti di infrastruttura, creazione dei pacchetti e open sourceInfrastructure, Packaging, and Open Source Improvements

Sono stati apportati i miglioramenti seguenti all'infrastruttura, alla creazione dei pacchetti e all'esperienza per i contributi open source:We made the following enhancements to infrastructure, packaging, and our open source contribution experience:

  • Il compilatore di F# distribuito con Visual Studio non viene più installato come un singleton nel percorso dell'SDK del compilatore F#.The F# compiler distributed with Visual Studio no longer installs as a singleton in the F# Compiler SDK location. Ora è completamente side-by-side con Visual Studio. Questo significa che le installazioni side-by-side di Visual Studio finalmente disporranno di esperienze realmente side-by-side per gli strumenti e i linguaggi #.It is now fully side-by-side with Visual Studio, meaning that side-by-side installations of Visual Studio will finally have truly side-by-side F# tooling and language experiences.
  • Il pacchetto NuGet FSharp.Core ora è dotato di firma.The FSharp.Core NuGet package is now signed.
  • È stata aggiunta la registrazione ETW agli strumenti e al compilatore F#.ETW logging has been added to the F# tools and compiler.
  • 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.The very large control.fs/control.fsi files in FSharp.Core have been split into async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi, and observable.fs/observable.fsi.
  • Sono state aggiunte versioni in stile .NET SDK degli artefatti per i test di stress delle prestazioni del progetto.We added .NET SDK-style versions of our project performance stress test artifacts.
  • Newtonsoft.Json è stato rimosso dalla codebase e ora viene scaricato un pacchetto in meno per i collaboratori di OSS.We removed Newtonsoft.json from our codebase, and you now have one less package downloaded for OSS contributors.
  • Ora vengono usate le versioni più recenti di System.Collections.Immutable e System.Reflection.Metadata.We now use the latest versions of System.Collections.Immutable and System.Reflection.Metadata.

Miglioramenti della conformità e del set di strumenti per C++C++ Conformance and Toolset Improvements

Questa versione include i miglioramenti seguenti per la conformità e il set di strumenti per C++:This release contains the following C++ conformance and toolset improvements:

  • Un nuovo preprocessore sperimentale basato su token conforme agli standard C++ 11 (incluse le funzionalità del preprocessore C99), abilitato con l'opzione /experimental:preprocessor.A new, experimental, token-based preprocessor that conforms to C++11 standards (including C99 preprocessor features), enabled with the /experimental:preprocessor switch. 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.This is controlled with macro _MSVC_TRADITIONAL, which is defined 1 when using the traditional preprocessor and 0 when using the new experimental standards conformant preprocessor.
  • 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).The Visual Studio Developer Command Prompt supports enabling the Visual C++ Spectre variant 1 mitigated runtimes (-vcvars_spectre_libs = spectre). Altre informazioni sulle mitigazioni Spectre sono disponibili nel blog del team di Visual C++.More information about Spectre mitigations is available on the Visual C++ Team Blog.
  • Due nuove funzionalità per l'ottimizzatore SSA focalizzate sulla generazione di codice C++ moderno: eliminazione degli archivi ridondanti e riduzione dei rami ridondanti.Two new additions to the SSA Optimizer focused on modern C++ code generation: redundant store elimination and folding of redundant branches.
  • Ottimizzazione delle prestazioni di I/O con mapping alla memoria nel linker per ridurre i tempi di collegamento.Optimized memory mapped I/O performance in the linker to reduce link times.

Sviluppo multipiattaforma C++C++ Cross-Platform Development

In questa versione sono state aggiunte e migliorate le funzionalità seguenti per lo sviluppo multipiattaforma C++:We added, improved, and added the following to C++ cross-platform development for this release:

  • È 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.Added Add > New Item template for generating a .clang-format file following the coding convention specified for ClangFormat in Tools > Options. 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.If the Visual Studio convention is selected, the generated file tries to match the user's current Visual Studio formatting configuration from Tools > Options.
  • La versione di clang-format.exe è stata aggiornata alla 6.0.0.Updated the shipped clang-format.exe version to 6.0.0.
  • Modelli per semplificare l'aggiunta di configurazioni a CppProperties.json.Templates to simplify adding configurations to CppProperties.json.
  • Sono stati aggiunti modelli per semplificare l'aggiunta di configurazioni a CMakeSettings.json (figura 7) .Added templates to simplify adding configurations to CMakeSettings.json (Figure 7).
Configuration templates for CMake
(Figura 7) Modelli di configurazione per CMake(Figure 7) Configuration Templates for CMake

Produttività di C++C++ Productivity

Sono stati apportati i miglioramenti seguenti per la produttività di C++:We made the following enhancements and improvements to C++ productivity:

  • Le descrizioni comandi Informazioni rapide per le macro ora mostrano l'elemento che espandono, anziché solo la relativa definizione.C++ Quick Info tooltips on macros now show what they expand to, rather than just their definition. Questo è particolarmente utile per la macro complesse che fanno riferimento ad altre macro, perché chiarisce con cosa il preprocessore sostituisce l'identificatore macro.This is particularly useful for complex macros that reference other macros as it clarifies what the macro identifier is replaced with by the preprocessor.
  • È 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.Added a new quick-fix lightbulb to convert basic macros to constexpr as a new tool to modernize code.
  • IntelliSense per i modelli fornisce maggiori dettagli sugli argomenti del modello per sfruttare al meglio IntelliSense nel corpo del modello (figura 8) .IntelliSense for templates provide you more details about template arguments to take full advantage of IntelliSense within your template body (Figure 8).
Template IntelliSense
(Figura 8) IntelliSense per i modelli(Figure 8) Template IntelliSense
  • Stiamo lavorando all'aggiornamento dell'esperienza di analisi del codice.We are working to refresh our code analysis experience. Ora è possibile abilitare le nuove funzionalità in fase di sviluppo in Strumenti > Opzioni > Editor di testo > C + + > Sperimentale > Analisi del codice.You can now enable the new, in-progress features under Tools > Options > Text Editor > C++ > Experimental > Code Analysis. 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) .Code analysis can run in the background when files are opened or saved, and results are displayed in the error list and as green squiggles in the editor (Figure 9).
In-editor code analysis
(Figura 9) Analisi del codice nell'editor(Figure 9) In-editor Code Analysis

Miglioramenti apportati al debug C++C++ Debugging Improvements

Sono stati apportati i miglioramenti seguenti per il debug:We made the following debugging improvements:

  • 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.Just My Code now enables you to step-over code from system or 3rd party C++ libraries in addition to collapsing those calls in the call-stack window. È 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.You can control this behavior for any C++ libraries when your code is compiled with /JMC and the non-user libraries paths are specified in a .natjmc file. 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) .If the system library calls into user-code, when you step in, the debugger skips all system code and stops on the first line of user-code callback (Figure 10).
Just My Code
(Figura 10) Just My Code(Figure 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.Data breakpoints can now be set inside the Watch, Quickwatch, Autos, and Locals windows, allowing you to break when a value stored in memory changes in just a few, short clicks.
  • 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.Source Link lets you embed information about an executable or library's original source code into the PDB during compilation.
  • 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).When debugging, the console window now stays open by default when the program terminates execution (similar to running the program without the debugger). Questo comportamento può essere modificato ripristinando la chiusura automatica della console in Strumenti > Opzioni > Debug > Generale.This behavior can be toggled back to closing the console automatically in Tools > Options > Debugging > General.

Miglioramenti per JavaScript e TypeScriptJavaScript and TypeScript Improvements

TypeScript 3.0TypeScript 3.0

Visual Studio 2017 versione 15.8 include ora TypeScript 3.0 per impostazione predefinita.Visual Studio 2017 version 15.8 now includes TypeScript 3.0 by default. Per altre informazioni su questa versione, vedere l'annuncio del rilascio di TypeScript 3.0.For more details on this release, see the TypeScript 3.0 release announcement.

Miglioramento del supporto di Vue.jsImproved Vue.js support

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".Support for the Vue.js library has been improved, and in particular support for .vue files, also known as "single file components". 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.This provides enhancements when editing script blocks inside .vue files, including support for script blocks authored in TypeScript through the lang="ts" attribute on the script element. (Nota: è necessario usare un processo di compilazione con WebPack o simile per convertire i file con estensione vue nei file JS e HTML necessari in fase di esecuzione.(Note: A build process using WebPack or similar must be used to convert the .vue files to the HTML and JS files needed at runtime. Vedere la pagina dedicata ai componenti a file singolo per altri dettagli).See the Single File Components page for more details).

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.If the Node.js workload is installed, there will now be "Basic Vue.js Web Application" templates under the "JavaScript / Node.js" or "TypeScript / Node.js" paths in the New Project dialog. 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) .The below shows an example of editing TypeScript code inside a script block in a .vue file (Figure 11).

Editing a .vue file
(Figura 11) Modifica dei file con estensione vue(Figure 11) Editing .vue Files

Miglioramenti per ESLintESLint Improvements

È stata reimplementato il supporto di ESLint per questa versione.We reimplemented ESLint support for this release. Per ESLint sono disponibili i miglioramenti seguenti:ESLint has the following improvements and enhancements:

  • Invece di sottoporre a lint solo i file salvati, Visual Studio esegue il lint dei file JavaScript anche durante la modifica.Rather than only linting saved files, Visual Studio will now lint JavaScript files as you edit, as well.
  • 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.Results can be reported for all JS files in your project, not just open files; if there are parts of your project you do not want to be linted, an .eslintignore file can now be used to specify directories and files that should be ignored.
  • 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 was updated to use ESLint 4 by default, but if your project has a local installation of ESLint, it will use that version instead.

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) .ESLint may be disabled globally in Visual Studio by unchecking the Enable ESLint setting in the **Tools > Options > Text Editor > Javascript/Typescript > Linting ** (Figure 12).

ESLint Options
(Figura 12) Opzioni di ESLint(Figure 12) ESLint Options

Miglioramenti di Apri cartella per Node.jsOpen Folder Improvements for 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".There are numerous improvements working with JavaScript and TypeScript in the Open Folder scenario when the "Node.js workload" is installed. 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.For example, managing NPM packages, building TypeScript, launching and debugging with Node.exe, executing NPM scripts, and running unit tests.

Vedere Sviluppare il codice JavaScript e TypeScript in Visual Studio senza soluzioni o progetti per altre informazioni.See Develop JavaScript and TypeScript code in Visual Studio without solutions or projects} for more information.

Miglioramenti alle prestazioni dell'editorEditor Performance Improvements

Nelle versioni precedenti, tutte le operazione del servizio di linguaggio JavaScript e TypeScript erano gestite da un singolo processo Node.js.In previous releases, all JavaScript and TypeScript language service operations were serviced by a single Node.js process. 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).This could cause editor delays if commands that impact user typing (such as automatic formatting after a newline) were sent while a potentially lengthy operation was already in process (such as analyzing code for errors). Per risolvere questo problema, viene ora usato un processo separato per le operazioni con il maggiore impatto sulla modifica.To mitigate this, a separate process is now used for the operations that impact editing the most. Questo processo è molto meno oneroso per le risorse di sistema rispetto al processo del servizio di linguaggio esistente.This process is significantly lighter on system resources than the existing language service process. 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.However, if you wish to disable the new process, check the Disable dedicated syntax process box in Tools > Options > Text Editor > JavaScript/TypeScript > Language Service.

Strumenti Web di Visual StudioVisual Studio Web Tools

Gestione librerie è una nuova funzionalità inclusa in Visual Studio 2017.Library Manager is a new feature included in Visual Studio 2017. Consente di gestire librerie lato client nei progetti Web.It helps you manage client-side libraries in your web projects.

Strumenti per i contenitoriContainer Tools

È stato aggiunto un nuovo progetto singolo Docker container experience (Esperienza contenitore Docker) per i progetti Web ASP.NET Core.We added a new single project Docker container experience for ASP.NET Core web projects. 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.This supplements the existing Docker Compose-based container tooling and provides a simpler, easier way to create, debug, and build Docker containers right from Visual Studio.

È possibile aggiungere il supporto per Docker durante la creazione del progetto (figura 13):You can add Docker support when creating the project (Figure 13):

Enable Docker Support
(Figura 13) Abilitare il supporto per Docker(Figure 13) Enable Docker Support

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) .Or, you can enable Docker support to an existing project through the project's context menu in Solution Explorer (Figure 14). In questo caso, Visual Studio crea un singolo Dockerfile nel progetto.Once you do this, Visual Studio creates a single Dockerfile in the project. È possibile scegliere Windows o Linux.You have the option to choose either Windows or Linux.

Add Docker Support
(Figura 14) Aggiungere il supporto per Docker(Figure 14) Add Docker Support

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.Visual Studio also adds a debugger launch profile (Figure 15) for Docker so that the project can be debugged while running within a container.

Docker Launch Profile
(Figura 15) Profilo di avvio per Docker(Figure 15) Docker Launch Profile

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.If you have a solution with multiple Docker projects, by default, only one container runs when you choose to start the solution. 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.If you wish to run multiple containers simultaneously, you can right-click on the solution in Solution Explorer and select Set Startup Projects and then Multiple startup projects, and then set the Action drop-down to Start or Start without debugging for all projects that you want to run.

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.Once you have your containerized project running the way you want, you can right-click on the project and select Build Docker Image to build an image locally, when ready to push to Azure Container Registry or 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) .You can also add the existing Docker Compose-based functionality to an ASP.NET Core web project through the new Container Orchestrator Support option (Figure 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.Right-click on the ASP.NET Core web project in Solution Explorer, select Add > Container Orchestrator Support, and then select Docker Compose from the drop-down menu.

Add Container Orchestrator Support
(Figura 16) Aggiungere il supporto di orchestrazione(Figure 16) Add Orchestration Support

Miglioramenti della pubblicazionePublish Improvements

Questa versione include i miglioramenti seguenti per la pubblicazione:This release contains the following publish improvements:

  • Quando si pubblica un contenitore Docker in un registro contenitori, ora è possibile personalizzare il tag dell'immagine.When publishing a Docker container to a container registry, you can now customize the tag for the image. È possibile aggiungere manualmente un tag (il valore predefinito è "latest") o usare un tag generato automaticamente per assicurarsi che ogni tag sia univoco.You can either manually add a tag (default is "latest") or use an auto-generated tag to make sure each tag is unique.
  • Quando si crea un nuovo servizio app di Azure, è anche possibile configurare Application Insights per raccogliere automaticamente i dati di telemetria.When creating a new Azure App Service, you can also configure Application Insights to collect telemetry automatically. Se si sceglie un'area in cui è disponibile anche Application Insights, viene abilitato per impostazione predefinita.If you choose a region that also has Application Insights, it is enabled by default. 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.If you choose a region that does not yet contain Application Insights, you can manually specify a different region for your Application Insights resource from the dropdown.
  • Quando si pubblicano progetti di Funzioni di Azure, è possibile scegliere di eseguire la pubblicazione usando la nuova funzionalità Esegui da ZIP.When publishing Azure Functions projects you can choose to publish using the new Run-From-Zip feature.

Strumenti di Visual Studio per XamarinVisual Studio Tools for Xamarin

Questa versione include gli aggiornamenti seguenti per Xamarin:This release contains the following updates for Xamarin:

  • È stato aggiunto il supporto per Xcode 9.4.We added support for Xcode 9.4.
  • Quando si crea un nuovo progetto Xamarin.Forms, l'opzione predefinita per la condivisione del codice ora è .NET Standard.When you create a new Xamarin.Forms project, the default code sharing option is now .NET Standard. L'opzione Progetto condiviso è ancora disponibile.The shared project option is still available.
  • Sono stati apportati miglioramenti alla compilazione incrementale di Android.We added Android incremental build improvements. Xamarin.Android usa i file generati nella directory di output intermedia per ottenere compilazioni incrementali più veloci rispetto alle compilazioni complete.Xamarin.Android uses files generated in the intermediate output directory to achieve incremental builds that are faster than full builds. 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.Previously, if you changed your project's target framework it would invalidate the files and result in a full build on the next run. 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.In this release we now preserve the files in per-framework folders so you can switch between different target frameworks and still benefit from incremental builds. La pulizia del progetto consente di recuperare lo spazio su disco usato dai file conservati.Cleaning the project allows you to reclaim the disk space used by the preserved files.
  • È stato aggiunto il supporto minimo per i progetti di binding Xamarin.Mac in Visual Studio 2017.We have added minimum support for Xamarin.Mac binding projects in Visual Studio 2017. Ciò consente a Visual Studio di caricare e riconoscere i progetti di binding Xamarin.Mac come supportati.This enables Visual Studio to load and recognize Xamarin.Mac binding projects as supported. È anche possibile compilare progetti di binding Xamarin.Mac.You can also build Xamarin.Mac binding projects. 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.However, the build process is performed locally without using the native Mac tool chain, so the generated IL assemblies cannot be used for running or debugging in apps.

Supporto dell'emulatore Android di Hyper-VHyper-V Android Emulator Support

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) .This release adds support for the Google Android emulator that is compatible with Hyper-V when running on the Windows 10 April 2018 Update (Figure 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.This enables you to use Google's Android emulator side-by-side with other Hyper-V based technologies, including Hyper-V virtual machines, Docker tooling, the HoloLens emulator, and more. 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.Mobile app developers who use Hyper-V now have access to a fast Android emulator that always supports the latest Android APIs, works with Google Play Services out of the box, and supports all features of the Android emulator, including camera, geolocation, and Quick Boot.

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(Figura 17) Emulatore Android di Google ed emulatore HoloLens
(Figure 17) Google Android Emulator and HoloLens Emulator

Finestra di progettazione Xamarin.AndroidXamarin.Android Designer

Sono stati apportati significativi miglioramenti all'esperienza della finestra di progettazione per Xamarin.Android.We made significant improvements to the designer experience for Xamarin.Android. Le principali novità includono:Highlights include:

  • È stato introdotto un editor con visualizzazione suddivisa che consente di creare, modificare e visualizzare in anteprima i layout contemporaneamente (figura 18) .A split-view editor was introduced which allows you to create, edit, and preview your layouts at the same time (Figure 18).
Screenshot of the Xamarin.Android split-view editor.
(Figura 18) Editor con visualizzazione suddivisa per Xamarin.Android
(Figure 18) Xamarin.Android Split-view Editor
  • Miglioramento dell'esperienza IntelliSense e affidabilità dei controlli personalizzati.Improved IntelliSense experience and reliability of custom controls.
  • Supporto dei dati di esempio per i valori di sistema.Sample data support for system provided values.

Visualizzatore anteprima di Xamarin.FormsXamarin.Forms Previewer

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.The Xamarin.Forms Previewer now has toolbox support when using Xamarin.Forms version 3.1.0.583944 or higher. 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.Xamarin.Forms controls will appear in the toolbox so they are more discoverable for those new to the toolkit. È anche possibile trascinare e rilasciare un controllo nell'editor di codice XAML per aggiungere il controllo alla pagina.You can also drag and drop a control onto the XAML code editor to add the control to the page. Il visualizzatore anteprima di Xamarin.Forms fa ora parte dell'editor XAML.The Xamarin.Forms Previewer is now part of the XAML editor. È possibile aprirlo e chiuderlo tramite l'icona di espansione sul bordo del riquadro dell'editor.You can open and close it with the expand icon on the edge of the editor pane.

PythonPython

In questa versione sono stati aggiunti i miglioramenti seguenti per gli sviluppatori Python:This release adds the following improvements for Python developers:

  • 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.Python IntelliSense now uses typeshed definitions to provide richer results for libraries where auto-completions cannot be inferred by static analysis.
  • 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.The experimental debugger, first announced in the 15.7 preview releases, is now the default debug engine used for Python, providing faster and more reliable debugging for Python code.
  • È 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).We have added support for Python 3.7, including fixes to enable debug attach, profiling, and mixed-mode (cross-language) debugging features.
  • Per altre informazioni sulle funzionalità precedenti, consultare il post di blog su Python in Visual Studio 2017 versione 15.8.For more information about the above features, be sure to check out our Python in Visual Studio 2017 version 15.8 blog post.

Eseguire la migrazione delle impostazioni locali delle funzioni di AzureMigrate Local Azure Function Settings

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.The "Managed Application Settings" dialog available from the publish summary page now displays values from your local.settings.json file and enables you to migrate values to your remote Azure Function app hosted in Azure.

Servizi connessiConnected Services

Ora è possibile configurare il recapito continuo per le funzioni di Azure direttamente da Visual Studio 2017 per le soluzioni con progetti Funzione di Azure.You can now configure continuous delivery for Azure functions directly from Visual Studio 2017 for solutions with Azure Function Projects.

Miglioramento di Esplora testTest Explorer Improvement

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.Test Explorer now displays a more informative test status summary pane (lower pane of test explorer) when one of the groupings in the hierarchy view is selected. Il riquadro ora visualizza il numero di test non riusciti, superati o non in esecuzione in tale raggruppamento.The pane now displays how many tests failed, passed, or not run in that grouping.

Nuove funzionalità di estendibilitàNew Extensibility Features

Protocollo di server di linguaggioLanguage Server Protocol

Visual Studio ora offre un supporto nativo per il protocollo di server di linguaggio.Visual Studio now has native support for the Language Server Protocol. 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.Extension authors can create extensions that communicate with existing language servers to add additional language support to Visual Studio. Gli utenti delle estensioni possono installare queste estensioni per iniziare a usare il proprio linguaggio preferito in Visual Studio, ad esempio Rust.Extension users can install these extensions to start using their favorite language inside Visual Studio like Rust.

Modello AsyncPackageAsyncPackage Template

Gli autori di estensioni ora possono usare i modelli di elemento per creare AsyncPackage, in modo da ottimizzare le prestazioni dell'estensione.Extension authors can now use item templates to create AsyncPackages to optimize their extension's performance. Altre informazioni su AsyncPackages.Read more about AsyncPackages.

Pacchetti di estensioniExtension Packs

È 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.Easily share your favorite set of extensions or set up a new install of Visual Studio with all your extensions by using an extension pack. I pacchetti di estensioni consentono di creare un elenco di estensioni, inserirlo in un'estensione e usarlo rapidamente per installare le estensioni in blocco.Extension packs allow you to create a list of extensions, package them in an extension, and use it quickly to install those extensions in bulk.

Pubblicazione di estensioni dalla riga di comandoCommand Line Extension Publishing

È possibile pubblicare le estensioni in Visual Studio Marketplace tramite la riga di comando.Publish your extensions to the Visual Studio Marketplace using the command line.

.NET Core SDK 2.1.400.NET Core SDK 2.1.400

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

  • Sono stati aggiunti i modelli NUnitAdded NUnit templates
  • È stato aggiunto il supporto per gli strumenti globali dotati di firmaAdded support for signed global tools
  • Il testo della Guida è stato migliorato per maggiore chiarezzaImproved help text for better clarity

Sono stati chiusi 32 problemi nell'interfaccia della riga di comando di .NET Core.32 issues were closed on the .NET Core CLI.
Sono stati chiusi 20 problemi in .NET Core SDK.20 issues were closed on the .NET Core SDK.

Controllo del codice sorgenteSource Control

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.For .NET Core projects, files added directly to the project through File Explorer will now show the correct Git and TFS tracking icons in the Solution Explorer without needing to reload the solution.

Estensione adattatore di test .NET.NET Test Adapter Extension

L'adattatore di test .NET presenta la seguente modifica importante e deprecazione:The .NET Test Adapter has the following breaking change and deprecation:

  • Modifica importante: Tutti i progetti di test devono includere il riferimento NuGet all'adattatore di test .NET nel relativo file con estensione csproj.Breaking Change: All test projects must include their .NET test adapter NuGet reference in their csproj. In caso contrario, questo output di test verrà visualizzato nel progetto se viene avviata l'individuazione da parte di un'estensione dell'adattatore di test dopo una compilazione o se l'utente tenta di eseguire i test selezionati:If they do not, this test output will appear on the project if discovery by a test adapter extension is kicked off after a build or if the user tries to run the selected tests:
    • Il progetto di test {} non fa riferimento ad alcun adattatore NuGet .NET.Test project {} does not reference any .NET NuGet adapter. L'individuazione o l'esecuzione dei test potrebbe non funzionare per questo progetto.Test discovery or execution might not work for this project. È consigliabile fare riferimento agli adattatori di test NuGet in ogni progetto di test nella soluzione.It is recommended to reference NuGet test adapters in each test project in the solution.
  • I framework di test .NET hanno rilasciato i propri adattatori in pacchetti NuGet e stanno abbandonando le estensioni di Visual Studio..NET test frameworks have been releasing their adapters in NuGet packages and moving away from Visual Studio extensions. Gli adattatori di test .NET resi disponibili tramite estensioni sono deprecati, ma ancora supportati.The support for .NET test adapters delivered through extensions is deprecated, but still supported. Ciò significa che sono disponibili due nuove opzioni in Strumenti > Opzioni > Test.This means that two new options are available in Tools > Options > 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.The first option allows Visual Studio to only use the test adapters it finds in the test assembly folder (populated by the test adapter NuGet reference) or as specified in the runsettings file.
    • 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.The second option allows Visual Studio to "fallback" to the old behavior and search for test adapter extensions for projects that do not have a test adapter NuGet reference. Entrambe le opzioni sono selezionate per impostazione predefinita, pertanto in questa versione non è prevista alcuna modifica del comportamento predefinito.Both options are checked by default, so no default behavior will change in this release.
  • Nota: gli adattatori di test non .NET non sono interessati da questa modifica.Note: Non-.NET test adapters are not affected with this change.

Supporto dei segreti per i progetti .NET Framework di ASP.NETASP.NET .NET Framework Secrets Support

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).For ASP.NET, .NET Framework projects that target .NET Framework 4.7.1 or higher, you can now open and store secrets you do not want in your source code in usersecrets.xml by right-clicking on the project and selecting "Managed User Secrets".

Migliorare le prestazioni di .NET Framework in ASP.NETImprove ASP.NET .NET Framework Performance

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.If the referenced .NET Compiler package is out of date in an ASP.NET .NET Framework project, Visual Studio will prompt you to upgrade the package when you open the project to improve your build performance.

.NET Framework 4.7.2.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.Visual Studio 2017 version 15.8 now offers the .NET Framework 4.7.2 development tools to all supported platforms with the 4.7.2 runtime included. .NET Framework 4.7.2 include diverse nuove funzionalità e miglioramenti, oltre a numerose correzioni relative ad affidabilità, stabilità, sicurezza e prestazioni.The .NET Framework 4.7.2 offers several new features and improvements as well as numerous reliability, stability, security, and performance fixes.

È possibile trovare altre informazioni su .NET Framework 4.7.2 in questi articoli:You can find more details about the .NET Framework 4.7.2 in these articles:

Ritardare il caricamento dei pacchettiDelay Package Load

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.Visual Studio now delays the loading of asynchronous packages that are configured to autoload until after the Visual Studio IDE has fully started and the solution has loaded. Questa modifica non influisce sui pacchetti caricati automaticamente in modo sincrono.This change does not affect synchronously autoloaded packages. Gli utenti possono esaminare il centro stato attività nell'angolo inferiore sinistro della barra di stato per monitorare lo stato di avanzamento.Users can look at the Task Status Center in the lower left corner of the status bar to monitor progress. Gli autori di estensioni che creano AsyncPackage devono testare la propria estensione.Extension authors that create asyncpackages should test their extension. 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).For more information, see Improving the responsiveness of critical scenarios by updating auto load behavior for extensions.


Release Notes Icon Notifiche di avvisi di sicurezza per Visual Studio 2017 versione 15.8Visual Studio 2017 version 15.8 Security Advisory Notices

Versione di manutenzione di Visual Studio 2017 versione 15.8.7 - Data di rilascio: 10 ottobre 2018Visual Studio 2017 version 15.8.7 Service Release -- released on October 10, 2018

CVE-2018-8292 vulnerabilità di diffusione di informazioni di .NET CoreCVE-2018-8292 .NET Core Information Disclosure Vulnerability

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.A security feature bypass vulnerability exists in .NET Core when HTTP authentication information is inadvertently exposed in an outbound request that encounters an HTTP redirect. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e usare le informazioni per compromettere l'applicazione Web.An attacker who successfully exploited this vulnerability could use the information to further compromise the web application. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui le applicazioni .NET gestiscono i reindirizzamenti HTTP.The security update addresses the vulnerability by correcting how .NET Core applications handles HTTP redirects.

Versione di manutenzione di Visual Studio 2017 versione 15.8.4 - Data di rilascio: 11 settembre 2018Visual Studio 2017 version 15.8.4 Service Release -- released on September 11, 2018

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

Esiste una vulnerabilità Denial Of Service in .NET Core 2.1 quando System.IO.Pipelines gestisce le richieste in modo non corretto.A denial of service vulnerability exists in .NET Core 2.1 when System.IO.Pipelines improperly handles requests. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e causare un attacco Denial of Service contro un'applicazione che usa System.IO.Pipelines.An attacker who successfully exploited this vulnerability could cause a denial of service against an application that is leveraging System.IO.Pipelines. La vulnerabilità può essere sfruttata da remoto, senza autenticazione.The vulnerability can be exploited remotely, without authentication. Un utente malintenzionato non autenticato remoto potrebbe sfruttare questa vulnerabilità fornendo richieste appositamente predisposte all'applicazione.A remote unauthenticated attacker could exploit this vulnerability by providing specially crafted requests to the application.

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

Esiste una vulnerabilità Denial Of Service in ASP.NET Core 2.1 che gestisce le richieste in modo non corretto.A denial of service vulnerability exists in ASP.NET Core 2.1 that improperly handles web requests. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e causare un attacco Denial of Service contro un'applicazione Web ASP.NET Core.An attacker who successfully exploited this vulnerability could cause a denial of service against an ASP.NET Core web application. La vulnerabilità può essere sfruttata da remoto, senza autenticazione.The vulnerability can be exploited remotely, without authentication. Un utente malintenzionato non autenticato remoto potrebbe sfruttare questa vulnerabilità fornendo richieste Web appositamente predisposte all'applicazione ASP.NET Core.A remote unauthenticated attacker could exploit this vulnerability by providing a specially crafted web requests to the ASP.NET Core application.

Visual Studio 2017 versione 15.8 -- Data di rilascio: 14 agosto 2018Visual Studio 2017 version 15.8 -- released on August 14, 2018

CVE-2018-0952 Vulnerabilità di elevazione dei privilegi dell'agente di raccolta standard dell'hub di diagnosticaCVE-2018-0952 Diagnostic Hub Standard Collector Elevation of Privilege Vulnerability

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.An elevation of privilege vulnerability exists in a visual studio service, which can lead to system privileges by a non-admin user when writing files. Un utente malintenzionato che riesce a sfruttare questa vulnerabilità potrebbe scrivere file come sistema pur avendo solo l'accesso a livello di utente.An attacker who took advantage of this could write files as system while only having user level access. Questo aggiornamento della sicurezza risolve questo problema rappresentando l'utente corrente per convalidare l'accesso al percorso del file.This security update addresses this issue by impersonating the current user to validate access to the file location.

Visual Studio 2017 versione 15.8 Preview 4 -- Rilascio: 10 luglio 2018Visual Studio 2017 version 15.8 Preview 4 -- released on July 10, 2018

CVE-2018-8172 Vulnerabilità di Visual Studio per l'esecuzione remota del codiceCVE-2018-8172 Visual Studio Remote Code Execution Vulnerability

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.A remote code execution vulnerability that can lead to exploitation of a user's machine by opening a specially crafted project, or resource file. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui Visual Studio controlla il markup di origine di un file.The security update addresses the vulnerability by correcting how Visual Studio checks the source markup of a file.

CVE-2018-8260 Vulnerabilità di esecuzione remota del codice di .NET FrameworkCVE-2018-8260 .NET Framework Remote Code Execution Vulnerability

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.A remote code execution vulnerability exists in .NET software that can lead to exploitation of a user's machine by allowing attackers to run arbitrary code in the context of the current user. L'aggiornamento della sicurezza risolve la vulnerabilità correggendo il modo in cui .NET controlla il markup di origine di un file.The security update addresses the vulnerability by correcting how .NET checks the source markup of a file.

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

Vulnerabilità di manomissione correlata alla convalida non corretta del codice da parte di Microsoft Macro Assembler.Tampering vulnerability related to the Microsoft Macro Assembler improperly validating code. L'aggiornamento della sicurezza risolve la vulnerabilità assicurando che Microsoft Macro Assembler convalidi correttamente la logica del codice.The security update addresses the vulnerability by ensuring that Microsoft Macro Assembler properly validates code logic.

CVE-2018-8171 Vulnerabilità di bypass della funzionalità di sicurezza di ASP.NET CoreCVE-2018-8171 ASP.NET Core Security Feature Bypass Vulnerability

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.An ASP.NET Core Security Feature Bypass Vulnerability exists when the number of incorrect login attempts is not validated that can lead to an attacker trying infinite authentication attempts. L'aggiornamento risolve la vulnerabilità convalidando il numero di tentativi di accesso non corretti.The update addresses the vulnerability by validating the number of incorrect login attempts.

Visual Studio 2017 versione 15.8 Preview 3 - Rilascio: 26 giugno 2018Visual Studio 2017 version 15.8 Preview 3 -- released on June 26, 2018

CVE-2018-11235 Avviso di sicurezza Microsoft per vulnerabilità di sicurezza di GitCVE-2018-11235 Microsoft Security Advisory for Git Security Vulnerability

È stata risolta una vulnerabilità di sicurezza in Git divulgata dalla community di Git.We fixed a security vulnerability in Git that was disclosed by the Git community. La vulnerabilità può causare l'esecuzione di codice arbitrario quando un utente clona un repository dannoso.The vulnerability can lead to arbitrary code execution when a user clones a malicious repository.

Visual Studio 2017 versione 15.8 Preview 1-- Rilascio: 8 maggio 2018Visual Studio 2017 version 15.8 Preview 1 -- released on May 08, 2018

CVE-2018-0765 Avviso di sicurezza Microsoft per vulnerabilità Denial of Service di .NET CoreCVE-2018-0765 Microsoft Security Advisory for .NET Core Denial of Service Vulnerability

  • Microsoft ha rilasciato questo avviso di sicurezza per fornire informazioni su una vulnerabilità in .NET Core e .NET Native versione 2.0.Microsoft is releasing this security advisory to provide information about a vulnerability in .NET Core and .NET native version 2.0. Questo avviso offre anche informazioni aggiuntive sulle operazioni che gli sviluppatori possono eseguire per aggiornare le applicazioni per rimuovere questa vulnerabilità.This advisory also provides guidance on what developers can do to update their applications to remove this vulnerability.
  • 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.Microsoft is aware of a denial of service vulnerability that exists when .NET Framework and .NET Core improperly process XML documents. Un utente malintenzionato potrebbe sfruttare questa vulnerabilità e causare un attacco Denial of Service contro un'applicazione .NET Framework, .NET Core o .NET Native.An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET Framework, .NET Core, or .NET native application.
  • 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.The update addresses the vulnerability by correcting how .NET Framework, .NET Core, and .NET native applications handle XML document processing.
  • Se l'applicazione è un'applicazione ASP.NET Core, si consiglia inoltre agli sviluppatori di eseguire l'aggiornamento ad ASP.NET Core 2.0.8.If your application is an ASP.NET Core application, developers are also advised to update to ASP.NET Core 2.0.8.

Release Notes Icon Visual Studio 2017 versione 15.8.1Visual Studio 2017 version 15.8.1

Rilascio: 17 agosto 2018released on August 17, 2018

Problemi principali risolti nella versione 15.8.1Top Issues Fixed in 15.8.1

Questi sono i problemi risolti nella versione 15.8.1:These are the issues addressed in 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.Fixed an issue where Visual Studio would close unexpectedly when a browser window was closed while debugging a Web project.

Release Notes Icon Visual Studio 2017 versione 15.8.2Visual Studio 2017 version 15.8.2

Rilascio: 28 agosto 2018released on August 28, 2018

Problemi principali risolti nella versione 15.8.2Top Issues Fixed in 15.8.2

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.2:These are the customer-reported issues addressed in 15.8.2:


Release Notes Icon Visual Studio 2017 versione 15.8.3Visual Studio 2017 version 15.8.3

Rilascio: 6 settembre 2018released on September 6, 2018

Problemi principali risolti nella versione 15.8.3Top Issues Fixed in 15.8.3

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.3:These are the customer-reported issues addressed in 15.8.3:


Release Notes Icon Visual Studio 2017 versione 15.8.4Visual Studio 2017 version 15.8.4

Rilascio: 11 settembre 2018released on September 11, 2018

Problemi principali risolti nella versione 15.8.4Top Issues Fixed in 15.8.4

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.4:These are the customer-reported issues addressed in 15.8.4:

Notifiche di avvisi di sicurezzaSecurity Advisory Notices


Release Notes Icon Visual Studio 2017 versione 15.8.5Visual Studio 2017 version 15.8.5

Rilascio: 20 settembre 2018released on September 20, 2018

Riepilogo delle novità nella versione 15.8.5Summary of What's New in 15.8.5

  • Strumenti di Visual Studio per Xamarin ora supporta Xcode 10.Visual Studio Tools for Xamarin now supports Xcode 10.

Problemi principali risolti nella versione 15.8.5Top Issues Fixed in 15.8.5

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.5:These are the customer-reported issues addressed in 15.8.5:

Dettagli delle novità nella versione 15.8.5Details of What's New in 15.8.5

Strumenti di Visual Studio per XamarinVisual Studio Tools for 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.Visual Studio Tools for Xamarin now supports Xcode 10 that allows you to build and debug apps for iOS 12, tvOS 12, and watchOS 5. Per altri dettagli sulle nuove funzionalità disponibili, vedere come prepararsi per iOS 12 e l'introduzione a iOS 12.See how to get ready for iOS 12 and our introduction to iOS 12 for more details on the new features available.


Release Notes Icon Visual Studio 2017 versione 15.8.6Visual Studio 2017 version 15.8.6

Rilascio: 02 ottobre 2018released on October 02, 2018

Riepilogo delle novità nella versione 15.8.6Summary of What's New in 15.8.6

Problemi principali risolti nella versione 15.8.6Top Issues Fixed in 15.8.6

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.6:These are the customer-reported issues addressed in 15.8.6:

Dettagli delle novità nella versione 15.8.6Details of What's New in 15.8.6

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

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).The latest Windows 10 SDK (build 17763) is now available as an optional component for the Universal Windows Platform development workload. È possibile aggiungere questo SDK al carico di lavoro selezionando la casella di controllo Windows 10 SDK (10.0.17763.0) .You can add this SDK to the workload by selecting the Windows 10 SDK (10.0.17763.0) checkbox.


Release Notes Icon Visual Studio 2017 versione 15.8.7Visual Studio 2017 version 15.8.7

Rilascio: 10 ottobre 2018released on October 10, 2018

Novità nella versione 15.8.7What's New in 15.8.7

Azure DevOpsAzure DevOps

Visual Studio Team Services è diventato Azure DevOps.Visual Studio Team Services is now Azure DevOps! Questo nuovo nome sarà usato in Team Explorer e in tutti i riferimenti in Visual Studio.You will see this new branding in Team Explorer and in references across Visual Studio.

Notifiche di avvisi di sicurezzaSecurity Advisory Notices

CVE-2018-8292 vulnerabilità di diffusione di informazioni di .NET CoreCVE-2018-8292 .NET Core Information Disclosure Vulnerability


Release Notes Icon Visual Studio 2017 versione 15.8.8Visual Studio 2017 version 15.8.8

Rilascio: 24 ottobre 2018released on October 24, 2018

Problemi principali risolti nella versione 15.8.8Top Issues Fixed in 15.8.8

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.8:These are the customer-reported issues addressed in 15.8.8:


Release Notes Icon Visual Studio 2017 versione 15.8.9Visual Studio 2017 version 15.8.9

Data di rilascio: 02 novembre 2018released on November 2, 2018

Problemi principali risolti nella versione 15.8.9Top Issues Fixed in 15.8.9

Questi sono i problemi segnalati dai clienti risolti nella versione 15.8.9:These are the customer-reported issues addressed in 15.8.9:


Problemi notiKnown Issues

Vedere tutti i problemi noti esistenti e le soluzioni alternative disponibili in Visual Studio 2017 versione 15.8.See all existing known issues and available workarounds in Visual Studio 2017 version 15.8.

Visual Studio 2017 Known Issues Visual Studio 2017 Known Issues


Suggerimenti & CommentiFeedback & Suggestions

Le opinioni dei nostri clienti sono molto importanti per noi.We would love to hear from you! È 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.For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. Alla classeThe Report a Problem Icon L'icona si trova nell'angolo superiore destro.icon is located in the upper right-hand corner. È 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à.You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. È anche possibile usufruire gratuitamente del supporto per l'installazione con Assistenza live chat.You can also get free installation help through our Live Chat support.


BlogBlogs

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à.Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.

Developer Tools Blogs


Cronologia delle note sulla versione di Visual Studio 2017Visual Studio 2017 Release Notes History

Per altre informazioni relative a versioni precedenti di Visual Studio 2017, vedere la pagina Cronologia delle note sulla versione di Visual Studio 2017.For more information relating to past versions of Visual Studio 2017, see the Visual Studio 2017 Release Notes History page.


In alto
Top of Page