错误MSB3027:无法将“C:\ pagefile.sys”复制到“bin \ roslyn \ pagefile.sys”。超过重试次数10.失败

时间:2016-05-25 05:23:40

标签: c# visual-studio visual-studio-2012 visual-studio-2013

我一直在VS 2013中遇到此错误:

  

无法将“C:\ pagefile.sys”复制到“bin \ roslyn \ pagefile.sys”。   超过重试次数10.失败。无法复制文件   “C:\ pagefile.sys”改为“bin \ roslyn \ pagefile.sys”。这个过程不能   访问文件

请帮帮我。

8 个答案:

答案 0 :(得分:39)

this answer from Pramod's comment所述,问题源于 Microsoft.CodeDom.Providers.DotNetCompilerPlatform nuget包,特别是从版本 1.0.0 升级到 1.0.1

但对我来说,使用Visual Studio降级会导致进一步的构建错误。要解决此问题,我必须手动编辑csproj和packages.config文件,删除对 Microsoft.Net.Compilers Microsoft.CodeDom.Providers.DotNetCompilerPlatform 的所有引用。< / p>

具体来说,这意味着:

  • 删除两个库的所有版本的相关<Import Project="...部分(通常在csproj的开头)
  • 删除两个版本的两个版本的<Reference Include="...部分
  • <Error Condition="!Exists(...目标部分
  • 中删除这两个版本的EnsureNuGetPackageBuildImports部分
  • 从packages.config中删除所有Microsoft.CodeDom.Providers.DotNetCompilerPlatformMicrosoft.Net.Compilers个包。

然后我能够管理VS中的项目nuget包和(按顺序):

  • 添加 Microsoft.Net.Compilers 版本 1.2.2
  • 添加 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 版本 1.0.1

这解决了页面文件构建错误和运行时错误,它促使我首先尝试升级。

答案 1 :(得分:8)

我删除:

- Microsoft.CodeDom.Providers.DotNetCompilerPlatform

- Microsoft.Net.Compilers

来自nuget包管理器,因为我没有使用它。

然后一切都好。

答案 2 :(得分:3)

我找到了另一种解决此错误的方法。 在我的情况下,我一直在我的解决方案中移动一个项目(我把它放在一个子文件夹中)。我对项目文件中的包(位于%solutionfolder%/ packages中)的引用被破坏了,我手动修复了它们。

然而,我忘记了两个补充品进口:

  <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')" />

我首先将第一个从.. \ packages更新到.... \ packages(懒得像我一样)。之后构建项目给了我pagefile.sys错误。

更新第二次导入(同样的更改:.. \ packages to .... \ packages)为我解决了这个问题。

答案 3 :(得分:0)

没什么可说的,但我建议使用SysInternals Process Monitor

录制您的问题

运行procmon后,您希望使用VS2013记录(或跟踪,换句话说)您的问题。完成录制后,您需要按流程过滤结果(在您的情况下为devenv.exe),因此请按Ctrl-T打开进程树,然后找到{{ 1}}。

选择它,然后单击&#34;包含子树&#34;按钮。关闭Process Tree窗口,然后从顶部菜单中选择devenv.exe。将列下拉框设置为&#39;结果&#39;然后按“计数”按钮。输出将是结果的集合及其各自的计数。通过查看这些结果,您通常可以很好地了解正在发生的事情。例如,如果您看到很多涉及Tools -> Count OccurrencesACCESS DENIED的结果,那么您的问题很可能与权限相关。

答案 4 :(得分:0)

从.csproj文件中删除这两行:

<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')" />

答案 5 :(得分:0)

使用“清洁解决方案/重建解决方案”步骤为我解决了此问题。

答案 6 :(得分:0)

我在.csproj文件中删除了这一行

<Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />

为我工作。

我使用Visual Studio 2019,但我不知道为什么为什么突然在我的项目中出现此错误。

答案 7 :(得分:0)

使用Sysinternals Process Explorer仅搜索pagefile.sys上具有句柄的进程并将其杀死。