Note sulla versione di Visual Studio 2022 versione 17.0
Suggerimento
Guarda le registrazioni dell'evento di lancio di Visual Studio 2022 per scoprire le novità, ascoltare suggerimenti e consigli e scaricare swag digitale gratuito.
Developer Community | Visual Studio 2022 Roadmap | System Requirements | Compatibility | Distributable Code | Release History | License Terms | Blogs | Latest Release Issues | Whats New in Visual Studio Docs (Problemi noti della versione più recente)
Visual Studio 2022 versione 17.0
Il supporto per Visual Studio 2022 versione 17.0 è terminato a luglio 2023, il che significa che non ci saranno altri aggiornamenti della sicurezza per questa versione. I sottoscrittori Enterprise e Professional che usano il canale LTSC di Visual Studio 2022 17.0 devono adottare la versione current channel o LTSC più recente.
Leggere le informazioni sulle versioni e le date di supporto di Visual Studio 2022.
Informazioni sul ciclo di vita e la manutenzione del prodotto Visual Studio.
Visitare il sito di Visual Studio per accedere ai collegamenti per le versioni più recenti dei prodotti Visual Studio 2022. Per istruzioni sull'installazione e l'aggiornamento di Visual Studio 2022, vedere Aggiornare Visual Studio 2022 alla versione più recente. La Guida dell'amministratore di Visual Studio contiene indicazioni su come distribuire Visual Studio nell'organizzazione.
Versioni di Visual Studio 2022 versione 17.0
- 11 luglio 2023 - Visual Studio 2022 versione 17.0.23
- 13 giugno 2023 - Visual Studio 2022 versione 17.0.22
- 11 aprile 2023 - Visual Studio 2022 versione 17.0.21
- 14 marzo 2023 - Visual Studio 2022 versione 17.0.20
- 14 febbraio 2023 - Visual Studio 2022 versione 17.0.19
- 10 gennaio 2023 - Visual Studio 2022 versione 17.0.18
- 13 dicembre 2022 - Visual Studio 2022 versione 17.0.17
- 8 novembre 2022 - Visual Studio 2022 versione 17.0.16
- 11 ottobre 2022 - Visual Studio 2022 versione 17.0.15
- 13 settembre 2022 - Visual Studio 2022 versione 17.0.14
- 9 agosto 2022 - Visual Studio 2022 versione 17.0.13
- 12 luglio 2022 - Visual Studio 2022 versione 17.0.12
- 14 giugno 2022 - Visual Studio 2022 versione 17.0.11
- 10 maggio 2022 - Visual Studio 2022 versione 17.0.10
- 19 aprile 2022 - Visual Studio 2022 versione 17.0.9
- 12 aprile 2022 - Visual Studio 2022 versione 17.0.8
- 8 marzo 2022 - Visual Studio 2022 versione 17.0.7
- 8 febbraio 2022 - Visual Studio 2022 versione 17.0.6
- 13 gennaio 2022 - Visual Studio 2022 versione 17.0.5
- 16 dicembre 2021 - Visual Studio 2022 versione 17.0.4
- 14 dicembre 2021 - Visual Studio 2022 versione 17.0.3
- 30 novembre 2021 - Visual Studio 2022 versione 17.0.2
- 16 novembre 2021 - Visual Studio 2022 versione 17.0.1
- 8 novembre 2021 - Visual Studio 2022 versione 17.0.0
Visual Studio 2022 Blog
Il blog di Visual Studio 2022 è la fonte ufficiale di informazioni dettagliate sul prodotto del team di progettazione di Visual Studio. È possibile trovare informazioni approfondite sulle versioni di Visual Studio 2022 nei post seguenti:
Visual Studio 2022 versione 17.0.23
Data di rilascio: 11 luglio 2023
Problemi risolti in questa versione della versione 17.0.23
- Microsoft è a conoscenza di una vulnerabilità in cui è possibile eseguire l'inserimento di indirizzi SMTP nella classe SmtpClient. Corrisponde a CVE-2022-26893 (non un CVE pubblicato perché la vulnerabilità viene valutata come media).
Avvisi di sicurezza risolti
- CVE-2023-33127 Vulnerabilità relativa all'esecuzione di codice remoto .NET Esiste una vulnerabilità nelle applicazioni .NET in cui il server di diagnostica può essere sfruttato per ottenere l'elevazione dei privilegi intersessione/interutente (EoP) e l'esecuzione del codice.
- CVE-2023-33170 Vulnerabilità di bypass della funzionalità di sicurezza .NET Esistono vulnerabilità A nelle applicazioni principali ASP.NET in cui i tentativi di blocco massimo dell'account non riusciti potrebbero non essere immediatamente aggiornati, consentendo a un utente malintenzionato di provare più password.
Visual Studio 2022 versione 17.0.22
Data di rilascio: 13 giugno 2023
Problemi risolti in questa versione della versione 17.0.22
- Microsoft è a conoscenza di una vulnerabilità in cui è possibile eseguire l'inserimento di indirizzi SMTP nella classe SmtpClient. Corrisponde a CVE-2022-26893 (non un CVE pubblicato perché la vulnerabilità viene valutata come media).
Avvisi di sicurezza risolti
- CVE-2023-24897 Vulnerabilità di esecuzione remota del codice di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità nell'SDK MSDIA in cui i PDF danneggiati possono causare un overflow dell'heap, causando un arresto anomalo o un'esecuzione remota del codice.
- CVE-2023-25652 Vulnerabilità di esecuzione remota del codice di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità in cui l'input appositamente creato per git apply –reject può causare scritture di contenuto controllate in posizioni arbitrarie.
- CVE-2023-25815 Vulnerabilità spoofing di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità in cui i messaggi di localizzazione di GitHub fanno riferimento a un percorso hardcoded anziché rispettare il prefisso di runtime che causa scritture e arresti anomali della memoria out-of-bound.
- CVE-2023-29007 Vulnerabilità di esecuzione remota del codice di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità in cui un file di configurazione contenente un errore di logica genera un inserimento arbitrario della configurazione.
- CVE-2023-29011 Vulnerabilità di esecuzione remota del codice di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità in cui l'eseguibile Git per Windows responsabile dell'implementazione di un proxy SOCKS5 è soggetto a raccogliere una configurazione non attendibile nei computer multiutente.
- CVE-2023-29012 Vulnerabilità di esecuzione remota del codice di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità in cui il programma GIT per Git Git CMD cerca erroneamente un programma all'avvio, causando l'esecuzione di codice arbitrario invisibile all'utente.
- CVE-2023-27909 Vulnerabilità di esecuzione remota del codice di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità di scrittura out-of-bounds in Autodesk® FBX® SDK in cui la versione 2020 o precedente può causare l'esecuzione del codice tramite file FBX o divulgazione di informazioni intenzionalmente creati.
- CVE-2023-27910 Vulnerabilità di divulgazione delle informazioni di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità in cui un utente potrebbe essere ingannato nell'apertura di un file FBX dannoso che potrebbe sfruttare una vulnerabilità di overflow del buffer dello stack in Autodesk® FBX® SDK 2020 o prima che possa causare l'esecuzione di codice remoto.
- CVE-2023-27911 Vulnerabilità di esecuzione remota del codice di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità in cui un utente potrebbe essere ingannato nell'apertura di un file FBX dannoso che potrebbe sfruttare una vulnerabilità di overflow del buffer heap in Autodesk® FBX® SDK 2020 o prima che possa causare l'esecuzione di codice remoto.
- CVE-2023-33139 Vulnerabilità di divulgazione delle informazioni di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità OOB in cui il parser di file obj in Visual Studios conduce alla divulgazione di informazioni.
- CVE-2023-29331 . NET e Vulnerabilità Denial of Service di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità in cui il processo di recupero AIA per i certificati client può causare denial of service.
- CVE-2023-24895 Vulnerabilità di esecuzione di codice remoto di Visual Studio e CVE-2023-24895 Questo aggiornamento della sicurezza risolve una vulnerabilità nel parser XAML WPF in cui un parser non sottoposto a posta in arrivo può causare l'esecuzione di codice remoto.
- CVE-2023-24936 .NET e vulnerabilità di elevazione dei privilegi di Visual Studio Questo aggiornamento della sicurezza risolve una vulnerabilità nelle restrizioni di bypass durante la deserializzazione di un oggetto DataSet o DataTable da XML, causando un'elevazione dei privilegi.
- CVE-2023-32032 Vulnerabilità di elevazione dei privilegi .NET Esiste in .NET usando l'estrazione del contenuto di un file Tar che può comportare l'elevazione dei privilegi.
- CVE-2023-33126 Vulnerabilità di esecuzione di codice remoto .NET Esiste in .NET durante scenari di arresto anomalo e analisi dello stack che potrebbero causare il caricamento di bin arbitrari
- CVE-2023-33128 Vulnerabilità di esecuzione remota del codice .NET Una vulnerabilità esiste nel generatore di origine .NET per P/Invoke che può portare a codice generato liberando memoria non inizializzata e arresto anomalo.
- CVE-2023-33135 Vulnerabilità di esecuzione remota del codice .NET Vulnerabilità A esiste in .NET SDK durante il ripristino dello strumento che può causare un'elevazione dei privilegi.
Visual Studio 2022 versione 17.0.21
Data di rilascio: 11 aprile 2023
Problemi risolti in questa versione della versione 17.0.21
- Corregge un arresto anomalo quando l'input non valido viene inviato al driver usato durante il training PGO per i driver in modalità kernel.
- È stato risolto un problema in IIS Express che poteva causare un arresto anomalo durante l'aggiornamento dei dati di telemetria.
- Microsoft è a conoscenza di una vulnerabilità in cui è possibile eseguire l'inserimento di indirizzi SMTP nella classe SmtpClient. Corrisponde a CVE-2022-26893 (non un CVE pubblicato perché la vulnerabilità viene valutata come media).
Community degli sviluppatori
Avvisi di sicurezza risolti
- CVE-2023-28260 Vulnerabilità di esecuzione di codice remoto .NET Esiste una vulnerabilità in .NET in esecuzione in Windows in cui una DLL di runtime può essere caricata da una posizione imprevista, causando l'esecuzione di codice remoto.
- CVE-2023-28296 Vulnerabilità di esecuzione remota del codice di Visual Studio
- CVE-2023-28299 Vulnerabilità di spoofing di Visual Studio
- CVE-2023-28262 Vulnerabilità di elevazione dei privilegi di Visual Studio
- CVE-2023-28263 Vulnerabilità di divulgazione delle informazioni di Visual Studio
Visual Studio 2022 versione 17.0.20
Data di rilascio: 14 marzo 2023
Problemi risolti in questa versione della versione 17.0.20
- Microsoft è a conoscenza di una vulnerabilità in cui è possibile eseguire l'inserimento di indirizzi SMTP nella classe SmtpClient. Corrisponde a CVE-2022-26893 (non un CVE pubblicato perché la vulnerabilità viene valutata come media).
- Git 2.39 ha rinominato il valore per credential.helper da "manager-core" a "manager". Per altre informazioni, vedere https://aka.ms/gcm/rename.
- Aggiornamenti a mingit e Git per il pacchetto Windows alla versione 2.39.2, che punta a CVE-2023-22490
Avvisi di sicurezza risolti
- CVE-2023-22490 Vulnerabilità di esecuzione codice remoto Mingit
- CVE-2023-22743 Vulnerabilità git per l'elevazione dei privilegi di Windows Installer
- CVE-2023-23618 Vulnerabilità relativa all'esecuzione di codice remoto di Git per Windows
- CVE-2023-23946 Vulnerabilità di esecuzione del codice remoto Mingit
Visual Studio 2022 versione 17.0.19
Data di rilascio: 14 febbraio 2023
Problemi risolti in questa versione della versione 17.0.19
- Aggiornamento dell'interprete CPython alla versione 3.9.13.
- Aggiornamenti a mingit e Git per il pacchetto Windows alla versione 2.39.1.1, che punta a CVE-2022-41903
Avvisi di sicurezza risolti
CVE-2023-21566 Programma di installazione di Visual Studio vulnerabilità di elevazione dei privilegi
CVE-2023-21567 Vulnerabilità Denial of Service di Visual Studio
CVE-2023-21808 Vulnerabilità di esecuzione di codice remoto di Visual Studio e .NET
CVE-2023-21815 Vulnerabilità di esecuzione remota del codice di Visual Studio
CVE-2023-23381 Vulnerabilità di esecuzione remota del codice in Visual Studio Code
CVE-2022-41903 Overap overflow in
git archive
,git log --format
con conseguente rce-
Visual Studio 2022 versione 17.0.18
Data di rilascio: 10 gennaio 2023
Avvisi di sicurezza risolti
- CVE-2023-21538 .NET Denial of Service Vulnerabilità A Denial of Service esiste in .NET 6.0 dove un client dannoso potrebbe causare un overflow dello stack che può causare un attacco Denial of Service quando un utente malintenzionato invia una richiesta non valida a un endpoint esposto.
Visual Studio 2022 versione 17.0.17
Data di rilascio: 13 dicembre 2022
Avvisi di sicurezza risolti
- CVE-2022-41089 Esecuzione di codice remoto Una vulnerabilità di esecuzione del codice remoto esiste in .NET Core 3.1, .NET 6.0 e .NET 7.0, in cui un attore malintenzionato potrebbe causare l'esecuzione di codice arbitrario a causa dell'analisi di file xps creati in modo dannoso.
Visual Studio 2022 versione 17.0.16
Data di rilascio: 8 novembre 2022
Problemi risolti in questa versione della versione 17.0.16
Avvisi di sicurezza risolti
- CVE-2022-41119 Remote Code Execution Heap Overflow Overflow Vulnerbaility in Visual Studio
- CVE-2022-39253 Information Disclosure Local clone optimization dereferences simbolici collegamenti simbolici per impostazione predefinita
Visual Studio 2022 versione 17.0.15
Data di rilascio: 11 ottobre 2022
Problemi risolti in questa versione della versione 17.0.15
- Gli amministratori potranno aggiornare il programma di installazione di Visual Studio in un computer client offline da un layout senza aggiornare Visual Studio.
Avvisi di sicurezza risolti
- CVE-2022-41032 Vulnerabilità di elevazione dei privilegi .NET Esiste una vulnerabilità in .NET 7.0.0-rc.1, .NET 6.0, .NET Core 3.1 e client NuGet (NuGet.exe, NuGet.Commands, NuGet.CommandLine, NuGet.Protocol) in cui un utente malintenzionato potrebbe eseguire codice arbitrario.
Visual Studio 2022 versione 17.0.14
Data di rilascio: 13 settembre 2022
Problemi risolti in questa versione della versione 17.0.14
Avvisi di sicurezza risolti
CVE-2022-38013 .NET Denial of Service Vulnerabilità A Denial of Service esiste in ASP.NET Core 3.1 e .NET 6.0 in cui un client malintenzionato potrebbe causare un overflow dello stack che può causare un attacco Denial of Service quando un utente malintenzionato invia un payload personalizzato analizzato durante l'associazione del modello.
Visual Studio 2022 versione 17.0.13
Data di rilascio: 9 agosto 2022
Problemi risolti in questa versione della versione 17.0.13
- Risolve l'errore Git dopo l'aggiornamento 17.1.4 - Commenti e suggerimenti di Visual Studio che forniscono l'opzione per contrassegnare un repository Git come sicuro tramite Visual Studio.
- Aggiorna MinGit alla versione 2.37.1.1 per risolvere CVE - CVE-2022-29187 (mitre.org), che ha esposto gli utenti a una vulnerabilità in cui il passaggio a un repository di cui è proprietario, ma che un altro utente può scrivere in potrebbe essere sfruttato per eseguire codice dannoso.
- Aggiorna Git per Windows alla versione 2.37.1.1 indirizzando CVE-2022-31012.
Avvisi di sicurezza risolti
- CVE-2022-34716 Vulnerabilità di divulgazione di informazioni .NET Una vulnerabilità di divulgazione di informazioni esiste in .NET 6.0 e .NET Core 3.1 che potrebbe causare l'accesso non autorizzato di informazioni con privilegi.
- CVE-2022-31012 Remote Code Execution Git for Windows' installer può essere ingannato nell'esecuzione di un file binario non attendibile
- CVE-2022-29187 Elevazione dei privilegi utenti malintenzionati può creare una directory .git in una cartella di proprietà di un utente con privilegi avanzati
- CVE-2022-35777 Remote Code Execution Visual Studio 2022 Preview Fbx File parser Vulnerabilità di overflow dell'heap
- CVE-2022-35825 Vulnerabilità OOBW (Remote Code Execution ) di Visual Studio 2022 Preview Fbx File Parser
- CVE-2022-35826 Vulnerabilità di overflow dell'heap dell'esecuzione di codice remoto in Visual Studio 2022 Preview
- CVE-2022-35827 Vulnerabilità heap OOBW (Esecuzione remota del codice) di Visual Studio 2022 Preview
Visual Studio 2022 versione 17.0.12
Data di rilascio: 12 luglio 2022
Problemi risolti in questa versione della versione 17.0.12
- Aggiornamento di LibraryManager per supportare le modifiche apportate all'API cdnjs
- Correzione di un bug per cui l'editor di testo sarebbe vuoto quando si apre un documento o si arresta in modo anomalo durante la digitazione.
Avvisi di sicurezza risolti
- CVE-2022-24513 Vulnerabilità di elevazione dei privilegi Una potenziale vulnerabilità di elevazione dei privilegi esiste quando il servizio di aggiornamento di Microsoft Visual Studio analizza in modo non corretto i dati di configurazione locale.
Visual Studio 2022 versione 17.0.11
Data di rilascio: 14 giugno 2022
Problemi risolti in questa versione della versione 17.0.11
- Aggiornamento side-by-side del set di strumenti di Dev 16.11 C++ alla versione 14.29.30145.00. La versione più recente del set di strumenti C++ di Dev 16.11 contiene importanti correzioni di bug, inclusa la correzione di tutti i report dei difetti C++20 rimanenti. Per altre informazioni, vedere le note sulla versione 16.11.14.
Dalla Developer Community
Avvisi di sicurezza risolti
- CVE-2022-30184 Vulnerabilità di divulgazione di informazioni .NET Una vulnerabilità esiste in .NET 6.0 e .NET Core 3.1 all'interno di NuGet in cui può verificarsi una perdita di credenziali.
- CVE-2022-24513 Vulnerabilità di elevazione dei privilegi Una potenziale vulnerabilità di elevazione dei privilegi esiste quando il servizio di aggiornamento di Microsoft Visual Studio analizza in modo non corretto i dati di configurazione locale.
Visual Studio 2022 versione 17.0.10
Data di rilascio: 10 maggio 2022
Problemi risolti in questa versione della versione 17.0.10
- Aggiornamento di Git per la versione di Windows usata da Visual Studio e componente facoltativo installabile a 2.36.0.1
- È stato risolto un problema relativo all'integrazione git, in cui, se si esegue il pull o la sincronizzazione dei rami che presentano differenze, la finestra di output non visualizza un hint localizzato su come risolverlo.
- È stato risolto un problema per cui quando si apre un repository Git in Visual Studio, la finestra di output mostra "Si sono verificati uno o più errori". Invece del motivo per cui si verifica l'errore e come risolverlo.
- Aggiornamento della linea di base webview2 a Daytona
Dalla Developer Community
Avvisi di sicurezza risolti
[CVE-2022-29117 Vulnerabilità Denial of Service .NET Esiste in .NET 6.0, .NET 5.0 e .NET Core 3.1 in cui un client malintenzionato può modificare i cookie e causare un attacco Denial of Service.
CVE-2022-23267 Vulnerabilità Denial of Service .NET Core Esiste in .NET 6.0, .NET 5.0 e .NET Core 3.1 in cui un client dannoso può causare un attacco Denial of Service tramite allocazioni di memoria in eccesso tramite HttpClient.
CVE-2022-29145 Vulnerabilità Denial of Service .NET Esiste in .NET 6.0, .NET 5.0 e .NET Core 3.1 in cui un client dannoso può causare un denial of service quando vengono analizzati i moduli HTML.
CVE-2022-24513 Vulnerabilità di elevazione dei privilegi Una potenziale vulnerabilità di elevazione dei privilegi esiste quando il servizio di aggiornamento di Microsoft Visual Studio analizza in modo non corretto i dati di configurazione locale.
Visual Studio 2022 versione 17.0.9
Data di rilascio: 19 aprile 2022
Problemi risolti in questa versione della versione 17.0.9
- Correzione vctip.exe regressione dalla versione 17.0.8
- Correzione di un bug che impediva il caricamento di alcune applicazioni compilate con Address Sanitizer (ASAN) in Windows 11.
- È stato risolto un altro problema ASAN per cui le applicazioni multithread con contesa heap potrebbero riscontrare deadlock, falsi report "puntatore jolly liberati" o un deadlock durante l'uscita del processo.
- Correzione del problema "Impossibile installare alcuna estensione (vsix) per Visual Studio in un computer offline".
Visual Studio 2022 versione 17.0.8
Data di rilascio: 12 aprile 2022
Problemi risolti in questa versione della versione 17.0.8
- È stato risolto un problema che causava l'esecuzione di alcune animazioni per l'esecuzione del test in background anche quando le esecuzioni di test associate erano state completate. Ciò causa rallentamenti che erano particolarmente evidenti nei monitor ad alta frequenza di aggiornamento. La correzione dovrebbe migliorare l'esperienza di utilizzo di Visual Studio nei monitoraggi con frequenza di aggiornamento elevata.
- È stato risolto un problema per cui Visual Studio si bloccava o bloccava quando si usa TFVC per un lungo periodo di tempo (in un'ora).
- Aggiunta della riga di comando del programma di installazione per rimuovere un canale inutilizzato.
Dalla Developer Community
Avvisi di sicurezza risolti
CVE-2022-24765 Vulnerabilità di elevazione dei privilegi Una potenziale vulnerabilità di elevazione dei privilegi esiste in Git per Windows, in cui le operazioni Git potrebbero essere eseguite all'esterno di un repository durante la seratura di una directory Git. Git per Windows è ora aggiornato alla versione 2.35.2.1.
CVE-2022-24767 Vulnerabilità di hijack della DLL Una potenziale vulnerabilità di hijack della DLL esiste in Git per Windows Installer, quando si esegue il programma di disinstallazione nell'account utente SYSTEM. Git per Windows è ora aggiornato alla versione 2.35.2.1.
CVE-2022-24513 Vulnerabilità di elevazione dei privilegi Una potenziale vulnerabilità di elevazione dei privilegi esiste quando il servizio di aggiornamento di Microsoft Visual Studio analizza in modo non corretto i dati di configurazione locale.
Visual Studio 2022 versione 17.0.7
Data di rilascio: 8 marzo 2022
Problemi risolti in questa versione della versione 17.0.7
- Prestazioni migliorate nei monitor con frequenza di aggiornamento elevata.
- Correzione di un blocco durante l'avvio di Visual Studio per gli utenti dello SKU della community.
Dalla Developer Community
Developer Community include un elenco completo delle correzioni disponibili nella versione 17.0.
- Rallentamento elevato e riproducibile dell'interfaccia utente di Visual Studio con frequenza di aggiornamento del monitoraggio a 300hz
- VSSDK: VS 17.1.0 Preview 5.0 si blocca dopo IVsObjectManager.UnregisterLibMgr()
Avvisi di sicurezza risolti
CVE-2020-8927 Vulnerabilità A Remote Code Execution vulnerabilità exists in .NET 5.0 and .NET Core 3.1 where a buffer overflow exists in the Brotli library versions prior to 1.0.8.
CVE-2022-24464 Vulnerabilità A Denial of Service esistente in .NET 6.0, .NET 5.0 e .NET CORE 3.1 durante l'analisi di determinati tipi di richieste di modulo HTTP.
CVE-2022-24512 Vulnerabilità Di esecuzione remota del codice esiste una vulnerabilità in .NET 6.0, .NET 5.0 e .NET Core 3.1 in cui si verifica un sovraccarico del buffer dello stack nella routine analisi doppia .NET.
CVE-2021-3711 Vulnerabilità di overflow del buffer OpenSSL Una potenziale vulnerabilità di overflow del buffer esiste in OpenSSL, utilizzata da Git per Windows. Git per Windows è ora aggiornato alla versione 2.35.1.2, che risolve questo problema.
Visual Studio 2022 versione 17.0.6
Data di rilascio: 8 febbraio 2022
Problemi risolti in questa versione della versione 17.0.6
- Aggiornamento del programma di installazione di Visual Studio per registrare correttamente i metadati del canale.
- Bollettini rilasciati nel Programma di installazione di Visual Studio per un'installazione o un aggiornamento.
- Sono state aggiunte informazioni sulle date di scadenza del canale LTSC alla finestra di dialogo Impostazioni di aggiornamento.
- Aggiunta della possibilità di modificare a livello di codice il percorso di origine degli aggiornamenti indipendentemente dall'esecuzione dell'aggiornamento. In questo modo gli amministratori IT possono modificare a livello di codice il canale di aggiornamento.
- Aggiornata l'esperienza dell'account GitHub per migliorarne la frequenza di successo.
Avvisi di sicurezza risolti
CVE-2022-21986 Vulnerabilità A Denial of Service esistente in .NET 5.0 e .NET 6.0 quando il server Web Kestrel elabora determinate richieste HTTP/2 e HTTP/3
Visual Studio 2022 versione 17.0.5
Data di rilascio: 13 gennaio 2022
Problemi risolti in questa versione della versione 17.0.5
- È stata risolta un'istanza occasionale in cui VSInstr non si chiude quando si instrumenta un file binario con metadati volatili, causando l'esito negativo della profilatura della strumentazione.
- È stato risolto il problema a causa del quale link.exe si arresta occasionalmente in modo anomalo o si blocca durante la produzione di PDB insieme al file binario.
- Correzione di un bug in C++ Concurrency::p arallel_for_each che causava l'arresto anomalo del processo chiamante a causa dell'overflow di integer.
- Correzione di un bug nei confronti CString di ATL nelle modalità C++20 e C++Latest del linguaggio.
- Correzione di un arresto anomalo durante l'esecuzione di un binario PGI-ed su arm64 e arm64ec quando veniva usato un numero elevato di probe pogo.
- È stato risolto un problema per cui l'ottimizzazione di funzioni di grandi dimensioni poteva generare codice errato.
Visual Studio 2022 versione 17.0.4
Data di rilascio: 16 dicembre 2021
Problemi risolti in questa versione della versione 17.0.4
- Aggiunge il supporto Xcode 13.2.
Visual Studio 2022 versione 17.0.3
Data di rilascio: 14 dicembre 2021
Problemi risolti in questa versione della versione 17.0.3
Rendering dei caratteri di controllo testo bidirezionale
Per evitare un exploit potenzialmente dannoso che consente la rappresentazione errata del codice, l'editor di Visual Studio non consentirà più ai caratteri di controllo del testo bidirezionale di modificare l'ordine dei caratteri nella superficie di modifica. Una nuova opzione causerà la visualizzazione di questi caratteri di controllo di testo bidirezionali con segnaposto. I caratteri di controllo di testo bidirezionali saranno comunque presenti nel codice perché questo comportamento influisce solo sul rendering nell'editor di codice.
Questa funzionalità è controllata in Strumenti\Opzioni. Nella pagina Editor di testo\Generale è disponibile un'opzione per "Mostra caratteri di controllo del testo bidirezionale", che verrà selezionata per impostazione predefinita. Se selezionata, tutti i caratteri di controllo di testo bidirezionali verranno visualizzati come segnaposto. Deselezionando l'opzione verrà ripristinato il comportamento precedente in cui questi caratteri non vengono visualizzati.
Un carattere Unicode è considerato un carattere di controllo di testo bidirezionale se rientra in uno degli intervalli seguenti: U+061c, U+200e-U+200f, U+202a-U+202e, U+2066-U+2069.
- Correzione di un arresto anomalo in Progettazione Web Form
- È stato risolto un problema a causa del quale il completamento CSS per !importante inserisce testo nel percorso errato nei file HTML o Razor.
- Correzione di una regressione con XAML Xamarin.Forms Ricaricamento rapido in conflitto con le librerie che hanno condiviso dipendenze simili, ad esempio SignalR. Xamarin.Forms XAML Ricaricamento rapido dovrebbe ora essere in grado di interagire indipendentemente da ciò che viene caricato nell'applicazione.
- È stato risolto un problema per cui le pagine di panoramica del progetto, gli strumenti di diagnostica o le finestre del profiler prestazioni a volte sarebbero vuote.
- È stato risolto un problema di modifica dei file razor in cui il cursore a volte passava a una posizione diversa a metà digitazione.
Dalla Developer Community
Developer Community include un elenco completo delle correzioni disponibili nella versione 17.0.
- Bug in Visual Studio 2022 + Xamarin + SignalR (metodo non trovato)
- HtmlLanguageClient: HtmlLanguageClient non è riuscito a inizializzare. Microsoft Visual Studio Community 2022 Preview (64 bit) versione 17.0.0 Preview 5.0
- Cose strane si verificano nella modifica css in un file razor (Blazor)
- In una pagina blazor (*.razor) l'aggiunta di punti e virgola alla riga di codice c# fa sì che il cursore salti
Avvisi di sicurezza risolti
CVE-2021-43877 Vulnerabilità .NET Una vulnerabilità di elevazione dei privilegi esiste in ANCM che potrebbe consentire l'elevazione dei privilegi quando le applicazioni .NET Core, .NET 5 e .NET 6 sono ospitate in IIS.
CVE-2021-42574 Caratteri di controllo di testo bidirezionali bidirezionali possono essere usati per fare in modo che il rendering del codice nell'editor sia diverso da quello contenuto su disco.
Visual Studio 2022 versione 17.0.2
Data di rilascio: 30 novembre 2021
Problemi risolti in questa versione della versione 17.0.2
- Correzione per codegen non valido invisibile all'utente con operazioni simili a memmove con dati sovrapposti
- Aggiunta della messaggistica nella finestra di output visualizzata quando si usano moduli C++ o unità di intestazione. Questo contiene attualmente problemi noti relativi all'uso di moduli o unità di intestazione con IntelliSense.
- Correzione del problema relativo alle pagine di panoramica di CMake e all'editor CMakeSettings bloccato su "In attesa del completamento dell'inizializzazione di IntelliSense..."
- È stato corretto un problema per cui un distruttore basato su modelli coinvolto in una gerarchia di classi con inizializzatori di membri dati potrebbe essere creata un'istanza troppo presto, causando potenzialmente una diagnostica errata sugli usi di tipi non definiti o altri errori.
- Aggiunta di Python 3.9.7 al carico di lavoro Python. Rimosso Python 3.7.8 a causa di una vulnerabilità di sicurezza.
- È stato risolto un problema a causa del quale trova successivo (F3) e Trova successivo selezionato (CTRL+F3) a volte passa alla prima occorrenza nel file anziché all'occorrenza successiva.
- Risolvere il problema per cui le date nelle interfacce utente del controllo della versione non rispettavano le impostazioni locali del sistema operativo del cliente.
- Risolvere un problema in Windows 11 in cui i clienti impostano il Terminale Windows come predefinito e il debugger non può interrompere correttamente il debug di un'app console e impedire l'avvio futuro.
Dalla Developer Community
Developer Community include un elenco completo delle correzioni disponibili nella versione 17.0.
- Non è possibile eseguire ricerche nella selezione se una singola riga è selezionata visual Studio 2022
- Il completamento di Blazor C# può occasionalmente mostrare informazioni errate
- PackageId:AndroidImage_x86_API25_Private; PackageAction:Install; ReturnCode:3;
- CTRL+F3 a volte passa all'inizio del documento
- Ctrl-f3 ha modificato il comportamento da Visual Studio 2019 a Visual Studio 2022
- Esplora test di Visual Studio 2022 visualizza sempre il test come "Non esegui"
- Intellisense nei componenti razor blazor
- Visual Studio 2022 mostra icone di aggiunta/eliminazione errate nell'albero del controllo del codice sorgente
- Visual Studio 2022 IntelliSense richiede un po' di tempo o non arriva nemmeno in alcuni scenari.
- IntelliSense nei file Razor (con estensione cshtml) non funziona ancora in VS 2022
Visual Studio 2022 versione 17.0.1
Data di rilascio: 16 novembre 2021
Problemi risolti in questa versione della versione 17.0.1
- Correzione di un arresto anomalo quando si usano compilazioni batch.
- Correzione di un arresto anomalo durante l'avvio di progetti Xamarin.Forms con xaml Ricaricamento rapido abilitato.
Dalla Developer Community
Developer Community include un elenco completo delle correzioni disponibili nella versione 17.0.
- Il profiler di Visual Studio 2022 non offre informazioni sul codice profilato
- Visualizzazione diagsession del profiler prestazioni si blocca nel ridimensionamento del riquadro
Visual Studio 2022 versione 17.0.0
Data di rilascio: 8 novembre 2021
Riepilogo delle novità di questa versione di Visual Studio 2022 versione 17.0.0
64 bit
- devenv.exe è ora solo a 64 bit
Servizi cloud di Azure
- I nuovi progetti di Servizio cloud di Azure (versione classica) non sono supportati perché sono deprecati in Azure per i nuovi clienti. I progetti di servizio cloud di Azure (supporto esteso) sono la sostituzione consigliata.
- I progetti del servizio cloud di Azure (versione classica) esistenti possono essere aperti e sono completamente supportati.
- Gli strumenti di compilazione v143 sono ora disponibili tramite il programma di installazione di Visual Studio e gli strumenti di compilazione autonomi.
- La nuova esperienza Ricaricamento rapido è ora disponibile per le applicazioni C++ native durante l'esecuzione nel debugger. Supporta sia i progetti MSBuild che CMake. Per altre informazioni, vedere la sezione Ricaricamento rapido di seguito.
- È ora possibile compilare ed eseguire il debug in modo nativo in WSL2 senza stabilire una connessione SSH. Sono supportati entrambi i progetti CMake multipiattaforma e i progetti Linux basati su MSBuild.
- Visual Studio supporta ora l'opzione
buildPresets.targets
in CMakePresets.json. In questo modo è possibile compilare un subset di destinazioni nel progetto CMake. - Il menu Progetto nei progetti CMake è stato semplificato ed espone le opzioni "Elimina cache e riconfigurazione" e "Visualizza cache".
- Le pagine di panoramica di CMake sono state aggiornate per supportare CMakePresets.json.
- Flag implementato
/scanDependencies
per l'output delle dipendenze del modulo C++20 per i progetti CMake, come descritto in P1689r4. Si tratta di un passo verso il supporto per la compilazione di progetti basati su moduli con CMake e stiamo lavorando per completare questo supporto nelle versioni successive. - È ora possibile eseguire il debug dei processi in esecuzione in un sistema remoto da Visual Studio con LLDB.
- È stata aggiornata la versione di CMake fornita con Visual Studio alla versione 3.21. Per informazioni dettagliate sugli elementi disponibili, vedere le note sulla versione di CMake 3.21.
- Gli strumenti LLVM forniti con Visual Studio sono stati aggiornati a LLVM 12. Per informazioni dettagliate, vedere le note sulla versione di LLVM.
- Il set di strumenti MSVC ora usa l'hashing dell'origine SHA-256 nei record di debug. In precedenza, il set di strumenti usa MD5 per l'hashing di origine per impostazione predefinita.
- Il carico di lavoro Sviluppo di giochi con C++ installa ora l'ultimo motore Unreal con supporto per Visual Studio 2022.
- Sono stati apportati miglioramenti in IntelliSense C++ quando si fornisce l'evidenziazione della sintassi e di spostamento per i tipi da unità di misura di intestazione e moduli importati.
- Miglioramento delle prestazioni di IntelliSense in C++ ottimizzando l'utilizzo delle intestazioni memorizzate nella cache e l'accesso al database dei simboli, offrendo tempi di caricamento migliorati per accedere al codice.
- Linter del codice IntelliSense per C++ è ora attivo per impostazione predefinita, fornendo suggerimenti istantanei di tipo you-type e suggerimenti per correggere i difetti comuni del codice.
- Supporto per libfuzzer nell'opzione
-fsanitize=fuzzer
. Per altri dettagli, vedere la documentazione. - È stato migliorato il rilevamento della dereferenziazione puntatore Null negli strumenti di analisi del codice.
- L'analisi del codice applica ora che restituisce valori di funzioni annotate con
_Check_return_
o_Must_inspect_result_
devono essere controllate. - Aggiunta del supporto per
gsl::not_null
l'analisi del codice. - Aggiornato a NDK r21 LTS nel carico di lavoro Sviluppo per dispositivi mobili C++.
- Le intestazioni C++ AMP sono ora deprecate. L'inclusione <di amp.h> in un progetto C++ genererà errori di compilazione. Per disattivare gli errori, definire
_SILENCE_AMP_DEPRECATION_WARNINGS
. Per altri dettagli, vedere i collegamenti di deprecazione AMP.
- Miglioramenti alle finestre di dialogo di collegamento
- Miglioramenti dell'helper eccezioni
- Forza esecuzione su clic
- Analisi diagnostica del dump della memoria
- È stato rilasciato un nuovo tipo di punto di interruzione denominato Punto di interruzione dipendente, che consente di configurare un punto di interruzione da abilitare solo se viene raggiunto un altro punto di interruzione.
- Sono stati aggiunti altri aggiornamenti al nodo Origini extrenal. È ora possibile visualizzare il modulo nel sottonodo "Moduli senza origini" e caricare i simboli di Esplora soluzioni modulo.
- Miglioramenti della barra dei punti di interruzione
- Punto di interruzione temporaneo
- Trascinare e rilasciare un punto di interruzione
- Nodo Origini esterne in Esplora soluzioni
- Miglioramenti alle finestre di dialogo di collegamento
Personalizzazione
- Aggiunte schede colore per le schede verticali e orizzontali
- Aggiunta di Theme Pack e uso degli autori di temi di VS Code per avviare la raccolta di temi personalizzati
- Convertitore di temi compilato per convertire i temi di VS Code in modo che funzionino in Visual Studio 2022
- Aggiunta della funzionalità per sincronizzare il tema di Visual Studio con il tema di Windows
- Sono state aggiunte nuove funzionalità di gestione dei documenti, con la personalizzazione della larghezza della scheda, il grassetto del documento attivo e il pulsante di chiusura aggiuntivo in Docwell.
- Aggiunta dello spostamento tra sottomaschera
- Il salvataggio automatico è ora disponibile come funzionalità di anteprima
- Esperienza di copia/incolla con più punti di inserimento
- Api rimosse dagli assembly Microsoft.VisualStudio.Language.Client
- VS SDK contiene diverse modifiche di rilievo e le estensioni di Visual Studio 2019 non funzioneranno nel 2022. Per altre informazioni, vedere la documentazione di VSSDK.
- Gli assembly di riferimento di VS SDK non vengono più installati nella
VSSDK\VisualStudioIntegration\Common\Assemblies
cartella . Se la compilazione si basa su questi assembly, eseguire invece la migrazione del progetto per usare i pacchetti NuGet. Per gli scenari offline:- Mantenere un feed nuget nell'organizzazione da cui ripristinare i pacchetti nuget.
- Archiviare i file binari.
- Aggiunta di correzioni di modifiche di rilievo ILanguageClient
Servizi cloud
- Azurite verrà utilizzato per l'emulazione locale di Archiviazione di Azure invece che il più vecchio e non più sviluppato attivamente Archiviazione di Azure Emulatore.
Strumenti Git
- Supporto di più repository in un flag di anteprima per qualsiasi soluzione che si estende su repository diversi (ad esempio soluzioni con progetti ospitati in repository Git diversi)
- La pubblicazione in Azure DevOps è ora completamente supportata nell'esperienza di creazione del repository Git
- Miglioramenti della barra di stato, inclusa una nuova possibilità di visualizzare e aprire repository da un'istanza di Visual Studio vuota e visualizzare un conteggio dei commit non bloccati
- Il menu di overflow nella finestra Modifiche Git è ora disponibile per i repository solo locali con operazioni Git aggiuntive
- Barra degli strumenti Unified Diff contenente il numero di righe aggiunte/eliminate e opzioni di configurazione individuabili
- Miglioramenti dei dettagli del commit, tra cui un'interfaccia utente più reattiva e intuitiva
Menu ?
- Durante la versione 17.0 abbiamo rimodellato il menu Guida con materiale introduttivo e suggerimenti/consigli utili.
- Offre maggiore collaborazione con il team di sviluppo aggiungendo elementi come l'accesso a Developer Community, note sulla versione, la Roadmap del prodotto Visual Studio e le pagine dei social media.
Ricaricamento rapido Esperienza
- Ricaricamento rapido è ora disponibile per gli sviluppatori .NET tramite il debugger di Visual Studio e senza il debugger per molti tipi di applicazione .NET 6
- Ricaricamento rapido è ora disponibile per gli sviluppatori C++ quando si usa il debugger di Visual Studio
Per altri dettagli, vedere il collegamento precedente
IntelliCode
- I completamenti di riga prevedono il prossimo blocco di codice C# in base al contesto corrente e lo presenta come suggerimento inline a destra del cursore.
- I completamenti di riga sono ora compatibili con le build più recenti di JetBrains ReSharper. Si noti che l'aggiornamento del contesto di completamento della riga in base alla selezione degli elementi di elenco di completamento personalizzati di ReSharpers non è supportato. Se necessario, gli utenti di ReSharper possono scegliere di usare IntelliSense nativo di Visual Studio, come documentato qui
JavaScript/TypeScript
- È stato rilasciato un nuovo tipo di progetto JavaScript/TypeScript che compila progetti JavaScript/TypeScript autonomi con strumenti aggiuntivi. Sarà possibile creare progetti Angular e React in Visual Studio usando la versione del framework installata nel computer.
- I test JavaScript e TypeScript sono ora disponibili in Esplora test di Visual Studio
- Interfaccia utente grafica NPM disponibile, quindi è ora possibile scaricare i moduli NPM nello stesso modo in cui si scaricano i pacchetti NuGet
.NET 6 SDK
- .NET 6 SDK è incluso in Visual Studio 2022
- Introdurre il refactoring dei parametri può spostare un nuovo parametro dall'implementazione del metodo ai chiamanti.
- Tenere traccia dell'origine valore per l'analisi del flusso di dati
- Opzione per sottolineare le variabili che vengono riassegnare
- Aggiunta dell'opzione di ricerca nella finestra di dialogo Genera sostituzioni
- Informazioni rapide per i tag di codice> XML <ora conservano gli spazi vuoti e i blocchi CDATA
- La finestra Trova tutti i riferimenti ora raggruppa i progetti a più destinazioni
- Refactoring per rimuovere tipi ripetitivi in Visual Basic
- Passare a Implementazione non passerà più ai membri con dichiarazioni astratte sottoposte a override.
- Sincronizzare gli spazi dei nomi in modo che corrispondano alla struttura di cartelle da Esplora soluzioni
- Configurare l'analisi del codice in background da Esplora soluzioni
- I tipi riferimento nullable sono ora abilitati per impostazione predefinita per i nuovi progetti .NET
- Refactoring dello spazio dei nomi con ambito file C# 10.0
- Per impostazione predefinita, passare alle origini decompilate
- Refactoring per preferire il controllo null rispetto al controllo del tipo
- I commenti XML genereranno ora automaticamente un
<exception>
tag quando un metodo genera in modo esplicito eccezioni - Il margine di ereditarietà è ora abilitato per impostazione predefinita
- C#10
- Riduzione dei blocchi dell'interfaccia utente e miglioramento delle prestazioni all'avvio della soluzione
- Colorazione semantica più rapida fino a 2x in alcune soluzioni
- Supporto F7 (visualizza codice) nei file Razor
- Supporto dei frammenti di codice nei file razor che completeranno una sessione di frammento con una singola scheda invece di premere tabulazioni
- Formattazione migliore nei @code blocchi quando sono presenti componenti HTML e Razor annidati
- Ricaricamento rapido supporto nei file Razor
- Miglioramenti delle prestazioni
- Miglioramenti della formattazione e del rientro
- Nuovi colori dell'editor Razor
- TagHelpers è ora colorato e include supporto rapido per la classificazione delle informazioni e descrizioni comandi di completamento
- Evidenziazione e spostamento tra parentesi graffe angolo per costrutti Razor
- I commenti hanno ora il completamento automatico, il rientro intelligente, l'inclusione automatica delle continuazioni di commenti e l'esplorazione dei commenti in blocchi
- Anteprima sperimentale molto precoce dell'abilitazione dell'esecuzione di test in ambienti remoti, ad esempio contenitori Linux, WSL e connessioni SSH.
Supporto degli strumenti di test
- Mostra in Esplora test
- Le nuove versioni della piattaforma di test a partire dalla versione 17.0 non saranno in grado di eseguire test generici e test ordinati. Queste funzionalità specifiche vengono fornite solo come parte di una versione anticipata di MSTestv1 e non sono incluse in MSTestv2. Si noterà che l'utilizzo di queste funzionalità e dei test ordinati è ora considerato contrario alle procedure consigliate per i test.
- Alcune esperienze di test non saranno disponibili nella versione 17.0, inclusa la creazione di nuovi file TestSettings e l'editor TestSettings. Le esecuzioni di test potranno comunque usare i file TestSettings, ma TestSettings è stato sostituito con RunSettings e si consiglia agli utenti di eseguire la migrazione di prestazioni e funzionalità migliorate. Altre informazioni.
- Aggiornamenti del supporto per test di carico Web e test codificati dell'interfaccia utente. Test codificati dell'interfaccia utente e [test di carico Web](fine del servizio test di carico basato sul cloud | Il blog di Azure DevOps (microsoft.com) è stato ufficialmente deprecato nel 2019. Per ridurre al minimo l'impatto sugli utenti, è disponibile il supporto minimo per queste funzionalità in Visual Studio 2022. È consigliabile che gli utenti spostino test codificati dell'interfaccia utente e test di carico Web.
Popolamento della casella degli strumenti per gli SDK di estensione UWP
- Gli SDK dell'estensione UWP sono ora necessari per dichiarare in modo esplicito i tipi che desiderano visualizzare nella casella degli strumenti elencandoli nel file SdkManifest.xml. Il comportamento delle versioni precedenti di Visual Studio rimane invariato; ignoreranno l'elenco dei controlli nel manifesto ed enumereranno invece dinamicamente i tipi di controllo negli assembly dell'SDK.
- È stata rinnovata la funzionalità "Impostazioni di attendibilità" e ora è possibile visualizzare un avviso ogni volta che il codice non attendibile (ad esempio file, progetti o cartelle) sta per essere aperto all'interno dell'IDE.
- I controlli di attendibilità vengono ora eseguiti a livello di cartella della soluzione
- I progetti creati dall'utente vengono aggiunti automaticamente all'elenco attendibile
- Gli utenti possono ignorare i controlli di attendibilità nei percorsi temporanei creati da Visual Studio
Aggiornamenti, distribuzione e LTSC
- Con Visual Studio 2022, saranno disponibili più baseline di manutenzione supportate in modo simultanoue che verranno rilasciate in autunno e in primavera. Per altri dettagli, vedere la documentazione relativa al ritmo di rilascio di Visual Studio e il ciclo di vita del prodotto Visual Studio 2022.
- Il nuovo programma di installazione fornito con Visual Studio 2022 ora ha la funzionalità di configurazione da cui il prodotto Visual Studio deve ottenere gli aggiornamenti. In questo modo è possibile scegliere gli aggiornamenti da un ltsc diverso o, se ci si trova in un ambiente aziendale gestito, è possibile configurare il client per ottenere gli aggiornamenti da un layout. La possibilità di configurare l'origine per gli aggiornamenti è una nuova funzionalità fornita con il Programma di installazione di Visual Studio e pertanto il comportamento è applicabile anche alle versioni di livello inferiore di Visual Studio, ad esempio Visual Studio 2019. Per altre informazioni sulla configurazione del canale di aggiornamento, vedere la documentazione relativa all'aggiornamento di Visual Studio . Per altre informazioni su come eseguire questa operazione per i layout di rete, vedere la Guida agli amministratori di Visual Studio.
- Gli amministratori IT possono ora segnalare problemi senza che Visual Studio sia installato.
- Le icone predefinite sono state aggiornate e aggiornate.
Web Tools
- La pagina Di riepilogo pubblicazione include ora azioni per avviare/arrestare il debug remoto e la profilatura in '...' menu nell'angolo superiore destro della sezione "Hosting"
- La pagina Servizi connessi include ora un'azione per avviare Storage Explorer
- Il modello "ASP.NET Core Empty" fornito con .NET 6 usa il nuovo paradigma delle "API minime" per il quale è stato avviato l'aggiunta del supporto
- Azurite verrà utilizzato per l'emulazione locale di Archiviazione di Azure invece che il più vecchio e non più sviluppato attivamente Archiviazione di Azure Emulatore.
- È possibile aggiungere l'autenticazione all'applicazione ASP.NET Core usando Microsoft Identity Platform tramite l'esperienza Servizi connessi in Visual Studio.
Progettazione XAML WPF per .NET Framework
- La finestra di progettazione XAML WPF corrente per .NET Framework viene sostituita con una nuova finestra di progettazione XAML WPF per .NET Framework, basata sulla stessa architettura usata per la finestra di progettazione XAML WPF per .NET (.NET Core). L'esperienza di Visual Studio avrà lo stesso aspetto, ma i fornitori di controlli di terze parti devono supportare il nuovo modello di estendibilità perché il modello precedente basato su
.design.dll
eMicrosoft.Windows.Design.Extensibility
è deprecato. Se è già stata creata un'estensione.designtools.dll
per .NET (.NET Core), la stessa estensione funzionerà per la nuova finestra di progettazione XAML WPF per .NET Framework. Per altre informazioni su come eseguire la migrazione al nuovo modello di estendibilità, vedere il documento di migrazione seguente.
- Modifiche Ricaricamento rapido XAML - Modifiche minime apportate alla barra degli strumenti e alle impostazioni in-app
- Xaml Live Preview è ora disponibile per gli sviluppatori WPF, UWP, WinUI e Xamarin.Forms che eseguono le app nell'emulatore Android o come app desktop UWP. Live Preview acquisisce un'interfaccia utente delle applicazioni in esecuzione e la inserisce in una finestra ancorata in Visual Studio. In questo modo è più semplice usare xaml Ricaricamento rapido per modificare l'app durante la visualizzazione di tali modifiche all'interno di Visual Studio stesso, senza la necessità di eseguire tabulazioni tra l'app in esecuzione e Visual Studio apportando modifiche al codice XAML in tempo reale.
Per altre informazioni, fare clic sul collegamento precedente.
Dati di esempio XAML
- I dati di esempio in fase di progettazione verranno aggiunti per impostazione predefinita durante la creazione di controlli DataGrid, ListBox e ListView dalla casella degli strumenti nelle applicazioni WPF. Per disabilitare questo comportamento, deselezionare "Aggiungi automaticamente dati di esempio alla creazione dell'elemento" in Strumenti -> Opzioni -> Finestra di progettazione XAML."
- Per altre informazioni sui dati di esempio, vedere la documentazione relativa ai dati di esempio.
Esperienza di associazione XAML migliorata
- Sono stati apportati alcuni miglioramenti per rendere il data binding veloce e semplice, ad esempio l'accesso rapido alla finestra di dialogo Data Binding da Controllo proprietà, la possibilità di impostare il binding da Azioni rapide, la possibilità di scegliere la proprietà da associare all'interno della finestra di dialogo data binding.
Per altre informazioni, fare clic sul collegamento precedente.
Problemi noti
Sviluppo di applicazioni per dispositivi mobili con .NET
- Distribuzione di Xamarin iOS non riuscita dopo l'aggiornamento di iOS 15
- Eccezione di Progettazione Android nel thread "main" java.lang.NullPointerException
- La distribuzione di iOS non riesce in VS 2022
- Android Gestione dispositivi non dispone di dispositivi di base disponibili
- App iOS "Impossibile installare" nel simulatore remoto
- Le pagine delle proprietà del progetto iOS tradizionali non riescono ad aprire "Eccezione di riferimento Null oggetto"
- Impossibile creare un archivio per Xamarin iOS
- Impossibile eseguire la distribuzione in un iPhone, Errore MT1001: Impossibile trovare un'applicazione nella directory specificata
Strumenti Python
- L'avvio di Python Profiler non riesce perché la funzionalità non è ancora stata aggiunta
- Se si sceglie "Python (più recente)" durante la creazione di un ambiente Conda viene visualizzato "Python versione 0.0"
- Errori del formattatore con 'black' e 'autopep8' con "Modalità patch non valida '' in: Nessuna nuova riga alla fine del file". Un rapido problema consiste nell'aggiungere una nuova riga alla fine del file e 'nero e 'autopep8' formatterà correttamente
- Comandi del progetto Web Django (migrazione, creazione, controllo e così via) errori attualmente in uscita
- Completamenti Django nei file HTML non funzionanti
- La modalità interattiva IPython non funziona in Python 3.9
- Anche se un modulo è installato correttamente, nell'output verrà comunque visualizzato un avviso. Una rapida soluzione alternativa consiste nel chiudere e riaprire la soluzione Vs
C++ IntelliSense
Dettagli sulle novità di questa versione di Visual Studio 2022 versione 17.0.0
Debug e diagnostica
- Miglioramenti alle finestre di dialogo di collegamento
- Nuova visualizzazione elenco di processi padre/figlio tramite l'interruttore nella parte inferiore della finestra
- La selezione della visualizzazione deve essere salvata in modo permanente.
- Il tasto sinistro nella tastiera passa al processo padre nella visualizzazione padre/figlio.
- Tutte le colonne devono essere ordinabili come la vista originale.
- La colonna Nuova riga di comando è disponibile in entrambe le visualizzazioni.
- Il nome del pool di app viene visualizzato nella "colonna Titolo" per i processi w3wp
! [Allegare al processo ] (media/17.0/17.0_P2_attach_to _process_3.png)
- Aggiunta di un helper eccezioni nel blocco catch. Verrà visualizzato l'helper eccezioni con le informazioni sull'eccezione pertinenti quando un passaggio gestito genera un'eccezione e il passaggio viene completato in un blocco catch.
- Nuovo pulsante 'continue': che mostra l'helper eccezioni sulle eccezioni 'rilevate'.
- È stata aggiunta un'opzione forza esecuzione per fare clic su che eseguirà il debugger fino a quando non viene raggiunta la posizione del cursore selezionata ignorando tutti i punti di interruzione tra.
- È possibile eseguire questa operazione facendo clic su "Forza esecuzione a clic" dal menu di scelta rapida nella riga di codice desiderata.
- Quando l'applicazione è in modalità di debug, è anche possibile eseguire "Forza esecuzione a clic" facendo clic sul glifo verde visualizzato accanto a una riga di codice quando il mouse è stato posizionato tenendo premuto MAIUSC.
- Analisi diagnostica del dump della memoria
- È stato migliorato il motore dell'analizzatore per trovare altri problemi di sincronizzazione su asincrona nei dump di memoria core ASP.NET.
- Trovare le parti del codice che utilizzano la maggior parte delle risorse della CPU esaminando i primi 5 thread in base al tempo della CPU.
- Esaminare l'intero heap gestito per individuare i segni di pressione della memoria nella generazione 0, 1, 2 e nell'heap oggetti di grandi dimensioni.
- Se si dispone di un dump di arresto anomalo del sistema, è possibile trovare quckly l'eccezione di seconda probabilità e il thread che ha causato l'arresto anomalo dell'applicazione.
- Difficoltà a formare un'ipotesi di diagnostica? Quando la causa esatta di un arresto anomalo o di un blocco non è nota, è possibile usare Analizzatore eccezioni per trovare rapidamente ed esaminare tutte le eccezioni nell'heap.
- Per questi momenti in cui l'analisi della memoria è importante è stata migliorata l'euristica dell'analizzatore della coda finalizzatore. A questo punto ci concentriamo sul codice ed escludiamo gli oggetti gestiti da .NET Framework.
Punto di interruzione dipendente
Si tratta di un nuovo punto di interruzione che consente all'utente di configurare un punto di interruzione da abilitare solo se viene raggiunto un altro punto di interruzione. Durante il debug, il debugger di Visual Studio sospende l'applicazione solo nel punto di interruzione Dipendente se viene raggiunto il punto di interruzione dei prerequisiti. È possibile convertire qualsiasi punto di interruzione in punto di interruzione dipendente abilitando la casella di controllo "Abilita solo quando viene raggiunto il punto di interruzione successivo" dalla finestra delle impostazioni e selezionando il punto di interruzione dei prerequisiti dall'elenco a discesa in cui si vuole configurare il punto di interruzione dipendente.
Miglioramenti della barra dei punti di interruzione
È stato aggiunto un nuovo glifo del punto di interruzione per indicare la posizione in cui l'utente può impostare un punto di interruzione.
Fare clic con il pulsante destro del mouse sul glifo del punto di interruzione per assegnare un nuovo menu di scelta rapida con opzioni; che offre un modo rapido per creare punti di interruzione avanzata (punto di interruzione condizionale, punto di analisi e punto di interruzione temporaneo) in meno clic.
Punto di interruzione temporaneo
Si tratta di un nuovo punto di interruzione che consente all'utente di interrompere il codice una sola volta. Durante il debug, il debugger di Visual Studio sospende il runtime dell'applicazione una sola volta per questo punto di interruzione e lo rimuove immediatamente dopo che è stato raggiunto. È possibile convertire qualsiasi punto di interruzione in un punto di interruzione temporaneo abilitando la casella di controllo "Rimuovi punto di interruzione una volta raggiunto" dalla finestra delle impostazioni. In alternativa, è possibile usare il nuovo menu di scelta rapida del clic con il pulsante destro del mouse dalla barra dei punti di interruzione per impostare questo punto di interruzione.
Trascinare e rilasciare un punto di interruzione
È stato aggiunto il movimento di trascinamento della selezione per i punti di interruzione. È ora possibile tenere premuto il punto di interruzione e rilasciare nella riga di codice desiderata per spostare il punto di interruzione da una posizione a un'altra. Funziona per il punto di interruzione di avanzamento, purché le variabili di azioni/condizione si trovino all'interno del contesto.
Nodo Origini esterne in Esplora soluzioni
È stato aggiunto un nuovo nodo "Origini esterne" in Esplora soluzioni. Questa opzione verrà attualmente visualizzata solo durante il debug e mostrerà le origini per i moduli gestiti con simboli caricati che contengono informazioni sul server di origine o sul collegamento all'origine. Durante il debug, tutti i file di simboli gestiti caricati (con estensione pdb) con informazioni sul server di origine presenti verranno visualizzati in questo nodo. È possibile cercare file come qualsiasi altra cartella di Esplora soluzioni o fare doppio clic su un elemento per scaricare il file dal server di origine e aprirlo nell'editor di Visual Studio.
Collegarsi ai miglioramenti della finestra di dialogo
È stata aggiunta una nuova casella di controllo aggiornamento automatico nella finestra di dialogo Collega a processo , che quando seleziona aggiorna automaticamente l'elenco dei processi con i processi disponibili. Nuova opzione "Seleziona qualsiasi finestra dal desktop" dalla finestra di dialogo Collega a processo, consente all'utente di selezionare qualsiasi finestra in esecuzione dal desktop e allegare al processo associato per il debug.
Analisi diagnostica del dump della memoria
Trovare i fotogrammi di chiamata radice quando si verifica un'eccezione stack overflow può essere difficile e dispendioso in termini di tempo. Gli analizzatori più recenti presentano una comoda visualizzazione dello stack di chiamate e rimuove fotogrammi ripetitivi e rumorosi per un'analisi più rapida dei problemi.
Personalizzazione
Convertire i temi di VS Code in temi di Visual Studio
È stato creato uno strumento convertitore di temi in grado di convertire i temi di VS Code in modo che funzionino in Visual Studio. Prova qui.
Nuovo Pacchetto di tema di Visual Studio
I temi predefiniti di VS Code sono ora disponibili come Theme Pack di Visual Studio. Dai un'occhiata al pacchetto di temi qui.
Sincronizza tema con sistema operativo Windows
È stata aggiunta la funzionalità per sincronizzare il tema di Visual Studio con il tema di Windows, in modo che il tema possa essere modificato in base alla quantità di luce ambientale disponibile. Per abilitare questa opzione, passare a Strumenti > Tema > Usa impostazione di sistema.
Schede colore
Per abilitare le schede colori, passare a Strumenti > Opzioni > Schede e Finestre e abilitare Colorize Tabs.
Editore
Spostamento tra sottomaschera
CTRL+ALT+FRECCIA SINISTRA e CTRL+ALT+FRECCIA DESTRA verranno ora spostati in base alla sottoword. Ad esempio, la stringa "HelloWorld" identifica "Hello" e "World" come sottowords. L'abilitazione dello spostamento delle parole secondarie in Strumenti > Opzioni > Editor > di testo Generale causerà l'interazione tra i comandi correlati alle parole (ad esempio Trasposizione) con le parole secondarie.
Salvataggio automatico
In Strumenti > Opzioni > ambiente > Funzionalità di anteprima è ora disponibile il salvataggio automatico. Se abilitata, quando l'applicazione Visual Studio perde lo stato attivo (ad esempio, un'altra finestra ottiene lo stato attivo), tutti i documenti dirty verranno salvati su disco, se possibile. Se non è possibile salvare un file, rimarrà dirty finché l'utente non lo salva in modo esplicito (con i comandi Salva o Salva con nome).
Esperienza copia/incolla con più punti di inserimento
È stata migliorata l'esperienza di copia e incolla con più punti di inserimento. In precedenza, incollando più righe in più punti di inserimento, l'intero Appunti veniva duplicato in ogni punto di inserimento. A questo punto, incollando più righe nello stesso numero di punti di inserimento ogni riga in un punto di inserimento corrispondente. Per utilizzare più punti di inserimento premere ALT+MAIUSC+MOUSE o ALT+MAIUSC+E premere CTRL+MAIUSC+freccia per espandere le selezioni. Premere quindi CTRL+C per copiare il testo in più selezioni. Usare ALT+MAIUSC+mouse per creare più punti di inserimento per ogni riga da incollare nelle posizioni desiderate. Premere infine CTRL+V per incollare ogni riga in corrispondenza del punto di inserimento.
Inoltre, è possibile usare ALT+MAIUSC+FRECCIA SU o GIÙ o ALT+MAIUSC+MOUSE per selezionare con più punti di inserimento. In precedenza, questi movimenti creano la selezione della casella. A questo punto, la selezione di caselle si trasforma in più punti di inserimento. Questo metodo è più semplice e veloce rispetto alla necessità di fare clic in posizioni precise per inserire singoli punti di inserimento. Se si preferisce continuare a usare la selezione casella con ALT+MAIUSC+tasti di direzione e ALT+MAIUSC+mouse trascinate quando si espande la selezione di più punti di inserimento, passare a > Strumenti Opzioni > Editor > di testo Avanzate e selezionare Usa selezione casella.
Estensibilità
Microsoft.VisualStudio.LanguageServer.Client introduce un nuovo modo per personalizzare le notifiche quando un client di lingua non riesce a inizializzare.
L'attività di inizializzazione verrà ora rilevata dal Centro stato attività (TSC). Se l'attività di inizializzazione ha esito negativo, gli utenti possono accedere al TSC per ottenere altre informazioni su ciò che è andato storto. I client linguistici potranno ora personalizzare il messaggio visualizzato all'utente fornendo informazioni su ciò che questo errore rappresenta e sulle possibili azioni da intraprendere per risolverlo. A tale scopo, verrà introdotto un nuovo set di API nell'interfaccia ILanguageClient. Queste nuove API causano una modifica che causa un'interruzione nell'interfaccia ILanguageClient, quindi le estensioni del linguaggio dovranno fare riferimento al nuovo pacchetto per funzionare in Visual Studio 2022.
Di seguito sono riportate le nuove API:
- ShowNotificationOnInitializeFailed - Proprietà booleana che determinerà se il server di lingua vuole che venga visualizzata una bolla per notificare all'utente l'errore simile al seguente:
È consigliabile impostare questa proprietà su true solo se l'errore influisce drasticamente sull'esperienza utente per il progetto su cui stanno lavorando.
- Metodo OnServerInitializedFailedAsync : questo metodo verrà richiamato quando l'inizializzazione del client di lingua ha esito negativo. Verrà fornito un oggetto LanguageClientInitializationInfoBase con informazioni su come si è verificato l'errore in modo che il client linguistico possa notificare all'utente l'errore in modo autonomo o fornire un messaggio personalizzato con il contesto dell'errore. Se viene fornito il messaggio, verrà visualizzato nella finestra Output di Visual Studio.
JavaScript/TypeScript
È ora disponibile il supporto per un nuovo tipo di progetto JavaScript/TypeScript che consente di creare progetti Angular, React e Vue autonomi in Visual Studio. I progetti verranno creati usando gli strumenti dell'interfaccia della riga di comando del framework installati nel computer locale. Ciò significa anche che la versione del modello è basata sulle versioni dell'interfaccia della riga di comando presenti nel computer locale.
All'interno di questi nuovi progetti sarà possibile eseguire unit test e integrarli con ASP.NET progetti API core. La documentazione è disponibile qui
- È stato rilasciato un nuovo tipo di progetto JavaScript/TypeScript che compila progetti JavaScript/TypeScript autonomi con strumenti aggiuntivi. Altre informazioni sono disponibili qui
- Interfaccia utente grafica NPM disponibile, quindi è ora possibile scaricare moduli NPM nello stesso modo in cui si scaricano i pacchetti Nuget nei nuovi progetti JavaScript/TypeScript
esperienza di Ricaricamento rapido per sviluppatori .NET & C++
All'inizio di quest'anno è stato annunciato .NET Ricaricamento rapido, un progetto ambizioso per portare Ricaricamento rapido al maggior numero possibile di sviluppatori .NET. Abbiamo iniziato questo percorso con una prima anteprima disponibile in Visual Studio 2019 e abbiamo promesso molto di più per venire in Visual Studio 2022, in cui l'esperienza completa sarebbe disponibile. Oggi sono entusiasta di condividere i dettagli di ciò che è stato completato nella versione ga di Visual Studio 2022.
Per chiunque non abbia Ricaricamento rapido, ecco un'introduzione rapida. L'esperienza Ricaricamento rapido in Visual Studio funziona sia per le app .NET gestite che per le app C++ native. Indipendentemente dal tipo di app su cui si sta lavorando, l'obiettivo di Ricaricamento rapido consiste nel risparmiare il maggior numero possibile di riavvii delle app tra le modifiche, riducendo il tempo trascorso in attesa di ricompilare, riavviare, tornare alla posizione precedente in cui ci si trovava nell'app stessa e così via.
A tale scopo, è possibile modificare i file di codice delle applicazioni e applicare immediatamente tali modifiche al codice all'applicazione in esecuzione, note anche come "Ricaricamento rapido". Dopo l'applicazione di tali modifiche, è sufficiente ripetere l'esecuzione del codice eseguendo un'azione nell'app stessa (o tramite una sorta di timer e così via) e visualizzare immediatamente le modifiche, senza sospendere l'app tramite punti di interruzione necessari.
Per visualizzare alcune demo live di questa funzionalità, è possibile consultare uno di questi video:
esperienza utente Ricaricamento rapido in Visual Studio
Anche l'esperienza Ricaricamento rapido per sviluppatori .NET e C++ in Visual Studio 2022 ha subito importanti miglioramenti. La barra degli strumenti include ora l'implementazione di destinazione del pulsante "Ricaricamento rapido" con un aspetto migliorato e altre funzionalità.
La prima cosa che noterai è il nuovo pulsante di stile a discesa con una nuova icona. Il comando viene rinominato da "applica modifiche al codice" (dalle anteprime iniziali) a "Ricaricamento rapido".
Espandendo i pulsanti viene visualizzato l'accesso rapido alle funzionalità, ad esempio il riavvio delle applicazioni in esecuzione, un interruttore di consenso esplicito per Ricaricamento rapido al salvataggio e l'accesso rapido al pannello delle nuove impostazioni.
Ecco altri dettagli su ognuna delle nuove funzionalità:
- Riavviare facilmente le applicazioni: è ora possibile riavviare facilmente l'applicazione in esecuzione se è necessario applicare una modifica scortese tramite una ricompilazione indipendentemente dal fatto che l'app sia stata avviata usando il debugger o se è stata avviata senza il debugger (NUOVO per le app .NET 6).).
- Ricaricamento rapido su Salva: Nelle versioni di anteprima precedenti è possibile applicare solo Ricaricamento rapido modifiche al salvataggio nei progetti ASP.NET, per ogni altro progetto è necessario fare clic in modo esplicito sul pulsante Ricaricamento rapido. Nella versione finale è ora possibile Ricaricamento rapido usando la chiave di salvataggio per qualsiasi tipo di progetto. Questa opzione è esplicita, ma una volta abilitata verrà applicata a tutte le sessioni future di Visual Studio, a meno che non venga disattivata.
- Accesso alle impostazioni semplici: è stato aggiunto un pannello delle opzioni Ricaricamento rapido per offrire maggiore controllo quando Ricaricamento rapido è abilitato/disabilitato. È possibile raggiungere queste impostazioni in Visual Studio "Opzioni > .NET/ C++ Ricaricamento rapido" o tramite il menu a discesa dei pulsanti Ricaricamento rapido facendo clic su Impostazioni.
È stata anche aggiunta una finestra di dialogo di modifica scortese migliorata disponibile quando si esegue l'app .NET senza il debugger.
Questa nuova finestra di dialogo offre diversi miglioramenti, ad esempio:
- Opzione di consenso esplicito a livello di sessione di Visual Studio per ricompilare e applicare modifiche a ogni Ricaricamento rapido modifica scortese. Dopo aver verificato questo problema si applica a tutte le modifiche non valide future fino al riavvio di Visual Studio
- Ricompilare e applicare il comando di modifica del codice che può essere eseguito con un solo clic, invece di più passaggi manuali
- E facile accesso alle impostazioni
La finestra di dialogo consente anche di continuare a modificare se non si vuole eseguire alcuna azione automatizzata come è stato possibile in precedenza.
Esiste una limitazione nota, questa nuova finestra di dialogo non sarà disponibile nella versione disponibile a livello generale quando si usa il debugger, ma il lavoro per renderlo disponibile in questo scenario verrà completato in un aggiornamento futuro.
Supporto per le app C++
Quando si usa Visual Studio 2022 e si avvia l'app con il debugger È ora possibile Ricaricamento rapido un'applicazione C++ nativa quando viene eseguita nel debugger (F5) usando il pulsante "Ricaricamento rapido". Ricaricamento rapido è supportato anche per le app compilate con progetti CMake e OpenFolder.
Questa esperienza è basata su modifica e continuazione nativa, per le modifiche supportate, vedere la documentazione.
Scenari e framework app .NET supportati
Da quando è stato annunciato Ricaricamento rapido a maggio 2021, una domanda molto comune da parte degli sviluppatori .NET è stata "Ricaricamento rapido funzionerà con la combinazione di framework/versione delle app .NET?". Abbiamo fatto enormi progressi per fare la risposta SÌ nella maggior parte delle situazioni, ecco i punti salienti.
- Quando si usa Visual Studio 2022 e si avvia l'app con il debugger, l'esperienza di base Ricaricamento rapido funziona con la maggior parte dei tipi di app e delle versioni del framework .NET, che include .NET Framework, .NET Core e .NET 5+ (sia per C# che per VB.NET, come applicabile). Il tipo di app supportate include web (modifiche code-behind), desktop, dispositivi mobili, cloud e altri tipi di progetto. La regola chiave qui è se si usa il debugger si presuppone che Ricaricamento rapido sia disponibile e provare.
- Quando si usa Visual Studio 2022 ma non si usa il debugger (ad esempio usando CTRL+F5 per avviare l'app) Ricaricamento rapido è ora disponibile anche senza il debugger quando la destinazione è la maggior parte dei tipi di app .NET 6. Ciò significa che le app non destinate a .NET 6 (.NET 5 o versioni successive) non supporteranno lo scenario "no debugger" e devono usare il debugger per ottenere supporto Ricaricamento rapido.
- Quando si usa Visual Studio 2022 con un'app .NET 6, sono supportati il maggior numero di scenari. Questa funzionalità non è limitata alla nuova funzionalità "nessun debugger" menzionata in precedenza. Include anche altre nuove funzionalità, ad esempio il supporto per Ricaricamento rapido di progetti Blazor e, più in generale, la modifica di file Razor in qualsiasi ASP.NET app Core e Ricaricamento rapido CSS. L'uso di Visual Studio 2022 e delle app destinate a .NET 6 offre sicuramente l'esperienza di Ricaricamento rapido più potente e speriamo di provare.
Di seguito si esaminerà il riepilogo precedente e si esamineranno altri dettagli.
Visual Studio 2022 con un'app .NET quando si usa il debugger
Quando si usa Visual Studio 2022 e si avvia l'app con il debugger, Ricaricamento rapido funziona con la maggior parte dei framework app, inclusi i tipi di app tipici, ad esempio Console, Windows Form (WinForms), WPF, UWP, WinUI 3* e la maggior parte dei tipi di progetti Web ASP.NET (per le modifiche code-behind), tra cui ASP.NET MVC, API Web e anche progetti Web Form meno recenti. Questo elenco è anche solo un esempio. La risposta reale è ovunque si disponga di .NET e si usa il debugger gestito di Visual Studio, è consigliabile ottenere il supporto di base Ricaricamento rapido.
Ciò significa che anche i progetti come Funzioni di Azure funzionano bene in questo scenario. Vi invitiamo a provare la vostra combinazione e fateci sapere se si trovano problemi.
*WinUI 3 per impostazione predefinita usa il debug in modalità mista che non supporta Ricaricamento rapido. È possibile modificarlo nelle impostazioni del progetto abilitando il debugger gestito che consentirà il corretto funzionamento delle Ricaricamento rapido.
Quando si usa Visual Studio 2022 con un'app .NET, ma non con il debugger
Ricaricamento rapido è ora disponibile senza il debugger quando la destinazione è la maggior parte dei tipi di app .NET 6, inclusi i tipi di progetto, ad esempio Console, WPF, Windows Form (WinForms), ASP.NET Core MVC, API Web e Blazor. Sappiamo che alcuni sviluppatori hanno un buon motivo o preferenza per avviare le app senza il debugger e speriamo che questa funzionalità aggiuntiva darà loro valore per poco o nessun impatto sul tempo di avvio.
Questa funzionalità è esclusiva di .NET 6+ e tali app non destinate a .NET 6 (.NET 5 o versioni successive) non supporteranno lo scenario "no debugger" e devono usare il debugger per ottenere l'accesso alle funzionalità di Ricaricamento rapido.
Tenere presente anche che non tutti i tipi di progetto saranno supportati per lo scenario "no debugger" nella prima versione. In particolare:
- Le app UWP non sono supportate per Ricaricamento rapido senza il debugger, questo è per impostazione predefinita e non esistono piani correnti per migliorarlo.
- Le app Xamarin.Forms destinate a iOS e Android non supportano .NET Ricaricamento rapido (indipendentemente dall'avvio dell'app con o senza il debugger), ma continueranno a supportare Ricaricamento rapido XAML
- Le app MAUI .NET in futuro non supporteranno lo scenario di debugger, ma supporteranno .NET Ricaricamento rapido tramite il debugger
Quando si usa Visual Studio 2022 con un'app .NET 6, la maggior parte dei tipi di scenari è supportata
Gli sviluppatori che sono in grado di usare Sia Visual Studio 2022 che di lavorare su app destinate a .NET 6 otterranno i vantaggi dell'esperienza di Ricaricamento rapido più lucida e in grado di supportare.
Elementi salienti di ciò che è supportato:
- App Blazor (Server e WebAssembly*)
- Modifica dei file Razor sia nei siti Web Blazor che nei normali siti Web di ASP.NET Core
- Css Ricaricamento rapido
- Possibilità di ottenere supporto Ricaricamento rapido durante l'esecuzione di app senza il debugger (come descritto in precedenza in modo più dettagliato)
Gli sviluppatori destinati a .NET 6 continueranno a migliorare ulteriormente gli aggiornamenti futuri di Visual Studio 2022 e le versioni principali e della banda delle funzionalità .NET. Stiamo solo iniziando!
*Nella versione ga di Visual Studio 2022 Ricaricamento rapido supporto per Blazor WebAssembly quando si usa il debugger di Visual Studio non è ancora abilitato. È comunque possibile ottenere Ricaricamento rapido Se si avvia l'app tramite Visual Studio senza il debugger e si sta lavorando per risolvere questo problema in un aggiornamento futuro di Visual Studio.
Scenari di base di ASP.NET supportati
L'esperienza di base Ricaricamento rapido è ora ampiamente supportata per molti scenari di ASP.NET. La funzionalità più disponibile è la possibilità di modificare il code-behind e altri file di classe .NET per la maggior parte dei tipi di applicazioni Web. Questa funzionalità funziona durante l'uso del debugger di Visual Studio ed è presente ovunque sia disponibile Modifica e continuazione in precedenza.
Per gli sviluppatori ASP.NET Core destinati a .NET 6, non sono disponibili funzionalità aggiuntive per le versioni precedenti di .NET, tra cui miglioramenti, ad esempio:
- CSHTML: la modifica di un file CSHTML Razor supporta ora molti tipi di modifiche.
- Aggiornamento del browser: la modifica di un file razor ora aggiornerà automaticamente le modifiche nel Web browser durante il debug. In precedenza era disponibile solo all'avvio dell'app senza il debugger.
- CSS Ricaricamento rapido: è ora possibile modificare i file CSS mentre l'app è in esecuzione e le modifiche verranno applicate immediatamente all'app in esecuzione durante la digitazione.
- Nessun debugger: si otterrà ora Ricaricamento rapido supporto quando si usa Visual Studio per avviare l'app Web senza il debugger (CTRL-F5).
Nota: quando si lavora su un'app Blazor Wasm e si usa Visual Studio 2022 (17.0), Ricaricamento rapido per le pagine razor funziona solo quando si avviano app senza il debugger. Verrà aggiunto il supporto del debugger in un aggiornamento futuro.
Modifiche .NET supportate
L'esperienza di Ricaricamento rapido .NET è basata sul meccanismo Modifica e continuazione e sono stati apportati miglioramenti per supportare altri tipi di modifiche che vanno oltre quanto originariamente possibile nelle versioni precedenti. I miglioramenti includono:
- Aggiunta, aggiornamento o eliminazione di attributi personalizzati
- Aggiunta o aggiornamento di struct record
- Aggiunta o aggiornamento di direttive #line
- Modifica di espressioni switch
- Modifica di file con direttive #line, incluse le modifiche alla direttiva stessa
- Modifica di istruzioni di primo livello
- Modifica del codice che usa una delle nuove funzionalità di C# 10, ad esempio direttive using globali, spazi dei nomi con ambito file, espressioni lambda migliorate e costruttori di struct senza parametri
- Ridenominazione dei parametri lambda
- Ridenominazione dei parametri dei metodi esistenti
I miglioramenti precedenti sono disponibili sia per Ricaricamento rapido che per le esperienze di modifica e continuazione.
Aggiornamenti aggiuntivi
- Ricaricamento rapido e Modifica e Continua con più processi: È ora possibile usare in modo affidabile le esperienze di Ricaricamento rapido e Modifica e Continuazione quando collegate a più processi. In precedenza questa funzionalità non era completamente supportata e non funzionava sempre correttamente, questa funzionalità è stata corretta.
- Messaggi di errore/avviso aggiornati: sono stati aggiornati molti messaggi di errore/avviso per essere più chiari quando i messaggi si applicano sia a EnC che a Ricaricamento rapido. Questa operazione è stata eseguita rendendo i messaggi più generici in modo che la terminologia di modifica e continuazione non venga usata durante le operazioni di Ricaricamento rapido
- Unit Testing più rapido delle app .NET: Ricaricamento rapido tecnologia può ora essere usata come funzionalità sperimentale per velocizzare gli unit test quando è destinata a .NET 6. Per altre informazioni, vedere la sezione test di queste note sulla versione
Scenari .NET non supportati
Anche nella versione finale ci saranno ancora alcuni scenari non supportati di cui tenere conto:
- Le app Xamarin.Forms non supportano i Ricaricamento rapido .NET negli scenari iOS e Android. Riceverai alcuni Ricaricamento rapido quando hai come destinazione un'app UWP. Questo è in base alla progettazione e non ci aspettiamo di apportare ulteriori miglioramenti. Nota: i Ricaricamento rapido XAML continueranno a essere disponibili e supportati per i clienti di Xamarin.Forms nell'SDK più recente.
- Le app MAUI .NET non sono supportate in questa versione, per l'uso di .NET MAUI e Ricaricamento rapido vedere le note sulla versione di Visual Studio 2022 Update 1 Preview 1 per informazioni dettagliate.
- Le app compilate con F# o quelle destinate a .NET Native non supporteranno Ricaricamento rapido.
Produttività .NET
Il refactoring degli spazi dei nomi di sincronizzazione è ora disponibile nel menu (clic con il pulsante destro del mouse) di un progetto o di una cartella in Esplora soluzioni, consentendo di sincronizzare facilmente gli spazi dei nomi in modo che corrispondano alla struttura di cartelle.
La configurazione dell'analisi del codice in background è ora disponibile nel menu Esplora soluzioni (fare clic con il pulsante destro del mouse). Fare clic con il pulsante destro del mouse sul nodo della soluzione in Esplora soluzioni e selezionare Analizza e pulizia del codice. Selezionare quindi Imposta ambito di analisi per configurare l'ambito per l'analisi del codice in background.
- È ora disponibile un refactoring che introduce un parametro che sposta un'espressione da un'implementazione del metodo ai chiamanti aggiungendo un nuovo parametro. Posizionare il cursore sulla riga contenente l'espressione o evidenziare l'espressione. Premere (CTRL+.) per attivare il menu Azioni rapide e refactoring . Selezionare Introduce parametro per {0} o Introduce parametro per tutte le occorrenze di {0}. Entrambe le opzioni avranno tre opzioni del riquadro a comparsa per (1) inserire l'espressione aggiornata in tutti i siti di chiamata, (2) estrarre e creare un nuovo metodo che restituisce l'espressione e aggiunge un argomento nei siti di chiamata oppure (3) creare un overload del metodo che contiene l'espressione e chiama il metodo originale.
- È disponibile un nuovo comando denominato Track Value Source che consente di eseguire l'analisi del flusso di dati per determinare il modo in cui determinati valori potrebbero essere passati a un determinato punto e dove potrebbe essere passato. Fare clic con il pulsante destro del mouse su un membro specificato e scegliere Traccia origine valore dal menu di scelta rapida.
- Verrà visualizzata la finestra Rilevamento valori che consente di analizzare i risultati:
- È stata aggiunta un'opzione per sottolineare le variabili riassegnate. Questa opzione è disattivata per impostazione predefinita, quindi sarà necessario abilitarla in Strumenti > Opzioni > Editor > di testo C# o Basic Advanced (Avanzate di base > ) e selezionare Underline reassigned variables (Sottolinea variabili riassegnate).
- È stata aggiunta un'opzione di ricerca nella finestra di dialogo Genera sostituzioni, consentendo di cercare rapidamente e selezionare i membri da sostituire.
- Informazioni rapide per i tag di codice> XML <ora conservano gli spazi vuoti e i blocchi CDATA. Posizionare il cursore sull'elemento. Le Informazioni rapide visualizzeranno quindi gli stili supportati dai commenti XML sopra il codice.
- La finestra Trova tutti i riferimenti raggruppa ora progetti a più destinazioni per ridurre il rumore visivo.
- È ora disponibile un refactoring che rimuove i tipi ripetitivi in Visual Basic.
- Passare a Implementazione non passerà più ai membri con dichiarazioni astratte sottoposte a override.
Strumenti del linguaggio C#
In C# 8.0 sono stati introdotti tipi riferimento nullable che consentono di dichiarare se è previsto null. Per usare i tipi riferimento nullable, è necessario aggiungere l'elemento <Nullable>
enable</Nullable>
al file di progetto oppure aggiungere il #nullable abilitare il pragma a ogni file di origine nel progetto. Per semplificare questo processo, è ora necessario includere automaticamente l'abilitazione <Nullable>
</Nullable>
per i nuovi progetti .NET.
In C# 10.0 viene introdotto lo spazio dei nomi con ambito file che consente di non annidare le definizioni di classe all'interno di uno spazio dei nomi. È ora disponibile un refactoring per convertire uno spazio dei nomi in uno spazio dei nomi con ambito file. Per usare lo spazio dei nomi con ambito file, è prima necessario aggiungere l'elemento <LangVersion>
preview</LangVersion>
al file di progetto. Posizionare quindi il cursore su uno spazio dei nomi. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Converti nello spazio dei nomi con ambito file.
È ora disponibile un refactoring da preferire is not null
is object
quando viene applicato ai tipi valore. Per usare questo nuovo refactoring posizionare il cursore su un controllo del tipo. Premere (Ctrl+.) per attivare il menu Azioni rapide e refactoring. Selezionare Prefer null check over type check .Select Prefer null check over type check.
Passare a origini decompilate
Passare a Origini decompilate in ora attivo per impostazione predefinita, consentendo di passare alle dichiarazioni dei tipi di libreria. Passare a Origini decompilate è disponibile quando si richiama Vai a definizione in un simbolo di libreria nel codice sorgente e nelle origini decompilate.
Miglioramenti dell'editor
I commenti XML genereranno ora automaticamente un <exception>
tag all'interno di un <summary>
tag che consente di aggiungere una descrizione quando un metodo genera in modo esplicito eccezioni.
In Visual Studio 2019 è stato rilasciato Il margine di ereditarietà aggiunge icone ai margini che rappresentano le implementazioni e gli override del codice. Facendo clic sulle icone dei margini di ereditarietà verranno visualizzate le opzioni di ereditarietà che è possibile selezionare per spostarsi. In questa versione Il margine di ereditarietà è abilitato per impostazione predefinita. Per disabilitare Il margine di ereditarietà passare a Strumenti>Opzioni>Editor>di testo C# o Basic>Avanzate e deselezionare Abilita margine di ereditarietà.
Linguaggi di programmazione
- Struct e
with
espressioni di record in struct (record struct Point(int X, int Y);
,var newPoint = point with { X = 100 };
). - Direttive using globali:
global using
le direttive evitano di ripetere le stesseusing
direttive in molti file nel programma. - Assegnazione definita migliorata: l'assegnazione definita e l'analisi dei valori Null gestiscono meglio i modelli comuni, ad
dictionary?.TryGetValue(key, out value) == true
esempio . - Stringhe interpolate costanti: le stringhe interpolate composte da costanti sono costanti.
- Modelli di proprietà estesi: i modelli di proprietà consentono l'accesso ai membri annidati (
if (e is MethodCallExpression { Method.Name: "MethodName" })
). - Record sealed ToString: un record può ereditare un record di base con un oggetto sealed
ToString
. - Generatori di origine incrementali: migliorano l'esperienza di generazione di origine in progetti di grandi dimensioni suddividendo la pipeline di generazione di origine e memorizzando nella cache i risultati intermedi.
- Decostruzioni miste: le assegnazioni di decostruzione e le dichiarazioni di decostruzione possono essere combinate (
(existingLocal, var declaredLocal) = expression
). - AsyncMethodBuilder a livello di metodo: AsyncMethodBuilder usato per compilare un
async
metodo può essere sottoposto a override in locale. - #line direttiva span: consentire generatori di origine come il controllo con granularità fine Razor del mapping di linee con
#line
direttive che specificano l'intervallo di destinazione (#line (startLine, startChar) - (endLine, endChar) charOffset "fileName"
). - Miglioramenti dell'espressione lambda: gli attributi e i tipi restituiti sono consentiti nelle espressioni lambda; le espressioni lambda e i gruppi di metodi hanno un tipo delegato naturale (
var f = short () => 1;
). - Gestori di stringhe interpolati: i tipi di gestori di stringhe interpolati consentono una formattazione efficiente delle stringhe interpolate nelle assegnazioni e nelle chiamate.
- Spazi dei nomi con ambito file: i file con un singolo spazio dei nomi non richiedono parentesi graffe o rientri aggiuntivi (
namespace X.Y.Z;
). - Costruttori di struct senza parametri: supportano costruttori senza parametri e inizializzatori di campi dell'istanza per i tipi di struct.
- CallerArgumentExpression: questo attributo consente di acquisire le espressioni passate a un metodo come stringhe.
Vedere lo stato delle funzionalità del linguaggio C# e le modifiche che causano un'interruzione per maggiori dettagli.
Razor (ASP.NET Core) Editor
- È ora disponibile Ricaricamento rapido supporto nei file Razor.
Sono stati apportati miglioramenti significativi alle prestazioni dell'editor Razor.
Abbiamo migliorato la formattazione e il rientro, rendendola più affidabile e significativamente più veloce.
Sono stati aggiunti nuovi colori Razor. È possibile personalizzare questi colori in Opzioni > strumenti > Tipi di carattere e colori dell'ambiente>.
TagHelpers è ora colorato e supporta la classificazione nelle descrizioni comandi di completamento di Informazioni rapide e IntelliSense.
Sono stati migliorati l'evidenziazione e lo spostamento del ramo angolo per i costrutti Razor.
I commenti hanno ora il completamento automatico, il rientro intelligente, l'inclusione automatica delle continuazioni di commenti e l'esplorazione dei commenti in blocchi.
Anteprima sperimentale anticipata dei test remoti
È disponibile un'anteprima sperimentale molto precoce dell'abilitazione dell'esecuzione di test in ambienti remoti, ad esempio contenitori Linux, WSL e connessioni SSH. Anche se si tratta di una funzionalità molto preziosa, chiediamo la pazienza perché questa funzionalità è ancora in uno stato sperimentale molto precoce durante la raccolta di commenti e suggerimenti. Si potrebbe non riscontrare la fluidità che normalmente si ottiene come si può immaginare che ci sono molti scenari di angolo in come possiamo comunicare e gestire un ambiente connesso da Visual Studio. Ecco alcuni requisiti per l'uso di questa versione sperimentale di test remoti:
- È necessario installare le dipendenze necessarie nell'ambiente di destinazione. Ciò significa che se si vuole che i test destinati a .NET 3.1 vengano eseguiti in un contenitore Linux, è necessario assicurarsi che il contenitore abbia installato .NET 3.1 tramite dockerfile. Un giorno è consigliabile creare un'esperienza di installazione che consenta l'acquisizione senza problemi di una delle dipendenze di test, ma per il momento stiamo lasciando la maggior parte del provisioning dell'ambiente fino alla specifica dell'utente.
- Pianificare il monitoraggio dello stato della connessione all'ambiente remoto tramite il riquadro Output-Tests>. Ad esempio, se il contenitore è stato arrestato, verrà visualizzato un messaggio nel riquadro Output-Tests>. Non è possibile rilevare tutti gli scenari, quindi pianificare di controllare l'output se sembra che la connessione sia stata persa. In particolare se il riquadro Output non è impostato su "Test", è possibile che il messaggio non venga visualizzato immediatamente. Stiamo ancora sperimentando il miglior modello di notifica quando le connessioni vengono perse in modo che il feedback sia molto gradito! Se la connessione è stata persa, è possibile usare l'elenco a discesa Ambiente di test remoto in Esplora test per ripristinare la connessione all'ambiente locale e quindi selezionare nuovamente l'ambiente remoto per reinizializzare la connessione.
- L'anteprima sperimentale ha come ambito solo i test .NET per il momento. Siamo consapevoli dell'interesse a supportare le esperienze di test remoti C++ e speriamo di fornire anche questo risultato.
Come è possibile provare i test remoti?
- I documenti ufficiali arriveranno dopo il periodo sperimentale. Per il momento, ecco ciò che è necessario per iniziare a testarlo.
- Gli ambienti vengono specificati usando
testenvironments.json
nella radice della soluzione. La struttura di file JSON segue lo schema seguente:
{
"version": "1", // value must be 1
"environments": [
{ "name": "<unique name>", ... },
...
]
}
- Connessioni al contenitore locale
- Per connettersi a un contenitore in esecuzione in locale, è necessario disporre di Docker Desktop nel computer locale. Facoltativamente, abilitare l'integrazione WSL2 per ottenere prestazioni migliori.
- Per un Dockerfile, l'ambiente può essere specificato nella
testEnvironments.json
radice della soluzione:
Ad esempio:{ "name": "<name>", "localRoot": "<path to local environment>", // optional "type": "docker", "dockerImage": "<docker image tag>", }
{ "version": "1", "environments": [ { "name": "linux dotnet-core-sdk-3.1", "type": "docker", "dockerImage": "testenv" } ] }
- Di seguito è riportato un esempio di Dockerfile per l'esecuzione di test destinati a .NET 3.1.
FROM mcr.microsoft.com/dotnet/core/sdk:3.1
- Compilare il contenitore usando il comando seguente (incluso "." alla fine):
docker build -t <docker image name> -f <path to Dockerfile> .
- Connessioni WSL2 locali
- È necessario abilitare l'integrazione WSL2 nel computer locale.
- L'ambiente può essere specificato nella
testEnvironments.json
radice della soluzione seguendo questo schema:{ "version": "1", "environments": [ { "name": "WSL-Ubuntu", "type": "wsl", "wslDistribution": "Ubuntu" } ] }
- Connessioni SSH
- Passare a Strumenti > Opzioni > multipiattaforma > Gestione connessioni per aggiungere o rimuovere connessioni SSH. Selezionando "Aggiungi" sarà possibile immettere il nome host, la porta e le credenziali necessarie.
- L'ambiente può essere specificato nella
testEnvironments.json
radice della soluzione con quanto segue:{ "version": "1", "environments": [ { "name": "ssh-remote", "type": "ssh", "remoteUri": "ssh://user@hostname:22" } ] }
- L'ambiente attivo viene selezionato tramite un elenco a discesa nella barra degli strumenti esplora test. Attualmente può essere attivo un solo ambiente di test alla volta.
- Dopo aver selezionato un ambiente, i test vengono individuati ed eseguiti nel nuovo ambiente.
È ora possibile eseguire ed eseguire il debug dei test all'interno dell'ambiente remoto.
Esplora test potrebbe richiedere di installare alcuni prerequisiti dell'ambiente mancanti e di tentare di installarli, ma in definitiva si lascia la maggior parte del provisioning dell'ambiente remoto fino alla specifica dell'utente.
Ricaricamento rapido in Esplora test [sperimentale]: È ora possibile provare una nuova funzionalità sperimentale che velocizza l'esperienza di test usando Ricaricamento rapido tecnologia dietro le quinte. Ciò significa che dopo la prima esecuzione del test in cui è ancora necessaria una compilazione completa, è possibile apportare modifiche secondarie, eseguire i test e tutti gli aggiornamenti verranno riflessi senza dover eseguire di nuovo una compilazione completa. Per iniziare e per altre avvertenze, vedere i dettagli seguenti:
- Questa esperienza è disponibile solo per i progetti destinati a .NET 6 ed è necessario acconsentire esplicitamente passando a "Strumenti > Opzioni > test"
Quando questa opzione è abilitata, i test vengono aggiornati anche con modifiche non salvate nell'editor. Non viene compilato, quindi i file binari sul disco nella cartella bin non sono aggiornati. Ciò significa che potrebbero verificarsi discrepanze tra ciò che si trova su disco e i risultati dei test in Visual Studio. Per risolvere questi problemi e prima di eseguire l'archiviazione, assicurarsi di eseguire una compilazione completa con (CTRL+MAIUSC+B). Qualsiasi compilazione esplicita sostituirà i risultati del test di ricaricamento rapido con i normali risultati del test di compilazione completa.
Esistono alcuni tipi di modifiche che il ricaricamento rapido non può riprendere e in questi casi, per impostazione predefinita verrà eseguito il comportamento precedente dell'esecuzione di una compilazione completa. Si noti anche che vengono rilevate solo le modifiche apportate a Visual Studio, i casi opachi nell'editor, ad esempio la modifica delle destinazioni, potrebbero tornare a richiedere una compilazione completa.
Alcune modifiche di grandi dimensioni( ad esempio la ridenominazione di 1000+ nomi di metodi) possono richiedere più tempo per ricaricare ad accesso frequente rispetto alla semplice compilazione. In questi casi, un messaggio verrà stampato nell'output che richiede agli utenti di eseguire una ricompilazione completa anziché attendere il ricaricamento rapido.
Le tracce dello stack non sono ancora disponibili con ricaricamento rapido in Esplora test. Se è necessario usare l'analisi dello stack, è consigliabile eseguire una compilazione completa.
Strumenti di test
Mostra in Esplora test (CTRL+E,S):Mostra in Esplora test è la possibilità di passare da dove si trova il cursore in un metodo di test nell'editor in cui si trova il test in Esplora test. Questo può ricordare una funzionalità simile denominata Sincronizza con documento attivo che mantiene il documento attualmente in uso evidenziato nella Esplora soluzioni. Questo è stato uno dei migliori elementi votati nella community degli sviluppatori, quindi grazie a tutti coloro che hanno votato e ci hanno aiutato a classificare in ordine di priorità questa funzionalità! Mostra in Esplora test è disponibile anche dal menu di scelta rapida dell'editor, dal glifo del test codeLens e dal pulsante destro del mouse nel Esplora soluzioni.
Aggiornamento del supporto test di carico Web e test codificati dell'interfaccia utente: il registratore test di carico Web è disponibile in Visual Studio 2022. Il registratore di test codificati dell'interfaccia utente non verrà incluso in Visual Studio 2022. Sarà comunque possibile eseguire test codificati dell'interfaccia utente e creare nuovi test scrivendo codice in Visual Studio 2022, ma il registratore si basa su dipendenze a 32 bit che non sono fattibili per la conversione. È comunque possibile installare Visual Studio 2019 side-by-side per usare il registratore codificato dell'interfaccia utente. Come promemoria, il test di carico Web e il test codificato dell'interfaccia utente sono stati deprecati nel 2019 e si prevede di rimuoverli dal prodotto quando è possibile ridurre al minimo l'impatto sugli utenti. Invitiamo vivamente gli utenti interessati ai test dell'interfaccia utente Web per adottare il nuovo framework di test Web multipiattaforma e open source Playwright. Oltre a supportare tutti i principali browser e una gestione molto migliore del codice asincrono, Playwright ha anche funzionalità di registrazione dei test predefinite.
Percorsi attendibili
- Nell'ambito del rinnovo delle "Impostazioni di attendibilità", è stato rimosso il controllo "Contrassegno del Web" e è stata aggiunta una finestra di dialogo di avviso visualizzata quando si tenta di aprire il codice (ad esempio file, progetti o cartelle) che non è stato considerato attendibile in precedenza
- Il codice può ora essere considerato attendibile nella cartella corrente o nel percorso della cartella padre
- I progetti creati dall'utente vengono aggiunti automaticamente all'elenco delle posizioni attendibili dell'utente
- È possibile ignorare i controlli di attendibilità per le posizioni temporanee create dalla funzionalità di Visual Studio
Prima che il contenuto (ad esempio, soluzione, progetto, file o cartella) venga aperto all'interno dell'IDE, si verificherà se il percorso della cartella è stato considerato attendibile in precedenza.
Se viene rilevato codice non attendibile, verrà visualizzata una finestra di dialogo di avviso che segnala le implicazioni per la sicurezza e chiede di considerare attendibile il codice prima della normale operazione dell'IDE.
Nota: anche se questa funzionalità è attualmente disattivata per impostazione predefinita, può essere abilitata tramite Opzioni > Impostazioni > di attendibilità Riquisizione di una decisione di attendibilità prima di aprire il contenuto
Aggiornamenti del nodo Origini esterne
Il nodo Origini esterne in Esplora soluzioni include ora anche il supporto C++. È stato inoltre aggiunto un nuovo sottonodo che offre tutti i moduli con simboli non ancora caricati.
È anche possibile usare il menu di scelta rapida del clic con il pulsante destro del mouse per caricare i simboli direttamente da Esplora soluzioni in modo che i moduli possano essere visualizzati nei nodi di origine esterni. Anche i file del nodo Origini esterne sono ordinati in ordine alfabetico.
Icona aggiornata e aggiornata
- Nell'ambito dell'obiettivo di aggiornare l'interfaccia utente per Visual Studio 2022, sono disponibili icone appena aggiornate e aggiornate nell'IDE in base alla coerenza, alla leggibilità e alla familiarità.
Ricaricamento rapido XAML
Sono state aggiornate le impostazioni di Ricaricamento rapido XAML e le barre degli strumenti in-app per garantire maggiore chiarezza che le impostazioni e nelle esperienze dell'app sono correlate a Ricaricamento rapido XAML e non a .NET Ricaricamento rapido.
Abbiamo anche semplificato il riquadro delle impostazioni per organizzare meglio le opzioni comuni insieme.
Anteprima di XAML Live
Xaml Live Preview è ora disponibile per gli sviluppatori WPF, UWP, WinUI e Xamarin.Forms che eseguono le app nell'emulatore Android o come app desktop UWP. Live Preview acquisisce un'interfaccia utente delle applicazioni in esecuzione e la inserisce in una finestra ancorata in Visual Studio. In questo modo è più semplice usare xaml Ricaricamento rapido per modificare l'app durante la visualizzazione di tali modifiche all'interno di Visual Studio stesso, senza la necessità di eseguire tabulazioni tra l'app in esecuzione e Visual Studio apportando modifiche al codice XAML in tempo reale.
Attività iniziali:
- Avviare un'applicazione supportata usando il debugger
- Attivare l'anteprima live XAML, tramite la ricerca rapida digitando "Anteprima live XAML" o usando il pulsante "Mostra in anteprima live XAML" sulla barra degli strumenti in-app
Una volta avviata l'esperienza, saranno disponibili le funzionalità seguenti:
- Scorrimento e zoom: è possibile eseguire la panoramica e lo zoom della finestra che acquisisce l'interfaccia utente delle app, in modo da renderla adatta alle proprie esigenze per mostrare l'app completa o solo le parti che si sta tentando di modificare. La panoramica e lo scorrimento funzionano con un touch pad (scorrimento di due dita), la rotellina del mouse o CTRL + Clic per trascinare il contenuto.
- Righelli: è possibile aggiungere uno o più righelli orizzontali/verticali per sovrapporre l'app in esecuzione. Queste linee possono quindi essere spostate nella posizione utilizzando il mouse o la tastiera. Quando si spostano righelli con tastiera usare i tasti di direzione per il posizionamento preciso e ctrl + tasto freccia per il posizionamento rapido. È anche possibile eliminare i righelli selezionandoli (facendo clic su di essi) e premendo il tasto di eliminazione.
- Suggerimenti per selezione elementi e info: con la selezione degli elementi puoi selezionare l'elemento XAML che vuoi modificare usando la stessa funzionalità che potresti usare dalla barra degli strumenti Della struttura ad albero visuale attiva o nella barra degli strumenti in-app. Dopo aver selezionato è anche possibile abilitare la nuova funzionalità "suggerimenti informazioni" per ottenere informazioni aggiuntive sull'elemento selezionato, ad esempio tipi di carattere, colori, margini/informazioni di riempimento e altro ancora. Quando si usa Selezione elementi è consigliabile abilitare Anteprima elemento selezionato, tramite il pulsante della barra degli strumenti Albero visuale attivo o Opzioni > di debug > Ricaricamento rapido impostazioni, per passare al codice XAML di origine.
- Cambio di Windows: è possibile controllare quali finestre dell'app vengono acquisite.
Esperienza di associazione XAML migliorata
- Icone del data binding migliorate in Controllo proprietà. È ora possibile accedere rapidamente alla finestra di dialogo data binding facendo clic su un'icona "cilindro" accanto a una proprietà ed è possibile cancellare l'associazione facendo clic sull'icona "x".
- Aggiunta della scheda Binding in Azioni rapide per creare associazioni con pochi clic dalla finestra di progettazione XAML.
- Aggiunta della casella combinata Proprietà di destinazione alla finestra di dialogo Data Binding per selezionare la proprietà in movimento.
Problemi più votati dalla community degli sviluppatori
Vedere l'elenco completo delle correzioni della community degli sviluppatori in questa versione.
- Formattazione C++ non corretta quando
Place 'else' on a new line
è disabilitata. - Finestra di dialogo bloccata durante la modifica e continua la verifica di eventuali aggiornamenti del codice
- Problema di avvio del simulatore Android vs in Win 11 - Hypervisor
- Finestra di dialogo bloccata durante la modifica e continua la verifica di eventuali aggiornamenti del codice
- Problema di avvio del simulatore Android vs in Win 11 - Hypervisor
- Impossibile eseguire la distribuzione in un iPhone, Errore MT1001: Impossibile trovare un'applicazione nella directory specificata
- Non è possibile eseguire il debug di più Funzioni di Azure dotnet 5
- Visual Studio non risponde durante il debug dell'applicazione UWP
- Blazor WebAssembly: l'esecuzione del ricaricamento rapido quando il browser viene chiuso genera un'eccezione non utile
- Arresti anomali di Visual Studio senza motivo
- Colorazione della sintassi C++ non funzionante quando si usa std:c++lastest nel set di strumenti della piattaforma 143
- La ricerca nel file non funziona in vs2022 preview 3
- Visual Studio non ricarica tutti i file di progetto modificati dopo la modifica del ramo
- Errore durante l'attivazione del server di linguaggio
- Facendo clic con il pulsante destro del mouse su qualsiasi elemento in Esplora soluzioni e scegliendo "Archiviazione" viene visualizzato un messaggio insolito. Impossibile archiviare le modifiche.
- L'interfaccia utente di Visual Studio non risponde quando l'output del log di compilazione è eccessivo durante la compilazione (ad esempio: dettagli di diagnostica)
- Sviluppo di Linux con C++ - Collegamento statico non corretto
- I modelli T4 in VS2022 richiedono usi incompatibili
- I moduli C++20 non riescono a raccogliere la specializzazione o gli overload dei modelli provenienti da un modulo diverso
- Il salvataggio del file in una sessione "Live Share" apre la finestra di dialogo "Salva con nome" anziché salvare direttamente il file
- Il progetto C++ non può ricaricare un file esterno al progetto all'avvio
- Regressione non corretta con puntatori a funzione
- Diagnostica errata della chiamata dell'operatore ambigua (C2593) con /permissive- e friend
- Ricaricamento rapido non funziona per Xamarin.Forms UWP/IOS dopo l'aggiornamento alla versione 16.10
- Errore durante il caricamento del modello Entitlements.plist
- Errore di IntelliSense per il costruttore predefinito dllimport constexpr
- Il sistema non riesce a trovare il file specificato(durante lo spostamento facendo doppio clic sul messaggio di errore di compilazione. )
- Progetto C++ non più compilato in VS2022: impossibile trovare l'assembly 'mscorlib.dll'
- L'editor Razor in VS2022 Preview 2.1 è lento
- IntelliSense ha esito negativo per C++20 e
- PackageId:Microsoft.WebView2.arm64; PackageAction:Install; ReturnCode:-2147219199
- Avvisi di blocco non corretti da parte dell'analizzatore C26110
- 16.10 l'aggiornamento interrompe MSTest DataSourceAttribute con testrunconfig
- L'ottimizzazione globale MSVC del programma genera un output non corretto
- IDE Si blocca, sfarfallio delle schede in condizioni sconosciute
- Aggiunta del supporto per la strumentazione di dll con callback TLS (instrumentato tramite vsinstr.exe)
- VS2019 16.10 ASP.NET WEBFORM中不能选择事件
- Errore irreversibile (eccezione da HRESULT: 0x8000FFFF (E_UNEXPECTED)) nel progetto a documento singolo MFC
- Il modello primario scelto rispetto alla specializzazione comporta un errore di compilazione
- Impossibile eseguire l'aggiornamento dall'anteprima 1.1 all'anteprima 2.0. È stato rilevato un ciclo nel grafico delle dipendenze: Microsoft.VisualStudio.ComponentGroup.UWP.VC
- Errore durante l'installazione di Visual Studio 2022 Preview in Windows Server 2022.
- Visual Studio 2022 Preview 1 arresta in modo anomalo l'IDE quando si usa Compila tutto.
- Il debug di Xamarin Android con l'emulatore Android si arresta in modo anomalo e riavvia Visual Studio 2022.
- Non è possibile installare alcuna versione precedente di Visual Studio. Il download ha esito negativo perché la firma non è valida
- Avvisi di analisi del codice/PREfast C26404, C26406, C26407 regressione delle prestazioni in CppCoreCheck::P ointerSafetyXtension::SearchSmartPtrsAndReferences
- Errore interno del compilatore con std::to_array quando la variabile è globale e di tipo char const
- Errori di compilazione per le intestazioni esterne
- C3493 con /std:c++latest usando l'associazione strutturata in lambda
- Il pulsante Invia commenti e suggerimenti non funziona in VS 2022 quando sono installati gli strumenti Python
- File aspx interrotti dopo l'aggiornamento della versione 16.10
- Il compilatore C++ genera codice non valido per il metodo constexpr
- Nessun avviso per la variabile inutilizzata quando è stato dichiarato const
- Collisione dei nomi dei moduli C++
- GC raccoglie durante la chiamata al metodo sulla classe di riferimento c++/cli
- La pubblicazione di Python Django con il progetto WebDeploy ha esito negativo dopo l'aggiornamento di Visual Studio alla versione 16.9
- ICE: Ottimizzazione ARM64 per /std:c++latest
- VS 16.3.0 .NET Core 3.0 Blazor Server App source code grey-out e perdere IntelliSense dopo la distribuzione
- Chiave di firma del codice iOS 'iPhone Distribution: Microframe Corp
(xxxxx)'
not found in keychain - La finestra Strumenti di diagnostica carica la miniatura e non verrà ridimensionata correttamente.
- Errore del compilatore 2694 durante il tentativo di chiamare make_shared nella classe con la generazione di distruttori in MSVC 16.9 Preview 2.
- Si è verificato un errore durante l'elaborazione dello snapshot non è riuscito a elaborare l'heap gestito.
- MSVC consente l'inizializzazione predefinita di const int in new-expression.
- È stato ricevuto un avviso C5219 nell'intestazione STL "complex".
- La descrizione comando blocca i risultati della ricerca.
- Visual Studio ha generato un'eccezione strana.
- Il compilatore Intel C++, ICL, presenta un errore di compilazione perché l'uso dei concetti nel file di intestazione non è protetto con ifdef __cpp_lib_concepts.
- Si verifica un errore interno del compilatore durante l'espansione di __pragma(optimize) con /Zc:preprocessor.
- Tipo non corretto di "func" all'interno di espressioni lambda nel contesto non valutato.
- Programma di installazione di Visual Studio si arresta in modo anomalo quando si fornisce vsconfig
- Recupero di un progetto dll MFC modello di errore di compilazione predefinito dopo l'aggiunta di una nuova classe di dialogo tramite procedura guidata.
- L'installazione offline di Visual Studio per lo sviluppo di Native Desktop C++ non funziona correttamente.
- La connessione al progetto VsTS di Azure tramite Visual Studio causa l'interruzione della risposta dell'interfaccia utente.
- Le caselle di testo all'interno di Opzioni sono illeggibili se si usa un tipo di carattere più grande.
- Visual Studio aggiunge un nuovo elemento in una cartella smette di rispondere.
- Eccezioni nullreference costanti durante la modifica dei file js/cshtml.
- Si è verificato un errore durante l'attivazione del server di linguaggio remoto, C#/Visual Basic Language Server Client.
- Si verifica un errore interno quando /E viene usato con /experimental:preprocessor e __pragma.
Problemi noti
Vedere tutti i problemi aperti e le soluzioni alternative disponibili in Visual Studio 2022 seguendo il collegamento seguente.
Feedback e suggerimenti
I commenti degli utenti sono molto apprezzati. È possibile segnalare un problema o suggerire una funzionalità usando l'icona Invia commenti e suggerimenti nell'angolo in alto a destra del programma di installazione o dell'IDE di Visual Studio o dall'invio > di commenti e suggerimenti. È possibile tenere traccia dei problemi usando Visual Studio Developer Community, in cui si aggiungono commenti o si trovano soluzioni. È anche possibile usufruire gratuitamente del supporto per l'installazione con Assistenza live chat.
Blog
Sfruttare i vantaggi delle informazioni dettagliate e delle raccomandazioni disponibili nel sito dei blog sugli strumenti di sviluppo per mantenersi aggiornati su tutte le nuove versioni con post di approfondimento su una vasta gamma di funzionalità.