You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `Microsoft.Build.CopyOnWrite` MSBuild SDK overrides the native MSBuild Copy task to add support for ReFS CloneFile (Copy on Write). It is designed to be as backwards compatible as possible and should directly replace all usages of Copy in MSBuild.
5
+
The `Microsoft.Build.CopyOnWrite` MSBuild SDK overrides the native MSBuild Copy task to add support for ReFS and Dev Drive CloneFile (Copy on Write). It is designed to be as backwards compatible as possible and should directly replace all usages of Copy in MSBuild.
6
6
7
7
## Usage in `Directory.Packages.Props`
8
8
This is intended to be used in a large repo already onboarded to Central Package Management. In your `Directory.Packages.props`:
@@ -30,7 +30,7 @@ If your project types don't support NuGet (e.g. `.vcxproj`), you can alternative
30
30
## Background
31
31
This SDK aims to improve the performance of large repositories by minimizing file copies during the build process. Many large repos have the snowball effect where Resolve Assembly Reference will add more and more dependencies that get copied along in different layers of the build graph. This is an attempt to accelerate those by taking advantage of the Copy on Write feature of the OS using this library: [https://github.com/microsoft/CopyOnWrite](https://github.com/microsoft/CopyOnWrite).
32
32
33
-
Example build, internal Microsoft repo with 758 nodes, 3989 edges:
33
+
Example build, internal Microsoft repo with 758 nodes, 3989 edges, on Win11 22H2 ReFS, with the NuGet cache moved onto the same disk volume:
34
34
35
35
Command | Value
36
36
---|---
@@ -44,5 +44,7 @@ Command | Value
44
44
Enlistment size| 66.4 GB (71,305,402,686 bytes)
45
45
Size on disk| **3.83 GB (3,055,628,028 bytes)**
46
46
47
+
See [blog post 1](https://aka.ms/EngMSDevDrive) and [blog post 2](https://aka.ms/VSDevDrive) for more information on Dev Drive, copy-on-write, and moving your package caches.
48
+
47
49
## Caveats
48
-
To use this feature, you need run on a drive formatted [ReFS](https://learn.microsoft.com/en-us/windows-server/storage/refs/refs-overview) on Windows. This is only available on Windows Server, Enterprise, and Pro for Workstation SKUs.
50
+
To use this feature, you need run on a drive formatted with [ReFS](https://learn.microsoft.com/en-us/windows-server/storage/refs/refs-overview)or [Dev Drive](https://aka.ms/devdrive)on Windows. ReFS is available on Windows Server, or on Windows 11 22H2 Enterprise and Pro SKUs. Dev Drive is available on all Windows SKUs.
0 commit comments