Configurare un'unità di sviluppo in Windows 11

L'unità di sviluppo rappresenta una nuova tipologia di volume di archiviazione, progettata per ottimizzare le prestazioni per i carichi di lavoro essenziali degli sviluppatori.

L'unità di sviluppo usa la tecnologia ReFS per ottimizzare specificamente il file system. Questo offre un maggiore controllo sulle impostazioni e sulla sicurezza del volume di archiviazione, inclusa la possibilità di designare l'affidabilità, configurare la protezione antivirus e gestire i filtri collegati a livello amministrativo.

Per ulteriori dettagli relativi ai miglioramenti medi nelle operazioni di sviluppo più frequenti, vedere il post del blog Dev Drive for Performance Improvements in Visual Studio and Dev Boxes.

Come configurare un’unità di sviluppo

Per configurare un'unità di sviluppo, aprire le Impostazioni di Windows e andare su Sistema>Archiviazione>Impostazioni di archiviazione avanzate>Dischi & volumi. Selezionare Crea un’unità di sviluppo. I volumi di archiviazione esistenti non possono essere convertiti in unità di sviluppo. La designazione dell’unità di sviluppo avviene solo al momento della formattazione originale.

Prima di configurare una Dev Drive, assicurarsi che i prerequisiti siano soddisfatti. È anche possibile configurare una Dev Drive usando la configurazione del computer Dev Home.

Screenshot dei dischi di > archiviazione > di sistema & dei volumi

Prerequisiti

  • Windows 11, Build #10.0.22621.2338 o successiva (Verifica la presenza di aggiornamenti Windows)
  • Memoria consigliata 16gb (minimo 8gb)
  • Minimo 50 gb di spazio libero su disco
  • Le unità di sviluppo sono disponibili in tutte le versioni di SKU di Windows.
  • Autorizzazioni di amministratore locale.

Quando si esegue l'aggiornamento alla versione più recente di Windows 11, potrebbe essere necessario un riavvio aggiuntivo prima che la funzionalità Unità di sviluppo diventi disponibile. Se si lavora in un ambiente aziendale, l'amministratore della sicurezza dovrà configurare i criteri di sicurezza dell'Unità di sviluppo per abilitare l'Unità di sviluppo.

Avviso

L'unità di sviluppo è destinata solo agli scenari chiave per gli sviluppatori e le impostazioni personalizzate saranno comunque coperte dalle impostazioni dei Criteri di gruppo in ambienti aziendali. Altre informazioni su come Configurare i criteri di sicurezza dell'Unità di sviluppo.

Configurare le opzioni

Verranno fornite tre opzioni:

  1. Crea nuovo disco rigido virtuale - Crea volume in un nuovo disco rigido virtuale
  2. Ridimensiona un volume esistente - Crea un nuovo spazio non allocato per la compilazione
  3. Spazio non allocato su disco - Usa lo spazio non allocato su un disco esistente. *Questa opzione verrà visualizzata solo se in precedenza è stato configurato lo spazio non allocato nella risorsa di archiviazione.

Screenshot della creazione di un'unità di sviluppo

Come scegliere tra l'uso di una partizione disco o di un disco rigido virtuale (VHD)

Esistono vantaggi e compromessi da considerare quando si sceglie se creare una partizione disco o creare un nuovo VHD per archiviare la Dev Drive.

  • Creare una partizione disco: l'archiviazione della Dev Drive in una partizione disco offre in genere prestazioni più veloci, perché usa direttamente il disco fisico senza livelli aggiuntivi. I compromessi consistono nella minore flessibilità di un disco partizionato (perché il ridimensionamento delle partizioni può essere più complesso e rischioso) e nella minore portabilità, perché la partizione è associata al disco fisico.

  • Creare un nuovo VHD: l'archiviazione della Dev Drive in un disco rigido virtuale (VHD) potrebbe avere prestazioni leggermente inferiori a causa del sovraccarico della gestione del livello del disco virtuale. I compromessi sono che i dischi rigidi virtuali offrono maggiore flessibilità per il ridimensionamento dinamico (se è necessario gestire lo spazio su disco in modo efficiente), lo spostamento o il backup dei dati. I VHD sono anche altamente portabili, consentendo il trasferimento del file VHD a un altro computer o percorso di backup. Occorre tuttavia tener presente che quando un VHD è ospitato in un disco fisso (HDD o SSD), non è consigliabile copiarlo, spostarlo in un computer diverso e poi continuare a usarlo come Dev Drive.

Creare un nuovo disco rigido virtuale

Quando si sceglie l'opzione Crea nuovo disco rigido virtuale per configurare un'unità di sviluppo, sarà necessario determinare quanto segue:

  • Nome disco rigido virtuale: assegnare un nome al disco rigido virtuale (unità di sviluppo).
  • Percorso: assegnare il percorso della directory in cui si trova il disco rigido virtuale dell’unità di sviluppo nel computer. Il percorso predefinito è C:\, a meno che non si crei un’unità di sviluppo usando Dev Home, in tale caso il percorso predefinito è %userprofile%\DevDrives. Per evitare condivisioni involontarie, è consigliabile usare un percorso della directory per ogni utente per archiviare l'unità di sviluppo.
  • Dimensioni del disco rigido virtuale: assegnare la quantità di spazio su disco che verrà allocata per il volume da usare. Le dimensioni minime sono di 50 GB.
  • Formato del disco rigido virtuale:
    • VHD: supporta dischi virtuali con dimensioni fino a 2040 GB.
    • VHDX (scelta consigliata): supporta dischi virtuali di dimensioni massime di 64 TB e offre una protezione più resiliente contro errori di I/O imprevisti causati da problemi come l'interruzione dell'alimentazione. Altre informazioni sulla gestione dei dischi rigidi virtuali.
  • Tipo di disco:
    • Dimensioni fisse: il file del disco rigido virtuale viene allocato alle dimensioni massime al momento della creazione.
    • A espansione dinamica - Il file del disco rigido virtuale raggiunge la sua dimensione massima man mano che i dati vengono scritti sul disco. (consigliato).

Una volta completato il processo di selezione di queste opzioni, verrà creato l'unità di sviluppo.

Screenshot di Creazione e collegamento di un disco rigido virtuale

Ridimensionare un volume esistente o usare lo spazio non allocato in un disco esistente

Per l’opzione Ridimensiona un volume esistente:

  1. Scegliere un volume da ridimensionare.

    Screenshot di Scegliere un volume da ridimensionare nell'unità di sviluppo in Impostazioni.

  2. Scegliere una nuova dimensione per il volume. È necessario disporre di almeno 50 GB di spazio non allocato, la dimensione minima necessaria per un'unità di sviluppo. Dopo aver impostato la dimensione, selezionare Avanti.

    Screenshot dell'impostazione di modifica delle dimensioni nell'unità di sviluppo.

  3. Per formattare un'unità di sviluppo nuovo spazio libero, specificare l'etichetta (nome dell'unità), la lettera di unità e la dimensione allocata. La dimensione massima sarà la quantità di spazio libero allocata nel passaggio precedente. La dimensione minima per un'unità di sviluppo è di 50 GB.

    Screenshot delle impostazioni etichetta, lettera di unità e dimensioni nell'unità di sviluppo

Si è così In questo modo l'unità di sviluppo è stata ridimensionata.

To find and use unallocated space on an existing drive, you can open System>Storage>Disks & volumes, look through the page to see whether any storage space is listed as "Unallocated". Selezionare Crea volume e sarà possibile scegliere tra le opzioni Crea volume semplice (un volume di archiviazione NTFS standard) o Crea unità di sviluppo. Per creare un'unità di sviluppo, la procedura è la stessa di quella descritta in precedenza. È necessario aggiungere un'etichetta (nome dell'unità), una lettera di unità e confermare la dimensione allocata.

Screenshot dell'elenco di archiviazione Dischi & volumi con spazio di archiviazione non allocato.

Formattare un volume di archiviazione come unità di sviluppo dalla riga di comando

In alternativa all'uso delle Impostazioni di Windows, esistono due opzioni per creare volumi di archiviazione dell'unità di sviluppo dalla riga di comando. Entrambe le opzioni richiedono di aprire la riga di comando come amministratore. Per formattare un disco rigido è necessario essere membri del gruppo Amministratore. La formattazione tramite riga di comando è consigliata quando si devono creare molteplici unità di sviluppo o quando si opera come amministratore di diversi computer.

  1. Usando lo strumento da riga di comando Format da Windows CMD o PowerShell:
Format D: /DevDrv /Q
  1. Uso del cmdlet Format-Volume da PowerShell:
Format-Volume -DriveLetter D -DevDrive

Questi esempi di codice richiedono di sostituire D: con la posizione dell'unità di destinazione. Vedere i collegamenti per altre opzioni e parametri di comando.

Come funziona l’unità di sviluppo?

Un volume di archiviazione specifica il modo in cui i dati vengono archiviati nel file system in un particolare formato tramite directory e file. Windows usa NTFS per l'unità di sistema e, per impostazione predefinita, per la maggior parte delle unità non rimovibili. Il Resilient File System (ReFS) è un formato del file system Microsoft più recente, progettato per ottimizzare la disponibilità dei dati, ridimensionare in modo efficiente i set di dati di grandi dimensioni in carichi di lavoro diversi e garantire l'integrità dei dati con resilienza al danneggiamento. Si propone di affrontare una serie di scenari di archiviazione in espansione e di stabilire una base per le innovazioni future.

L’unità di sviluppo usa ReFS per inizializzare un volume di archiviazione specifico per i carichi di lavoro di sviluppo, offrendo prestazioni più veloci e impostazioni personalizzabili ottimizzate per gli scenari di sviluppo. ReFS presenta numerose ottimizzazioni specifiche del file system, progettate per potenziare le prestazioni in situazioni di sviluppo chiave.

Altre informazioni su come l’unità di sviluppo gestisce la sicurezza.

Elementi che è possibile archiviare nell'unità di sviluppo

L’unità di sviluppo è destinata a:

  • Repository di codice sorgente e file di progetto
  • Cache dei pacchetti
  • File di output e intermedi di compilazione

Considerazioni per l'installazione di strumenti di sviluppo e SDK su Dev Drive: gli strumenti di sviluppo e gli SDK vengono in genere inseriti in un percorso a livello di amministratore o di singolo utente. Questi percorsi offrono garanzie di sicurezza e isolamento specifiche per Windows e influiscono sul comportamento di Microsoft Defender. Tuttavia, molti strumenti offrono la flessibilità necessaria per scegliere il percorso di installazione, inclusa una Dev Drive.

Prima di procedere con l'installazione di strumenti di sviluppo o SDK in una Dev Drive, valutare i compromessi associati al sistema e all'analisi asincrona per assicurarsi che sia allineata ai requisiti di sicurezza del dispositivo e dell'organizzazione. È possibile creare una cartella a livello di amministratore o di singolo utente nella Dev Drive. Inoltre, è importante verificare che la modalità prestazioni di Microsoft Defender (ad esempio, l'analisi asincrona) soddisfi le esigenze di gestione dei file binari.

Nota

Gli amministratori IT dovranno creare cartelle con elenco di controllo degli accessi (ACL) per utente per i dispositivi multi-utente come procedura consigliata per evitare attacchi EOP.

Archiviazione della cache dei pacchetti nell’unità di sviluppo

La cache dei pacchetti è una cartella globale usata dalle applicazioni per archiviare i file del software installato. Questi file di origine sono necessari quando si vuole aggiornare, disinstallare o ripristinare il software installato. Visual Studio è una di queste applicazioni che archivia gran parte dei dati nella cache dei pacchetti. Dopo aver modificato le variabili di ambiente, potrebbe essere necessario riavviare tutte le finestre della console aperte o riavviare il dispositivo per applicare i nuovi valori.

  • Cache npm (NodeJS): creare una directory della cache npm nell'unità di sviluppo, ad esempio D:\packages\npm, quindi impostare una variabile di ambiente globale npm_config_cache in tale percorso, ad esempio setx /M npm_config_cache D:\packages\npm. Se nodeJS è già installato nel computer, spostare il contenuto di %AppData%\npm-cache in questa directory. (In alcuni sistemi, la cache npm potrebbe trovarsi in %LocalAppData%\npm-cache). Per altre informazioni, vedere la documentazione di npm: npm-cache e npm config: cache.

  • Cartella global-packages di NuGet: la cartella global-packages di NuGet viene usata da dotnet, MSBuild e Visual Studio. Creare una directory NuGet specifica dell'utente nel file system CopyOnWrite (CoW). Ad esempio: D:\<username>\.nuget\packages. Usare uno dei seguenti modi per cambiare la cartella global-packages dalla posizione predefinita alla cartella appena creata (per gestire i pacchetti installati a livello globale):

    • Impostare una variabile di ambiente globale NUGET_PACKAGES in tale percorso. Ad esempio: setx /M NUGET_PACKAGES D:\<username>\.nuget\packages.

    • Impostare globalPackagesFolder, quando si usa PackageReferenceo repositoryPath, quando si usa packages.config, in tale percorso nelle impostazioni di configurazione.

    • Impostare la proprietà MSBuild RestorePackagesPath (solo MSBuild) in tale percorso.

      Per verificare la cartella global-packages, eseguire il comando dotnet nuget locals: dotnet nuget locals global-packages --list Il ripristino installerà e scaricherà i pacchetti nel nuovo percorso. È possibile eliminare la cartella predefinita global-packages di NuGet. Per altre informazioni, vedere la documentazione di NuGet: Gestione dei pacchetti globali, della cache e delle cartelle temporanee.

Nota

Esiste al momento un problema noto: il comando dello strumento Dotnet non rispetta il percorso dei pacchetti NuGet. Il team .NET ne è consapevole e sta cercando una correzione per .NET 10 e un aggiornamento della release di manutenzione per le versioni 8.0 e 9.0.

  • Cache vcpkg: creare una directory della cache vcpkg nell’unità di sviluppo, ad esempio D:\packages\vcpkg, quindi impostare una variabile di ambiente globale VCPKG_DEFAULT_BINARY_CACHE in tale percorso, ad esempio setx /M VCPKG_DEFAULT_BINARY_CACHE D:\packages\vcpkg. Se sono già stati installati pacchetti, spostare il contenuto di %LOCALAPPDATA%\vcpkg\archives o %APPDATA%\vcpkg\archives in questa directory. Per altre informazioni, vedere la documentazione di vcpkg: Memorizzazione nella cache binaria vcpkg.

  • Cache pip (Python): creare una directory della cache pip nell’unità di sviluppo, ad esempio D:\packages\pip, quindi impostare una variabile di ambiente globale PIP_CACHE_DIR in tale percorso, ad esempio setx /M PIP_CACHE_DIR D:\packages\pip. Se i pacchetti pip e le wheel sono già stati ripristinati nel computer, spostare il contenuto di %LocalAppData%\pip\Cache in questa directory. Altre informazioni nella documentazione di pip: Memorizzazione nella cache di pip e vedere StackOverflow Cambiare la directory della cache pip in Linux?.

  • Cache cargo (Rust): creare una directory della cache Cargo nell’unità di sviluppo, ad esempio D:\packages\cargo, quindi impostare una variabile di ambiente globale CARGO_HOME in tale percorso, ad esempio setx /M CARGO_HOME D:\packages\cargo. Se i pacchetti Cargo sono già stati ripristinati nel computer, spostare il contenuto di %USERPROFILE%\.cargo in questa directory. Per altre informazioni, vedere la documentazione relativa alla cache Cargo: Variabili ambientali cargo.

  • Cache Maven (Java): creare una directory della cache Maven nell’unità di sviluppo, ad esempio D:\packages\maven, quindi impostare una variabile di ambiente globale MAVEN_OPTS per aggiungere un'impostazione di configurazione a tale percorso, ad esempio setx /M MAVEN_OPTS "-Dmaven.repo.local=D:\packages\maven". Spostare il contenuto di %USERPROFILE%\.m2\repository in questa directory (inclusi solo le dipendenze, i plug-in e altri artefatti scaricati da Maven nella repository cartella e usati per i progetti). Per altre informazioni, vedere la documentazione di Maven e vedere StackOverflow Come specificare un percorso alternativo per la cartella .m2 o settings.xml in modo permanente?.

  • Cache Gradle (Java): creare una directory della cache Gradle in Dev Drive, ad esempio, D:\packages\gradle. Impostare quindi una variabile di ambiente globale GRADLE_USER_HOME in modo che punti a tale percorso, ad esempio, usare setx /M GRADLE_USER_HOME "D:\packages\gradle" nella riga di comando per impostarla al livello di sistema. Dopo aver impostato questa variabile, Gradle userà la directory specificata (D:\packages\gradle) per le cache e i file di configurazione. Se sono presenti file Gradle esistenti, spostare il contenuto di %USERPROFILE%\.gradle in questa nuova directory. Per informazioni più dettagliate, è possibile fare riferimento alla documentazione di Gradle ed esplorare le risorse della community come StackOverflow per suggerimenti sulla gestione delle configurazioni gradle e delle directory della cache.

Informazioni sui rischi di sicurezza e sull’attendibilità in relazione all'unità di sviluppo

La sicurezza e l’attendibilità sono aspetti importanti quando si lavora con i file di progetto. In genere, esiste un compromesso tra prestazioni e sicurezza. L'uso dell'unità di sviluppo consente agli sviluppatori e agli amministratori della sicurezza di controllare questo equilibrio. Spetta a loro decidere quali filtri applicare e come configurare le impostazioni per le analisi di Antivirus Microsoft Defender.

I filtri antivirus, compresi quelli di Microsoft Defender e di terze parti, sono collegati per impostazione predefinita a un'unità di sviluppo. Per impostazione predefinita, Antivirus Microsoft Defender adotta la "modalità prestazioni" nelle unità di sviluppo, privilegiando la velocità e le prestazioni. Allo stesso tempo, offre un'opzione sicura rispetto alle esclusioni tradizionali delle cartelle. Per un maggiore livello di protezione, Microsoft Defender offre anche la "modalità di protezione in tempo reale".

Tutti i prodotti o le funzioni che richiedono filtri aggiuntivi non funzioneranno se il filtro non viene aggiunto all'unità di sviluppo.

Avviso

Le unità di sviluppo possono essere eseguite senza filtri antivirus collegati. Prestare estrema attenzione! Rimuovere i filtri antivirus può compromettere la sicurezza e fare in modo che l'unità di archiviazione non sia protetta dalle analisi di sicurezza standard. È compito dell'utente valutare i pericoli legati alla disattivazione dei filtri antivirus. Questa azione dovrebbe essere intrapresa solo quando si ha la certezza che i file conservati nell'unità di sviluppo non saranno esposti ad attacchi dannosi.

Microsoft consiglia di usare l'impostazione predefinita modalità prestazioni quando si usa un’unità di sviluppo attendibile.

Che cos'è un’unità di sviluppo attendibile?

Durante la fase di formattazione originale, le unità di sviluppo sono automaticamente contrassegnate come attendibili mediante un flag registrato nel Registro di sistema, garantendo così le migliori prestazioni possibili per impostazione predefinita. Un'unità di sviluppo affidabile implica che lo sviluppatore che usa il volume ha un'elevata fiducia nella sicurezza dei contenuti archiviati.

Analogamente a quando uno sviluppatore sceglie di aggiungere un'esclusione a Sicurezza di Windows, lo sviluppatore si assume la responsabilità di gestire la sicurezza del contenuto archiviato per ottenere prestazioni aggiuntive.

Quando un’unità di sviluppo è contrassegnata come affidabile, indica a Microsoft Defender di usare la modalità performance. L'esecuzione di Microsoft Defender in modalità prestazioni offre un equilibrio tra la protezione dalle minacce e le prestazioni. La protezione in tempo reale verrà comunque abilitata in tutti gli altri volumi di archiviazione.

Data l'importanza delle precauzioni di sicurezza relative alla disattivazione dei filtri, quando si sposta un'unità di sviluppo tra diversi computer, questa verrà trattata come un volume standard, senza applicare criteri specifici di collegamento dei filtri. Il volume deve essere contrassegnato come attendibile quando viene collegato a un nuovo computer. Vedere Come si designa l’affidabilità di un’unità di sviluppo?.

Un'unità di sviluppo non attendibile non avrà gli stessi privilegi di un'unità di sviluppo attendibile. La sicurezza verrà eseguita in modalità di protezione in tempo reale quando un'unità di sviluppo viene considerata non attendibile. Prestare attenzione quando si designa l’affidabilità a un'unità di sviluppo dopo la creazione iniziale.

Come si designa l’affidabilità di un’unità di sviluppo?

Per designare un'unità di sviluppo come affidabile:

  1. Aprire PowerShell (o CMD) con autorizzazioni elevate facendo clic con il pulsante destro del mouse e selezionando "Esegui come amministratore".
  2. Per designare l'unità di sviluppo come affidabile inserire il comando seguente, sostituendo <drive-letter> con la lettera dell'unità di archiviazione a cui si intende assegnare l'affidabilità. Ad esempio, fsutil devdrv trust D:.
fsutil devdrv trust <drive-letter>:

Per confermare se un'unità di sviluppo è attendibile, immettere il comando:

fsutil devdrv query <drive-letter>:

L'unità C: del computer non può essere designata come unità di sviluppo. Gli strumenti per gli sviluppatori, come Visual Studio, MSBuild, .NET SDK, Windows SDK e così via, devono essere archiviati nell'unità C: e non in un'unità di sviluppo.

Che cos'è la modalità prestazioni di Microsoft Defender?

La modalità prestazioni ora è disponibile in Windows 11 come nuova funzionalità di Antivirus Microsoft Defender. Questa funzionalità riduce l'impatto sulle prestazioni delle analisi di Antivirus Microsoft Defender per i file archiviati in un’unità di sviluppo designata.

Per ulteriori informazioni sulla modalità prestazioni e sulla comparazione con la protezione in tempo reale, vedere Microsoft Defender: Protezione dell'unità di sviluppo con la modalità prestazioni.

Affinché la modalità prestazioni sia abilitata, l’unità di sviluppo deve essere designata come attendibile e la protezione in tempo reale di Microsoft Defender deve essere attiva.

Come si configurano i filtri aggiuntivi nell’unità di sviluppo?

Per impostazione predefinita, Gestione filtri disattiva tutti i filtri in un’unità di sviluppo, ad eccezione dei filtri antivirus. Un filtro antivirus è un filtro collegato nell'intervallo di altitudine FSFilter Anti-Virus (ad esempio, 320000-329999). FSFilter Anti-Virus include filtri che rilevano e disinfettano i virus durante l'I/O dei file.

È possibile configurare criteri predefiniti per non collegare i filtri antivirus a un’unità di sviluppo utilizzando fsutil. AVVISO: questo criterio si applica a TUTTE le unità di sviluppo nel sistema.

fsutil devdrv enable /disallowAv

Il comando, fsutil devdrv enable [/allowAv|/disallowAv], include le due opzioni seguenti:

  • disallowAv: specifica che le unità di sviluppo non dispongono di filtri collegati (nemmeno antivirus). I filtri possono essere aggiunti nuovamente con il comando fsutil devdrv setfiltersallowed <Filter-1>. (Sostituendo <Filter-1> con il nome del filtro desiderato).

  • allowAv: specifica che le unità di sviluppo devono essere protette dal filtro antivirus predefinito.

Per assistenza, immettere il comando : fsutil devdrv enable /?. Se non vengono specificati né /allowAv/disallowAv, il criterio antivirus per l'unità di sviluppo non viene configurato. Per impostazione predefinita, il sistema tratterà le unità di sviluppo come protette dal filtro antivirus.

Avviso

Prestare particolare attenzione quando si rimuovono i filtri. Disattivare i filtri antivirus comporta un rischio per la sicurezza. Ciò implica che l'archivio non beneficerà della protezione in tempo reale offerta da Microsoft Defender, né delle analisi in modalità prestazioni. È compito dell'utente valutare i pericoli legati alla disattivazione dei filtri antivirus. Questa azione dovrebbe essere intrapresa solo quando si ha la certezza che i file non saranno esposti ad attacchi dannosi.

Per altre informazioni sui filtri, vedere Informazioni sui driver di filtro del file system, Installazione di un driver di filtro, Concetti di gestione dei filtri, Gruppi di ordini di carico e altitudini per i driver dei minifiltri.

Consentire l'aggiunta di filtri nell'unità di sviluppo

In un ambiente aziendale, oltre ai criteri di cui sopra, è possibile che siano stati configurati dei criteri di gruppo aziendali per aggiungere filtri all'unità di sviluppo. L'amministratore del sistema può anche scegliere di applicare filtri aggiuntivi a un'unità di sviluppo specifica o a tutte le unità di sviluppo, utilizzando un elenco autorizzati.

Un amministratore di sistema potrebbe voler aggiungere un filtro denominato "Foo", che verrà indicato come FooFlt. Questo filtro può essere abilitato solo nelle unità di sviluppo montate come D:. Questo filtro non è necessario in un'altra unità di sviluppo montata come E:. L'amministratore può modificare l’elenco di filtri consentiti nell’unità di sviluppo utilizzando fsutil.exe, un'utilità della riga di comando fornita dal sistema.

I filtri specificamente impostati come Allowed possono essere collegati a un'unità di sviluppo in aggiunta ai criteri di filtro antivirus descritti in precedenza.

Esempi di filtri per elenchi autorizzati

Gli esempi seguenti illustrano la possibilità dell'amministratore di impostare filtri autorizzati in tutte le unità di sviluppo di un computer, utilizzando un elenco autorizzati.

Per usare il comando setfiltersallowed per consentire Filter-01 e Filter-02 in tutte le unità di sviluppo, usare il comando :

fsutil devdrv setfiltersallowed Filter-01, Filter-02

Per visualizzare i criteri di collegamento dei filtri per tutte le unità di sviluppo, usare il comando :

fsutil devdrv query

I risultati mostreranno quanto segue:

  • I volumi di sviluppo sono abilitati.
  • I volumi di sviluppo sono protetti da un filtro antivirus.
  • Filtri autorizzati in qualsiasi unità di sviluppo: Filter-01, Filter-02

Per modificare la configurazione dell'unità di sviluppo in modo da consentire solo Filter-03 nelle unità di sviluppo, escludendo Filter-01 e Filter-02, usare il comando:

fsutil devdrv setfiltersallowed Filter-03

Vedere fsutil devdrv /? per altri comandi correlati.

Filtri per scenari comuni

I seguenti filtri possono essere utilizzati con le unità di sviluppo:

Scenario: Descrizione Nome del filtro
GVFS: integrazione di tipo sparse di Windows PrjFlt
MSSense: Microsoft Defender per endpoint per il sensore EDR MsSecFlt
Defender: Filtro di Windows Defender WdFiltro
Docker: Esecuzione di contenitori dall'unità di sviluppo bindFlt, wcifs
Windows Performance Recorder: misura le operazioni del file system FileInfo
Monitoraggio risorse: mostra l'utilizzo delle risorse. Obbligatorio per visualizzare i nomi di file nell'attività disco FileInfo
Monitoraggio processi - Sysinternals: Monitorare le attività del file system ProcMon24
Aggiornamento di Windows: usato durante l'aggiornamento del sistema operativo. Obbligatorio se l'utente sposta la variabile di ambiente TEMP in Dev Drive WinSetupMon
Controllo di applicazioni di Windows Defender (WDAC): monitoraggio gestito del programma di installazione con servizi di gestione delle identità di AppLocker applockerfltr

Il WdFilter è collegato per impostazione predefinita. Il comando seguente è un esempio che illustra come collegare tutti questi filtri aggiuntivi a un'unità di sviluppo:

fsutil devdrv setfiltersallowed "PrjFlt, MsSecFlt, WdFilter, bindFlt, wcifs, FileInfo, ProcMon24"

Suggerimento

Per determinare i filtri necessari per uno scenario specifico, potrebbe essere necessario contrassegnare temporaneamente un'unità di sviluppo come non attendibile. Quindi, eseguire lo scenario e prendere nota di tutti i filtri collegati al volume. Designare nuovamente l'unità di sviluppo come attendibile e quindi aggiungere i filtri all'elenco autorizzati per tale unità di sviluppo per garantire che lo scenario abbia esito positivo. Infine, rimuovere i filtri non necessari, uno alla volta, assicurandosi che tutto funzioni come previsto.

Suggerimento

Il nome del filtro per Monitoraggio processo può cambiare. Se l'aggiunta del nome del filtro "ProcMon24" non sembra acquisire le attività del file system in un'unità di sviluppo, elencare i filtri usando il comando fltmc filters, trovare il nome del filtro per Monitoraggio processo e usare tale nome anziché "ProcMon24".

Supporto della clonazione di blocchi

A partire da Windows 11 24H2 & Windows Server 2025, la clonazione di blocchi è supportata in Dev Drive. Dato che Dev Drive utilizza il formato di file system ReFS, il supporto della clonazione di blocchi comporterà vantaggi prestazionali gratuiti ogni volta che si copia un file con Dev Drive. La clonazione di blocchi consente al file system di copiare un intervallo di byte di file per conto di un'applicazione come operazione conveniente a livello di metadati, anziché eseguire operazioni costose di lettura e scrittura sui dati fisici sottostanti. Ciò comporta un completamento più rapido della copia, meno I/O nella risorsa di archiviazione sottostante e una migliore capacità di archiviazione grazie all'abilitazione di più file a condividere gli stessi cluster logici. Altre informazioni sulla Clonazione di blocchi.

Quali scenari non sono supportati dall’unità di sviluppo? Quali sono le limitazioni?

Esistono alcuni scenari in cui non è consigliabile usare un’unità di sviluppo. tra cui:

  • Riformattare un volume di archiviazione esistente come "unità di sviluppo" comporterà l’eliminazione dei contenuti presenti in quel volume. La riformattazione di un volume esistente mantenendo il contenuto archiviato non è supportata.
  • Quando si crea un disco rigido virtuale (VHD) ospitato in un disco fisso (HDD o SSD), non è consigliabile copiare il disco rigido virtuale, spostarlo in un computer diverso e quindi continuare a usarlo come unità di sviluppo.
  • Un volume archiviato in un disco rimovibile o collegabile a caldo (ad esempio un'unità esterna USB, HDD o SSD) non supporta la designazione come unità di sviluppo.
  • Un volume in un disco rigido virtuale ospitato da un disco rimovibile o collegabile a caldo non supporta la designazione come unità di sviluppo.
  • L'unità C: del computer non può essere designata come unità di sviluppo.
  • Lo scopo di un'unità di sviluppo è ospitare file per la compilazione e il debug di progetti software designati per archiviare repository, cache di pacchetti, directory di lavoro e cartelle temporanee. Non è consigliabile installare applicazioni in unità di sviluppo.
  • L'uso di unità di sviluppo nei dischi dinamici non è supportato. Usare invece gli spazi di archiviazione, che consentono di proteggere i dati da errori di unità ed estendere lo spazio di archiviazione nel tempo man mano che si aggiungono unità al PC.

Come eliminare un’unità di sviluppo

È possibile eliminare un'unità di sviluppo nelle impostazioni di sistema di Windows 11: System>Storage>Disks & volumes.

Aprire il menu delle Impostazioni Windows, quindi selezionare Archiviazione, quindi Impostazioni di archiviazione avanzate, quindi Volumi & dischi, dove si troverà un elenco dei volumi di archiviazione sul dispositivo. Selezionare Proprietà accanto al volume di archiviazione dell’unità di sviluppo da eliminare. Nelle proprietà dell'unità, l'opzione Elimina si trova sotto l'etichetta Formato.

Eliminare un'unità di sviluppo nella Impostazioni di Windows

Dev Drive verrà eliminato. Tuttavia, se la Dev Drive è stata creata come nuovo disco rigido virtuale, il disco rigido virtuale dovrà essere eliminato per recuperare lo spazio di archiviazione usato dal disco rigido virtuale. A tale scopo, è necessario scollegare il disco virtuale in modo che il file VHD che ospita la Dev Drive possa essere eliminato, seguendo questa procedura:

  1. Apri lo strumento Gestione disco inserendo "Gestione computer" nella casella di ricerca sulla barra delle applicazioni. Selezionare Gestione disco sotto l'intestazione Archiviazione. Selezionare il disco (non il volume) della Dev Drive. Fare clic con il pulsante destro del mouse sul disco selezionato che ospita la Dev Drive e, dal menu risultante, selezionare Scollega VHD.
  2. Verrà visualizzata una finestra popup che informa che lo scollegamento di un disco rigido virtuale lo rende non disponibile.
  3. Una volta scollegato, il VHD può essere eliminato.

Screenshot dello strumento Gestione disco che mostra che è possibile selezionare il VHD e che Scollega file VHD è un'opzione nel menu azioni.

Domande frequenti sull’unità di sviluppo

Alcune domande frequenti sull’unità di sviluppo includono:

Come è possibile personalizzare un’unità di sviluppo per soddisfare le proprie esigenze?

Le impostazioni predefinite delle unità di sviluppo sono state ottimizzate per gli scenari di sviluppo più comuni. Tuttavia, è possibile personalizzarle per avere un controllo maggiore sui driver e sui servizi attivi all'interno del volume di archiviazione. Per personalizzare le impostazioni dell’unità di sviluppo, aprire il menu Impostazioni. In Volumi dischi >archiviazione >sistema&, andare a Proprietà.

Importante

In un ambiente aziendale, l'unità di sviluppo sarà comunque gestita dalle impostazioni aziendali. Alcune personalizzazioni potrebbero quindi non essere disponibili a seconda dei criteri aziendali.

È necessario reinstallare le applicazioni per utilizzare un'unità di sviluppo?

No, le applicazioni o gli strumenti installati nell'unità C: del computer possono utilizzare i file di un'unità di sviluppo. Tuttavia, per i progetti di sviluppo, è consigliabile archiviare le directory, i file e le cache di pacchetti specifici del progetto all'interno dell'unità di sviluppo. L'unità di sviluppo può essere aggiunta all'accesso rapido di Esplora file come promemoria.

ReFS usa una quantità di memoria maggiore rispetto a NTFS?

Sì, ReFS usa\ una quantità di memoria leggermente superiore rispetto a NTFS. È consigliabile usare un computer con almeno 8 GB di memoria, idealmente 16 GB.

È possibile avere più di una Dev Drive nel computer?

Sì. Se si dispone dello spazio necessario, è possibile creare tutte le unità di sviluppo desiderate. Usare un'unità di sviluppo dedicata per ciascun progetto software permette di eliminarla facilmente al completamento dello sviluppo, evitando la necessità di ripartizionare il disco. Tuttavia, è necessario tenere presente che la dimensione minima di un'unità di sviluppo è di 50 GB.

Cosa è necessario sapere sull'utilizzo dell'unità di sviluppo con Visual Studio?

Una volta creata un'unità di sviluppo, Visual Studio la riconoscerà automaticamente quando si crea un nuovo progetto, o si clona un progetto esistente, e sceglierà quel percorso di file come impostazione predefinita. Per ottimizzare le prestazioni di Visual Studio, è consigliabile spostare nell'unità di sviluppo il codice del progetto, le cache dei pacchetti e le attività Copy on write di MS Build che potrebbero essere state precedentemente salvate altrove. (Vedere Come modificare la directory dell’output di compilazione nei documenti di Visual Studio). È necessario anche considerare il reindirizzamento delle envars %TEMP% e %TMP% all'unità di sviluppo. Ciò richiederà anche l'aggiunta del filtro WinSetupMon, necessario per il processo di Windows Update. (Vedere Filtri per scenari comuni. Poiché molti programmi le utilizzano, è fondamentale prestare attenzione a possibili implicazioni. Consigliamo anche l'uso della modalità prestazioni per Microsoft Defender per migliorare le prestazioni asincrone con Dev Drive. La disattivazione completa di Microsoft Defender può portare al massimo guadagno di prestazioni, ma potrebbe comportare rischi di sicurezza e tale scelta rimane sotto la supervisione dell'amministratore del sistema.

Per ulteriori informazioni, consultare il post del blog: Dev Drive for Performance Improvements in Visual Studio and Dev Boxes.

L'unità di sviluppo funziona con i file di progetto WSL?

È possibile accedere ai file di progetto dell'unità di sviluppo, che si trovano nel file system di Windows, da una distribuzione Linux in esecuzione tramite WSL. Tuttavia, WSL viene eseguito in un disco rigido virtuale. Per garantire le migliori prestazioni, i file devono essere conservati nel file system di Linux. WSL non rientra nell'ambito del file system di Windows. Pertanto, non è previsto alcun miglioramento delle prestazioni quando si accede ai file di progetto nell'unità di sviluppo da una distribuzione Linux in esecuzione tramite WSL.

Quale metodo viene utilizzato per formattare un volume di archiviazione di Windows?

Vedere MSFT_Volume class nei documenti del driver di Windows.

Come configurare e utilizzare il Live Unit Testing con un'unità di sviluppo?

Per informazioni su Come configurare e utilizzare il Live Unit Testing, consultare la documentazione di Visual Studio. Tuttavia, occorre tenere presente che esiste una dipendenza in ProjFS. È necessario spostare la radice dell'area di lavoro Live Unit Testing nell'unità di sviluppo e aggiungere Windows Projected File System all'elenco dei filtri consentiti. È possibile farlo utilizzando il seguente comando in PowerShell:

fsutil devdrv setfiltersallowed PrjFlt

Un VHD creato per l'uso come unità di sviluppo verrà crittografato quando l'unità in cui è archiviata è abilitata BitLocker?

Sì, il VHD della Dev Drive verrà incluso nella crittografia BitLocker del volume di hosting. Non è necessario abilitare BitLocker nel VHD montato.

Dev Drive può velocizzare lo sviluppo Java in Windows?

Sì, l'uso di Dev Drive può migliorare l'efficienza e ridurre i tempi di compilazione quando si lavora su un progetto di sviluppo Java. Consultare il post del blog "Velocizzare lo sviluppo Java in Windows con Dev Drive".

La modalità prestazioni di Dev Drive può essere applicata ai programmi antivirus oltre che a Microsoft Defender?

La modalità prestazioni di Dev Drive è una funzionalità specifica di Antivirus Microsoft Defender correlata alla protezione in tempo reale di Defender. Quando si usano programmi antivirus alternativi con Dev Drive, la modalità prestazioni non verrà applicata, ma è possibile regolare l'elenco dei filtri di sicurezza consentiti collegati a Dev Drive per trovare il giusto equilibrio tra prestazioni e sicurezza per il lavoro di sviluppo. È necessario assicurarsi di comprendere la funzione di tutti i filtri associati quando si apportano modifiche all'elenco di questi filtri. Un elenco con le descrizioni è disponibile nella sezione Filtri per scenari comuni.

Come posso trovare un Dev Drive che ho creato e di cui ho perso le tracce?

Quando si monta una Dev Drive viene montata ma se ne dimentica la posizione, è possibile usare i metodi seguenti per trovarla:

Come contribuire a questi documenti e alle FAQ?

Se si riscontrano problemi in questa documentazione o si desidera contribuire con ulteriori suggerimenti sulle domande frequenti, vedere il repository open source Windows Dev Docs in GitHub.