错误 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.Compilers 和 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 的引用。
具体来说,这意味着:
删除两个库的所有版本的相关<Import Project="...
部分(通常在 csproj 的开头)
删除两个库的两个版本的 <Reference Include="...
部分
从 EnsureNuGetPackageBuildImports
目标部分中删除两个库的两个版本的 <Error Condition="!Exists(...
部分
从 packages.config 中删除所有 Microsoft.CodeDom.Providers.DotNetCompilerPlatform
和 Microsoft.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 -> Count Occurrences
。将“列”下拉框设置为“结果”,然后按“计数”按钮。输出将是一组结果及其各自的计数。通过查看这些结果,您通常可以很好地了解正在发生的事情。例如,如果您看到很多涉及ACCESS DENIED
或FILE 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 应用时无法复制文件找不到部分路径错误