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

Posted

技术标签:

【中文标题】错误 MSB3027:无法将“C:\\pagefile.sys”复制到“bin\\roslyn\\pagefile.sys”。重试次数超过 10。失败【英文标题】: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 存在或未在使用中。 非常奇怪的错误,永远不可能复制页面文件。尝试毫无意义,罗斯林当然不会这样做。修复您的项目。 终于从这篇文章中找到了答案——***.com/a/32784349/5470285 我在 VS 2019 16.8.4 中遇到了类似的问题,我有 2 个解决方法。 --> 降级到 VS 2019 16.7.7 --> 将 VS 解决方案和项目移至一级文件夹以减少路径长度。 【参考方案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,不知道为什么我的项目中突然出现这个错误。

【讨论】:

以上是关于错误 MSB3027:无法将“C:\pagefile.sys”复制到“bin\roslyn\pagefile.sys”。重试次数超过 10。失败的主要内容,如果未能解决你的问题,请参考以下文章

MSBuild 无法使用临时密钥签署 ClickOnce 清单(错误 MSB3326 和 MSB3321)

错误 MSB3103:Resx 文件无效。指定的模块无法找到

npm 安装错误 - MSB3428:无法加载 Visual C++ 组件“VCBuild.exe”

错误 MSB3411:无法加载 Visual C++ 组件“VCBuild.exe”

MSBUILD:错误 MSB3428:无法加载 Visual C++ 组件“VCBuild.exe”

MSB3021 在 Visual Studio 中运行 Service Fabric 应用时无法复制文件找不到部分路径错误