【问题标题】:Error MSB3027: Could not copy "C:\pagefile.sys" to "bin\roslyn\pagefile.sys". Exceeded retry count of 10. Failed错误 MSB3027:无法将“C:\pagefile.sys”复制到“bin\roslyn\pagefile.sys”。重试次数超过 10。失败
【发布时间】:2016-09-22 13:01:34
【问题描述】:

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

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

请帮帮我。

【问题讨论】:

  • 确保 C:\pagefile.sys 存在或未在使用中。
  • 非常奇怪的错误,永远不可能复制页面文件。尝试毫无意义,罗斯林当然不会这样做。修复您的项目。
  • 终于从这篇文章中找到了答案——stackoverflow.com/a/32784349/5470285
  • 我在 VS 2019 16.8.4 中遇到了类似的问题,我有 2 个解决方法。 --> 降级到 VS 2019 16.7.7 --> 将 VS 解决方案和项目移至一级文件夹以减少路径长度。

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


【解决方案1】:

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

然而,对我来说,使用 Visual Studio 降级会导致进一步的构建错误。为了解决这个问题,我不得不手动编辑我的 csproj 和 packages.config 文件,删除所有对 Microsoft.Net.CompilersMicrosoft.CodeDom.Providers.DotNetCompilerPlatform 的引用。

具体来说,这意味着:

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

然后我能够在 VS 中管理项目 nuget 包,并且(按顺序):

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

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

【讨论】:

  • 以下是唯一对我有用的东西。此外,我没有获得 Microsoft.Net.Compilers 的 1.2.2,而是获得了 1.3.2,并且一切正常。
  • 也发生从版本 1.3.2 升级到 2.4.0 可能是因为某些库进入缓存。
【解决方案2】:

我从 nuget 包管理器中删除了这些包,因为我不使用它们:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform

  • Microsoft.Net.Compilers

现在一切正常。

【讨论】:

    【解决方案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..\..\packages)为我解决了这个问题。

    【讨论】:

      【解决方案4】:

      使用清洁解决方案/重建解决方案步骤为我解决了这个问题。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          没什么好说的,但我建议使用 SysInternals Process Monitor 记录您的问题

          一旦你有procmon 运行,你想记录(或跟踪,换句话说)你对VS2013 的问题。完成录制后,您需要按流程过滤结果(在您的情况下为devenv.exe),因此按Ctrl-T 打开流程树,然后找到devenv.exe

          选择它,然后单击“包含子树”按钮。关闭进程树窗口,然后从顶部菜单中选择Tools -&gt; Count Occurrences。将“列”下拉框设置为“结果”,然后按“计数”按钮。输出将是一组结果及其各自的计数。通过查看这些结果,您通常可以很好地了解正在发生的事情。例如,如果您看到很多涉及ACCESS DENIEDFILE LOCKED WITH ONLY READERS 的结果,那么您的问题很可能与权限有关。

          【讨论】:

            【解决方案7】:

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

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

            对我有用。

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

            【讨论】:

              猜你喜欢
              • 2016-08-17
              • 2017-04-24
              • 2021-12-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-01-23
              • 2015-12-08
              相关资源
              最近更新 更多