在 Windows 11 上设置开发驱动器
开发人员驱动器是一种新形式的存储卷,可用于提高关键开发人员工作负荷的性能。
开发驱动器在 ReFS 技术基础上构建,采用有针对性的文件系统优化,并且可以更好地控制存储卷设置和安全性,包括信任指定、防病毒配置和对附加筛选器的管理控制。
有关常见开发操作的一些平均改进度量值,请参阅博客文章:在 Visual Studio 和 Dev Boxes 中使用开发驱动器提高性能。
如何设置开发驱动器
要设置新的开发人员驱动器,请打开 Windows 设置并导航到系统>存储>高级存储设置>磁盘和卷。 选择创建开发人员驱动器。 现有存储卷无法转换为开发驱动器。 仅在原始格式时间下才会发生开发驱动器指定。
在设置开发人员驱动器之前,请确保满足先决条件。还可以使用开发人员主页的计算机配置设置开发人员驱动器。
先决条件
- Windows 11 版本 #10.0.22621.2338 或更高版本(检查 Windows 更新)
- 建议 16gb 内存(至少 8gb)
- 最小 50gb 可用磁盘空间
- 开发驱动器适用于所有 Windows SKU 版本。
- 本地管理员权限。
更新到最新版的 Windows 11 版本后,你可能需要再次重新启动,然后开发驱动器功能才可用。 如果你在企业环境中工作,则安全管理员需要配置开发人员驱动器安全策略才能启用开发人员驱动器。
警告
开发驱动器仅适用于关键开发人员方案,商业或企业工作环境中的组策略设置仍将涵盖任何自定义设置。 详细了解如何配置开发人员驱动器安全策略。
设置选项
系统会提供三个选项:
- 创建新的 VHD - 在新的虚拟硬盘上生成卷
- 调整现有卷的大小 - 创建新的未分配空间以进行构建
- 磁盘上的未分配空间 - 使用现有磁盘上的未分配空间。 *仅当之前在存储中设置了未分配的空间时,才会显示此选项。
如何在使用磁盘分区或 VHD 之间进行选择
选择是创建磁盘分区还是创建新 VHD 来存储开发人员驱动器时,需要考虑优点和权衡。
创建磁盘分区:将开发人员驱动器存储在磁盘分区上通常可提供更快的性能,因为它直接使用物理磁盘,而无需任何其他层。 权衡的是,使用分区磁盘将不太灵活,因为调整分区的大小可能更为复杂且风险更大,而且可移植性较低,因为分区与物理磁盘绑定。
创建新 VHD:由于管理虚拟磁盘层的开销,将开发人员驱动器存储在虚拟硬盘 (VHD) 中可能会稍微降低性能。 权衡的是,VHD 为动态调整大小(如果需要高效管理磁盘空间)、移动或备份数据提供了更大的灵活性。 VHD 也高度可移植,允许将 VHD 文件传输到其他计算机或备份位置。 但请记住,将 VHD 托管在固定磁盘(HDD 或 SSD)上时,不建议复制 VHD,而应将其移至其他计算机,然后继续将其用作开发人员驱动器。
创建新的 VHD
选择创建新的 VHD选项来设置开发驱动器时,需要确定以下内容:
- 虚拟硬盘名称:为 VHD(开发驱动器)命名。
- 位置:分配开发驱动器 VHD 将位于计算机上的目录路径。 默认位置为
C:\
,除非使用开发人员主页创建开发驱动器,在这种情况下,默认位置为%userprofile%\DevDrives
。 建议使用每用户目录路径位置来存储开发驱动器,以避免任何意外共享。 - 虚拟硬盘大小:分配将分配给卷使用的磁盘空间量,最小大小为 50GB。
- 虚拟硬盘格式:
- VHD:支持最大大小为 2040 GB 的虚拟磁盘。
- VHDX(推荐):支持最大 64 TB,并针对因停电等问题导致的意外 IO 故障提供更具弹性的保护。 详细了解如何管理 VHD。
- 磁盘类型:
- 固定大小 - 此虚拟硬盘文件在创建时分配了最大大小。
- 动态扩展 - 随着数据被写入磁盘,虚拟硬盘文件会增长到其最大大小。 (推荐使用)
完成在这些选项之间进行选择的过程后,即可创建你的开发驱动器。
调整现有卷的大小或使用现有磁盘上的未分配空间
要调整现有卷的大小:
选择要调整大小的卷。
为卷选择新大小。 需要至少有 50GB 的未分配的可用空间,这是开发驱动器所需的最小大小。 设置大小后,选择“下一步”。
要在新的可用空间上设置开发驱动器的格式,请指定“标签”(驱动器名称)、“驱动器号”和“大小”分配。 最大大小是在上一步中分配的可用空间量,开发驱动器的最小大小为 50GB。
恭喜! 现在,你已调整了开发驱动器的大小。
要查找和使用现有驱动器上的未分配空间,可以打开系统>存储>磁盘和卷,浏览页面以查看是否有任何存储空间被列为“未分配”。 选择创建卷,然后系统会提供创建简单卷(标准 NTFS 存储卷)或创建开发人员驱动器”选项。 要创建开发驱动器,则创建步骤与上述步骤相同,需要添加“标签”(驱动器名称)、驱动器号,并确认“大小”分配。
通过命令行将存储卷格式化为开发人员驱动器
作为使用 Windows 设置的替代方法,有两个方法可通过命令行创建开发人员驱动器存储卷。 这两个选项都需要以管理员身份打开命令行。 你必须是管理员组的成员才能格式化硬盘驱动器。 在创建多个开发人员驱动器或作为多个计算机的管理员时,这些命令行格式设置方法可能更优。
- 通过 Windows CMD 或 PowerShell 使用 Format 命令行工具:
Format D: /DevDrv /Q
- 通过 PowerShell 使用 Format-Volume cmdlet:
Format-Volume -DriveLetter D -DevDrive
这些代码示例要求你将 D:
替换为要面向的驱动器位置。 有关更多选项和命令参数,请参阅链接。
开发驱动器如何运作?
存储卷指定如何以特定格式通过目录和文件将数据存储在文件系统上。 Windows 将 NTFS 用于系统驱动器,默认情况下,用于大多数不可移动驱动器。 复原文件系统 (ReFS) 是一种更新的 Microsoft 文件系统格式,旨在最大程度提升数据可用性、跨各种工作负荷高效扩展到大数据集,并通过损坏复原提供数据完整性。 它旨在解决存储方案的扩展集问题以及为将来的革新打造基础。
开发人员驱动器利用 ReFS 来支持初始化专用于开发工作负荷的存储卷,从而提供更快的性能和针对开发方案优化的可自定义设置。 ReFS 包含多项特定于文件系统的优化,以提高关键开发人员方案的性能。
详细了解开发驱动器如何处理安全性。
应该在开发驱动器上放置什么内容?
开发驱动器适用于:
- 源代码存储库和项目文件
- 包缓存
- 生成输出和中间文件
在开发人员驱动器上安装开发人员工具和 SDK 的注意事项:开发人员工具和 SDK 通常位于管理员位置或每个用户的位置。 这些位置在 Windows 上提供特定的安全性和隔离保证,并影响 Microsoft Defender 行为。 但是,许多工具提供选择安装位置(包括开发人员驱动器)的灵活性。
在开发人员驱动器上继续安装开发人员工具或 SDK 之前,先评估与系统和异步扫描关联的权衡,以确保它符合设备和组织的安全要求。 可以选择在开发人员驱动器上创建管理员文件夹或每个用户的文件夹。 此外,务必验证 Microsoft Defender 性能模式(例如异步扫描)是否满足处理二进制文件的需求。
注意
IT 管理员希望为多用户设备创建每用户访问控制列表 (ACL) 文件夹,以此作为避免 EOP 攻击的最佳做法。
在开发驱动器上存储包缓存
包缓存是应用程序用于存储已安装软件的文件的全局文件夹位置。 当你想要更新、卸载或修复已安装的软件时,需要这些源文件。 Visual Studio 是将其大部分数据存储在包缓存中的应用程序。 更改环境变量后,可能需要重启所有打开的控制台窗口,或重新启动设备 ,以便应用新值。
Npm 缓存 (NodeJS):在开发驱动器中创建 npm 缓存目录(例如
D:\packages\npm
),然后将全局环境变量npm_config_cache
设置为该路径(例如setx /M npm_config_cache D:\packages\npm
)。 如果已在计算机上安装 NodeJS,请将%AppData%\npm-cache
的内容移动到此目录中。 (在某些系统上,npm 缓存可能位于%LocalAppData%\npm-cache
中)。 有关详细信息,请参阅 npm 文档:npm-cache 和 npm config: cache。NuGet 全局包文件夹:dotnet、MSBuild 和 Visual Studio 可使用 NuGet 全局包文件夹。 在 CopyOnWrite (CoW) 文件系统中创建特定于用户的 NuGet 目录。 例如:
D:\<username>\.nuget\packages
。 使用以下方法之一将默认位置的全局包文件夹更改为新创建的文件夹(以便管理全局安装的包):将全局环境变量
NUGET_PACKAGES
设置为该路径。 例如:setx /M NUGET_PACKAGES D:\<username>\.nuget\packages
。在配置设置中将
globalPackagesFolder
(使用PackageReference
时)或repositoryPath
(使用packages.config
时)设置为该路径。将
RestorePackagesPath
MSBuild 属性(仅限于 MSBuild)设置为该路径。要验证全局包文件夹,请运行 dotnet nuget locals 命令:
dotnet nuget locals global-packages --list
。 此还原操作会将包安装并下载到新路径中。 可以删除默认的 NuGet 全局包文件夹。 有关详细信息,请参阅 NuGet 文档:管理全局包、缓存和临时文件夹。
注意
目前有一个已知问题:Dotnet 工具命令未遵循 nuget 包路径。 .NET 团队了解并在调查 .NET 10 的修补程序,以及 8.0 和 9.0 的服务版本更新。
vcpkg 缓存:在开发驱动器中创建 vcpkg 缓存目录(例如
D:\packages\vcpkg
),然后将全局环境变量VCPKG_DEFAULT_BINARY_CACHE
设置为该路径(例如setx /M VCPKG_DEFAULT_BINARY_CACHE D:\packages\vcpkg
)。 如果已安装包,请将%LOCALAPPDATA%\vcpkg\archives
或%APPDATA%\vcpkg\archives
的内容移动到此目录中。 有关详细信息,请参阅 vcpkg 文档:vcpkg 二进制缓存。Pip 缓存 (Python):在开发驱动器中创建 pip 缓存目录(例如
D:\packages\pip
),然后将全局环境变量PIP_CACHE_DIR
设置为该路径(例如setx /M PIP_CACHE_DIR D:\packages\pip
)。 如果已在计算机上还原 pip 包和 Wheel,请将%LocalAppData%\pip\Cache
的内容移动到此目录中。 有关详细信息,请参阅 pip 文档:pip 缓存,并参阅 StackOverflow 中的在 Linux 上更改 pip 缓存的目录?。Cargo 缓存 (Rust):在开发驱动器中创建 Cargo 缓存目录(例如
D:\packages\cargo
),然后将全局环境变量CARGO_HOME
设置为该路径(例如setx /M CARGO_HOME D:\packages\cargo
)。 如果已在计算机上还原 Cargo 包,请将%USERPROFILE%\.cargo
的内容移动到此目录中。 有关详细信息,请参阅 Cargo 文档:Cargo 环境变量。Maven 缓存 (Java):在开发驱动器中创建 Maven 缓存目录(例如
D:\packages\maven
),然后设置全局环境变量MAVEN_OPTS
以将配置设置添加到该路径(例如setx /M MAVEN_OPTS "-Dmaven.repo.local=D:\packages\maven"
)。 将%USERPROFILE%\.m2\repository
的内容移到此目录(这仅包括依赖项、插件和 Maven 下载到repository
文件夹中并用于项目的其他工件)。 有关详细信息,请参阅 Maven 文档,并参阅 StackOverflow 中的如何永久指定 .m2 文件夹或 settings.xml 的备用位置?。Gradle 缓存 (Java):在开发人员驱动器中创建 Gradle 缓存目录,例如
D:\packages\gradle
。 然后,将全局环境变量GRADLE_USER_HOME
设为指向该路径;例如,在命令行中使用setx /M GRADLE_USER_HOME "D:\packages\gradle"
以将其设为系统范围内的设置。 设置此变量后,Gradle 将为其缓存和配置文件使用指定目录 (D:\packages\gradle
)。 如果存在现有 Gradle 文件,请将%USERPROFILE%\.gradle
的内容移至此新目录。 有关更多详细信息,可参考 Gradle 文档并浏览社区资源(例如 StackOverflow),以便获取有关管理 Gradle 配置和缓存目录的提示。
了解与开发驱动器相关的安全风险和信任
使用项目文件时,安全和信任是重要的注意事项。 通常需在性能和安全性之间做出权衡。 使用开发驱动器就是将这一平衡控制权交给了开发人员和安全管理员,由他们负责选择附加的筛选器以及 Microsoft Defender 防病毒扫描的设置。
默认情况下,防病毒筛选器(包括 Microsoft Defender 和第三方防病毒筛选器)附加到开发驱动器。 Microsoft Defender 防病毒默认为开发驱动器上的新“性能模式”设置,考虑了速度和性能,同时提供文件夹排除项的安全替代方案。 为了提高保护级别,Microsoft Defender 还提供“实时保护模式”。
除非将筛选器添加到开发驱动器,否则需要其他筛选器的任何产品或功能都不起作用。
警告
可以在不附加任何防病毒筛选器的情况下运行开发驱动器。 请格外小心! 移除防病毒筛选器存在安全风险,这意味着存储驱动器不在标准安全扫描范围内。 你负责评估与分离防病毒筛选器相关的风险,并且只有在确信存储在开发驱动器上的文件不会受到恶意攻击时,才应这样做。
Microsoft 建议在使用受信任的开发驱动器时使用默认性能模式设置。
什么是“受信任的”开发驱动器?
在原始格式设置期间,会使用系统注册表中存储的标志自动将开发人员驱动器指定为受信任,从而默认提供最佳性能。 受信任的开发驱动器意味着使用该卷的开发人员对存储在其中的内容的安全性具有很高的信心。
与开发人员选择将排除项添加到 Windows 安全中心一样,开发人员负责管理存储的内容的安全性,以进一步提升性能。
如果开发驱动器标记为受信任,则表示 Microsoft Defender 在性能模式下运行。 在性能模式下运行 Microsoft Defender 可在威胁防护和性能之间实现平衡。 仍会在所有其他存储卷上启用实时保护。
出于分离筛选器的安全考虑,在计算机之间传输开发驱动器将导致卷被视为不具有特殊筛选器附加策略的普通卷。 因此,将卷附加到新计算机时,需要将其标记为受信任。 请参阅如何实现将开发驱动器指定为受信任的驱动器?。
不受信任的开发驱动器将不具有与受信任的驱动器相同的权限。 当开发驱动器不受信任时,安全性将在实时保护模式下运行。 如果在首次创建开发驱动器的时间之外指定对它的信任,请谨慎操作。
如何实现将开发驱动器指定为受信任的驱动器?
将开发驱动器指定为受信任的驱动器:
- 通过右键单击并选择“以管理员身份运行”,使用提升的权限打开 PowerShell(或 CMD)。
- 要将开发驱动器指定为受信任的驱动器,请输入以下命令,将
<drive-letter>
替换为要对其指定信任的存储驱动器号。 例如,fsutil devdrv trust D:
。
fsutil devdrv trust <drive-letter>:
要确认开发驱动器是否受信任,请输入以下命令:
fsutil devdrv query <drive-letter>:
不能将计算机上的 C: 驱动器指定为开发驱动器。 开发人员工具(如 Visual Studio、MSBuild、.NET SDK、Windows SDK)应存储在 C: 驱动器上,而不是存储在开发驱动器中。
什么是 Microsoft Defender 性能模式?
性能模式现已在 Windows 11 上作为一项新的 Microsoft Defender 防病毒功能提供。 此功能可降低 Microsoft Defender 防病毒扫描对存储在指定开发驱动器上的文件的性能影响。
要详细了解性能模式及其与实时保护的比较,请参阅 Microsoft Defender:使用性能模式保护开发驱动器。
要启用性能模式,必须将开发驱动器指定为受信任的驱动器,并且 Microsoft Defender 实时保护必须设置为“开启”。
如何在开发驱动器上配置其他筛选器?
默认情况下,筛选器管理器将关闭开发驱动器上的所有筛选器,防病毒筛选器除外。 防病毒筛选器是附加在 FSFilter Anti-Virus
高度范围(即 320000-329999)的筛选器。 FSFilter Anti-Virus
包括用于在文件 I/O 期间检测和消除病毒的筛选器。
可以使用 fsutil
将默认策略配置为不向开发驱动器附加防病毒筛选器。 警告:此策略适用于系统上的所有开发驱动器。
fsutil devdrv enable /disallowAv
fsutil devdrv enable [/allowAv|/disallowAv]
命令包括以下两个选项:
disallowAv
:指定开发驱动器没有任何附加的筛选器(甚至没有防病毒筛选器)。 可以使用fsutil devdrv setfiltersallowed <Filter-1>
命令重新添加筛选器。 (将<Filter-1>
替换为所需筛选器的名称。)allowAv
:指定由默认的防病毒筛选器保护开发驱动器。
有关帮助,请输入命令:fsutil devdrv enable /?
。 如果既未指定 /allowAv
也未指定 /disallowAv
,则不会为开发驱动器配置防病毒策略,系统默认由防病毒筛选器保护开发驱动器。
警告
分离筛选器时请格外小心。 分离防病毒筛选器存在安全风险,这意味着存储不在标准 Microsoft Defender 实时保护或性能模式扫描的范围内。 你负责评估与分离防病毒筛选器相关的风险,并且只有在确信文件不会受到恶意攻击时,才应这样做。
要了解有关筛选器的详细信息,请参阅关于文件系统筛选器驱动程序、安装筛选器驱动程序、筛选器管理器概念、微筛选器驱动程序的加载顺序组和等级。
允许在开发驱动器上附加所选筛选器
如果在商业或企业环境中工作,除了上述策略之外,公司的组策略可能还配置为在开发驱动器上附加所选筛选器。 系统管理员还可以使用允许列表选择将其他筛选器附加到某个特定的开发驱动器或所有开发驱动器。
系统管理员可能想要添加一个名为“Foo”的筛选器,我们将其称为 FooFlt
。 他们可能只希望在作为 D:
载入的开发驱动器上启用该筛选器。 他们不需要在装载为 E:
的另一个开发驱动器上启用该筛选器。 管理员可以使用系统提供的命令行实用工具 fsutil.exe 对开发人员驱动器上的筛选器允许列表进行更改。
除了上面讨论的防病毒筛选器策略之外,还可以向开发驱动器附加专门设置为允许的筛选器。
筛选器允许列表示例
以下示例演示了管理员能够使用允许列表设置计算机上的所有开发驱动器上允许的筛选器。
要使用 setfiltersallowed
命令允许在所有开发驱动器上使用 Filter-01
和 Filter-02
,请使用以下命令:
fsutil devdrv setfiltersallowed Filter-01, Filter-02
要显示适用于所有开发驱动器的筛选器附加策略,请使用以下命令:
fsutil devdrv query
结果将显示以下内容:
- 已启用开发人员卷。
- 开发人员卷受到防病毒筛选器的保护。
- 任何开发驱动器上允许的筛选器:
Filter-01
、Filter-02
要将此开发驱动器配置更改为仅允许在开发驱动器上使用 Filter-03
,且不再允许附加 Filter-01
和 Filter-02
,请使用以下命令:
fsutil devdrv setfiltersallowed Filter-03
请参阅 fsutil devdrv /?
以了解其他相关命令。
适用于常见方案的筛选器
以下筛选器可用于开发驱动器:
方案:说明 | 筛选器名称 |
---|---|
GVFS:Windows 的稀疏登记 | PrjFlt |
MSSense:Microsoft Defender for Endpoint EDR 传感器 | MsSecFlt |
Defender:Windows Defender 筛选器 | WdFilter |
Docker:从开发人员驱动器中运行容器 | bindFlt, wcifs |
Windows Performance Recorder:测量文件系统操作 | FileInfo |
资源监视器:显示资源使用情况。 在“磁盘活动”中显示文件名所必需 | FileInfo |
进程监视器 - Sysinternals:监视文件系统活动 | ProcMon24 |
Windows 升级:在 OS 升级期间使用。 如果用户将 TEMP 环境变量移动到开发驱动器,则为必需项 | WinSetupMon |
Windows Defender 应用程序控制 (WDAC):使用 AppLocker 标识服务的托管安装程序跟踪 | applockerfltr |
默认情况下会附加 WdFilter
。 以下命令是一个示例,演示如何将所有这些其他筛选器附加到开发人员驱动器:
fsutil devdrv setfiltersallowed "PrjFlt, MsSecFlt, WdFilter, bindFlt, wcifs, FileInfo, ProcMon24"
提示
要确定特定方案所需的筛选器,可能需要暂时将开发驱动器标记为不受信任。 然后,运行方案并记下附加到卷的所有筛选器。 再次将开发驱动器指定为受信任的驱动器,然后将筛选器添加到该开发驱动器的允许列表中,以确保方案成功。 最后,移除可能不需要的任何筛选器(一次只能移除一个),同时确保方案按预期运作。
提示
进程监视器的筛选器名称可能会更改。 如果添加筛选器名称“ProcMon24”似乎不能捕获开发人员驱动器上的文件系统活动,请使用命令 fltmc filters
列出筛选器,查找进程监视器的筛选器名称,并使用该名称而不是“ProcMon24”。
阻止克隆支持
从 Windows 11 24H2 & Windows Server 2025 开始,Dev Drive 现在支持“阻止克隆”。 由于开发人员驱动器利用 ReFS 文件系统格式,因此每当使用开发驱动器复制文件时,“阻止克隆支持”都将意味着免费的性能优势。 利用阻止克隆,文件系统可以代表应用程序复制一系列文件字节作为低成本的元数据操作,而不是对基础物理数据执行高昂的读取和写入操作。 这可以更快地完成复制、减少到基础存储的 I/O,并通过允许多个文件共享同一逻辑群集来提高存储容量。 详细了解阻止克隆。
开发驱动器不支持哪些方案? 有哪些限制?
在少数情况下,不建议使用开发驱动器。 其中包括:
- 将现有存储卷重新格式化为“开发驱动器”将销毁该卷中存储的任何内容。 不支持在重新格式化现有卷的同时保留存储在其中的内容。
- 创建托管在固定磁盘(HDD 或 SSD)上的虚拟硬盘 (VHD) 时,不建议复制 VHD,而应将其移至其他计算机,然后继续将其用作开发人员驱动器。
- 存储在可移动或可热插拔的磁盘上的卷(如 USB、HDD 或 SSD 外部驱动器)不支持指定为开发驱动器。
- 由可移动或可热插拔的磁盘托管的 VHD 中的卷不支持指定为开发驱动器。
- 不能将计算机上的 C: 驱动器指定为开发驱动器。
- 开发驱动器的用途是托管文件,这些文件用于生成和调试指定用于存储存储库、包缓存、工作目录和临时文件夹的软件项目。 不建议在开发驱动器上安装应用程序。
- 不支持在动态磁盘上使用开发人员驱动器。 请改用存储空间,这有助于在将驱动器添加到电脑时保护数据免受驱动器故障的影响,并且可以在一段时间后扩展存储。
如何删除开发驱动器
可以在 Windows 11 系统设置中删除开发驱动器:System
>Storage
>Disks & volumes
。
打开 Windows 设置菜单,然后依次选择存储、高级存储设置和磁盘和卷,可在其中查找设备上存储卷的列表。 选择要删除的开发人员驱动器存储卷旁边的“属性”。 在驱动器的属性中,你将在格式标签下找到删除选项。
此时,开发人员驱动器将被删除。 但是,如果将开发人员驱动器创建为新的 VHD,则需删除 VHD 以回收该 VHD 使用的存储空间。 为此,必须先分离虚拟磁盘,以便可删除托管开发人员驱动器的 VHD 文件,具体请执行以下步骤:
- 通过在任务栏的搜索框中输入“计算机管理”来打开磁盘管理工具。 在“存储”标题下选择磁盘管理。 选择开发人员驱动器的磁盘(而不是卷)。 右键单击托管开发人员驱动器的所选磁盘,然后从显示的菜单中选择分离 VHD。
- 随即显示一个弹出窗口,告知你分离虚拟硬盘会导致其不可用。
- 分离后,即可删除 VHD。
开发驱动器常见问题解答
有关开发驱动器的一些常见问题解答,包括:
如何自定义开发驱动器以满足我的需求?
已针对常见开发方案优化了开发驱动器默认设置,但可以进行自定义,从而可以控制在存储卷上运行的驱动程序和服务。 要自定义开发驱动器设置,请打开设置菜单。 在系统>存储>磁盘和卷下,转到属性。
重要
如果你在一家企业工作,开发驱动器仍将通过你所在的企业设置进行管理。 因此,某些自定义项可能不可用,具体取决于公司策略。
是否需要重新安装应用程序才能使用开发驱动器?
否,安装在计算机的 C: 驱动器上的应用程序或工具可以利用开发驱动器中的文件。 但是,对于开发项目,建议将任何特定于项目的目录、文件和包缓存存储在开发驱动器中。 可以将开发人员驱动器作为提醒固定到文件资源管理器的快速访问。
ReFS 使用的内存是否比 NTFS 多?
是的,ReFS 使用的内存略多于 NTFS。 建议使用至少具有 8gb 内存(理想情况下为 16gb)的计算机。
是否可以在计算机上有多个开发驱动器?
是的。 如果有足够空间,可以根据需要创建任意数量的开发驱动器。 针对每个软件开发项目使用单独的开发驱动器,这样就只需在开发结束时删除驱动器,而无需再次对磁盘进行重新分区。 但请记住,开发驱动器的最小大小为 50GB。
要将开发驱动器与 Visual Studio 配合使用,我需要了解哪些信息?
创建开发驱动器后,Visual Studio 会在你创建新项目或克隆现有项目时自动识别它,并默认选择该文件路径。 要在使用 Visual Studio 时优化性能,建议将之前可能保存在其他位置的任何项目代码、包缓存和 Copy on write
MS 生成任务移动到开发驱动器中。 (请参阅 Visual Studio 文档中的如何更改生成输出目录。)此外,还建议考虑将 %TEMP%
和 %TMP%
envvars 重定向到开发驱动器。 这还需要添加 Windows 更新过程所需的 WinSetupMon
筛选器。 (请参阅适用于常见方案的筛选器。 许多程序都会使用这些内容,因此请注意潜在的副作用。 此外,还建议使用 Microsoft Defender 性能模式,以便使用开发驱动器提升异步性能。 完全关闭 Microsoft Defender 可能会带来最大的性能提升,但这可能会增加安全风险,并且这是由系统管理员控制的设置。
有关详细信息,请参阅博客文章:在 Visual Studio 和 Dev Boxes 中使用开发驱动器提高性能。
开发驱动器是否适用于 WSL 项目文件?
可以从通过 WSL 运行的 Linux 分发版访问在 Windows 文件系统上运行的开发驱动器项目文件。 但是,WSL 在 VHD 中运行,为了获得最佳性能,文件应存储在 Linux 文件系统上。 WSL 不在 Windows 文件系统范围内,因此,从通过 WSL 运行的 Linux 分发版访问开发驱动器中的项目文件时,应该不会有任何性能改进。
使用哪种方法格式化 Windows 存储卷?
请参阅 Windows 驱动程序文档中的 MSFT_Volume class
。
如何通过开发人员驱动器配置和使用 Live Unit Testing?
可以在 Visual Studio 文档中找到有关如何配置和使用 Live Unit Testing 的指南。 但是,存在对 ProjFS 的依赖关系。 需要将 Live Unit Testing 工作区根目录移动到开发人员驱动器,并将 Windows 投影文件系统添加到允许的筛选器列表。 可以在 PowerShell 中运行以下命令来执行此操作:
fsutil devdrv setfiltersallowed PrjFlt
为用作开发人员驱动器而创建的 VHD 是否会在存储它的驱动器已启用 BitLocker 的情况下进行加密?
是的,开发人员驱动器 VHD 将纳入托管卷的 BitLocker 加密操作。 无需在装载的 VHD 上启用 BitLocker。
开发驱动器能否在 Windows 上加快 Java 开发?
能,在处理 Java 开发项目时,使用开发驱动器可以提高工作效率并减少生成时间。 请参阅博客文章“使用开发驱动器在 Windows 上加快 Java 开发”。
除了 Microsoft Defender 之外,是否可以将开发人员驱动器性能模式应用于防病毒程序?
开发人员驱动器性能模式是与 Defender 实时保护相关的 Microsoft Defender 防病毒功能。 在开发人员驱动器中使用备用防病毒程序时,不会应用性能模式,但可以调整附加到开发人员驱动器的安全筛选器允许列表,以便找到针对开发工作的性能和安全性之间的适当平衡。 在对附加的筛选器列表进行更改时,需要确保了解任何附加的筛选器的功能。 在适用于常见方案的筛选器中查找含说明的列表。
如何找到已创建和无法继续跟踪的开发人员驱动器?
装载开发人员驱动器但忘记了其所在位置时,可以使用以下方法来查找:
在开发人员主页的 Windows 自定义功能中使用开发人员驱动器见解。
使用 DiskPart 和“list vdisk”命令显示 vhdx 的完整路径:1) 打开命令行并输入
diskpart
,2) DiskPart 打开后,输入list vdisk
。使用 Powershell 和“Get-Disk | Select-Object FriendlyName,Location]”:打开 PowerShell 并输入
Get-Disk | Select-Object FriendlyName,Location
。
如何参与编辑这些文档和讨论常见问题解答?
如果在本文档中发现任何问题或想要提供其他常见问题解答建议,请访问 GitHub 上的 Windows 开发人员文档开放源代码存储库。