Error MSB3027: Could not copy "C:\pagefile.sys" to "bin\roslyn\pagefile.sys". Exceeded retry count of 10. Failed

23,072

Solution 1

As indicated in this answer from Pramod's comment the problem stems from the Microsoft.CodeDom.Providers.DotNetCompilerPlatform nuget package, specifically upgrading from version 1.0.0 to 1.0.1.

For me however, downgrading using Visual Studio caused further build errors. To solve the problem I had to manually edit my csproj and packages.config files, removing all references to Microsoft.Net.Compilers and Microsoft.CodeDom.Providers.DotNetCompilerPlatform.

Specifically, this meant:

  • Removing the relevant <Import Project="... sections for all versions of both libraries (usually towards the beginning of the csproj)
  • Removing the <Reference Include="... sections for both versions of both libraries
  • Removing the <Error Condition="!Exists(... sections for both versions of both libraries from within the EnsureNuGetPackageBuildImports target section
  • Removing all Microsoft.CodeDom.Providers.DotNetCompilerPlatform and Microsoft.Net.Compilers packages from the packages.config.

I was then able to manage the projects nuget packages in VS and (in order) :

  • Add Microsoft.Net.Compilers version 1.2.2
  • Add Microsoft.CodeDom.Providers.DotNetCompilerPlatform version 1.0.1

This solved the pagefile build error, and the runtime error which prompted me to try and upgrade in the first place.

Solution 2

I removed these packages from nuget package manager since I do not use them:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform

  • Microsoft.Net.Compilers

Now everything works.

Solution 3

I've found a different solution to this error. In my case I had been moving around a project within my solution (I put it in a subfolder). My references to packages (located in %solutionfolder%/packages) in the project file were broken and I fixed them manually.

However, there are two supplement imports that I forgot:

  <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
  <Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />

I first updated the first one from ..\packages to ..\..\packages (lazy as I am). Building the project after that gave me the pagefile.sys error.

Updating the second import (same change: ..\packages to ..\..\packages) solved it for me.

Solution 4

Using the Clean Solution/Rebuild Solution steps resolved this issue for me.

Solution 5

Remove these two lines from .csproj file:

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
Share:
23,072
Pramod Raut
Author by

Pramod Raut

Updated on July 09, 2021

Comments

  • Pramod Raut
    Pramod Raut almost 3 years

    I am consistently getting this error with VS 2013:

    Could not copy "C:\pagefile.sys" to "bin\roslyn\pagefile.sys". Exceeded retry count of 10. Failed. Unable to copy file "C:\pagefile.sys" to "bin\roslyn\pagefile.sys". The process cannot access the file

    Please help me.

  • Adam
    Adam over 7 years
    Following this is the only thing that worked for me. Also, instead of getting 1.2.2 of Microsoft.Net.Compilers I got 1.3.2 and things worked fine as well.
  • Cairo
    Cairo over 6 years
    Also happens upgrading from version 1.3.2 to 2.4.0 probably because some library get into the cache.