FolderRisk: Do not touch
Microsoft.NET C:\Windows\Microsoft.NET
System folder for the .NET Framework: runtimes, compilers and tools for .NET Framework 2.0 through 4.x, in 32-bit and 64-bit flavors.
What it’s for
C:\Windows\Microsoft.NET holds the .NET Framework that ships with Windows: the runtime (CLR), command-line compilers and the base assemblies of .NET Framework applications. On recent Windows 10 and 11 versions, .NET Framework 4.8.x is part of the operating system and its fixes normally arrive with Windows cumulative updates. Newer .NET versions (.NET 6, 8, and so on) are installed separately and are not stored here.
What it contains
Framework: 32-bit runtime and tools, one subfolder per CLR version (for examplev4.0.30319andv2.0.50727).Framework64: the same components in 64-bit.- Version subfolders that include
csc.exe,MSBuild.exe,regasm.exeandngen.exe. - The
Temporary ASP.NET Filesfolder (under the CLR 4 folder): the compilation cache for ASP.NET applications hosted by IIS.
Note that the folder name does not reflect the .NET Framework version (the v4.0.30319 folder serves versions 4.0 through 4.8.x). Query the registry to find the actual version.
Risks and best practices
- The files are owned by TrustedInstaller and every .NET Framework application depends on them. Only the
Temporary ASP.NET Filescache can be cleared, after stopping the affected IIS site, and it is rebuilt on demand. - To repair or add a version, use Windows features or the installer, never a file copy.
- Do not confuse it with .NET (formerly .NET Core), which is installed under
C:\Program Files\dotnet. Native images generated by NGen live inC:\Windows\assembly, not here.
Useful commands
# Runtime versions present on disk (Framework = 32-bit, Framework64 = 64-bit)Get-ChildItem "$env:windir\Microsoft.NET\Framework*" -Directory | Select-Object FullName
# .NET Framework 4.x version recorded in the RegistryGet-ItemProperty "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" | Select-Object Version, Release