SECURITY WARNING: Never run commands you don't understand. Always review code before execution. Use at your own risk.
Windows New Added 9 September 2026

Windows: The process cannot access the file because it is being used

Windows takes mandatory file locks, so a handle held anywhere blocks a delete or rename that would simply succeed on Linux. The holder is often not the obvious application: an antivirus scanner, the search indexer or an Explorer preview pane can keep a handle open long enough to break a build's clean step.

Quick fix

Read the commands before running them. Anything that restarts a service, deletes data or changes permissions should be tried on a non-production system first.

Quick fix
:: Find the process holding the handle
handle64.exe -a -u C:\build\app.dll     :: Sysinternals Handle
openfiles /query /v                      :: files opened over a share

:: PowerShell: which process has the file loaded
Get-Process | Where-Object { $_.Modules.FileName -contains "C:\build\app.dll" }

:: Exclude build directories from real time scanning
Add-MpPreference -ExclusionPath "C:\build"

:: Stop the service or app pool before overwriting its binaries
Stop-Service MyService
Restart-WebAppPool DefaultAppPool

:: In build scripts, retry the delete briefly rather than failing the run

How to diagnose Windows errors

Windows errors surface as numeric codes that mean little on their own, but the operating system keeps detailed logs that almost always contain the real cause. Two categories dominate developer machines: missing Visual C++ redistributables (a DLL-not-found error for a runtime the application assumed was present) and architecture or dependency mismatches (the 0xc000007b family, usually a 32-bit/64-bit mix).

If the quick fix above does not resolve it, work through these steps. They apply to this whole class of error, not just to this one message, which is usually what saves the time.

  1. Read Event Viewer under Windows Logs → Application and System, filtered to the time of the failure. The numeric code in the dialog maps to a detailed entry there.
  2. For MSI failures, install with verbose logging: msiexec /i package.msi /l*v install.log, then search the log for "Return value 3". The lines just above name the failing action.
  3. For missing DLLs, install the matching Visual C++ Redistributable and confirm the architecture matches the application (x64 versus x86).
  4. Repair system corruption with sfc /scannow followed by DISM /Online /Cleanup-Image /RestoreHealth, in that order.
  5. For access-denied errors, check both NTFS permissions and whether the process needs elevation; UAC virtualisation can make writes appear to succeed while landing elsewhere.

Tools worth reaching for

  • Event Viewer
  • msiexec /l*v
  • sfc /scannow
  • DISM /RestoreHealth
  • Process Monitor (ProcMon)

Authoritative references

Primary documentation for this error, worth reading before applying any fix in production.

learn.microsoft.com

Related Windows errors

See all 10 Windows errors →

Browse other categories

Something missing or wrong?

This entry is maintained by hand. If the fix is out of date, incomplete, or you have a better one, email a correction and it will be reviewed.