每次我在VS 2013中收到此错误
无法将“C:\ pagefile.sys”复制到“bin \ roslyn \ pagefile.sys” . 超过重试次数10.失败 . 无法将文件“C:\ pagefile.sys”复制到“bin \ roslyn \ pagefile.sys” . 该进程无法访问该文件
请帮我 .
如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的开头)
<Import Project="...
删除两个版本的两个版本的 <Reference Include="... 部分
<Reference Include="...
从 EnsureNuGetPackageBuildImports 目标部分中删除两个版本的两个版本的 <Error Condition="!Exists(... 部分
EnsureNuGetPackageBuildImports
<Error Condition="!Exists(...
从packages.config中删除所有 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 和 Microsoft.Net.Compilers 包 .
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Microsoft.Net.Compilers
然后我能够管理VS中的项目nuget包和(按顺序):
添加 Microsoft.Net.Compilers 版本 1.2.2
添加 Microsoft.CodeDom.Providers.DotNetCompilerPlatform version 1.0.1
这解决了页面文件构建错误和运行时错误,这促使我首先尝试升级 .
我删除:
- Microsoft.CodeDom.Providers.DotNetCompilerPlatform
- Microsoft.Net.Compilers
来自nuget包管理器,因为我没有使用它 .
一切都好 .
我找到了一个不同的解决方案来解决这个错误 . 在我的情况下,我一直在我的解决方案中移动一个项目(我把它放在一个子文件夹中) . 我对项目文件中的包(位于%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)为我解决了这个问题 .
没什么可走的,但我建议用SysInternals Process Monitor记录你的问题
运行 procmon 后,您希望使用 VS2013 记录(或跟踪,换句话说)您的问题 . 一旦你想要按流程过滤结果(在你的情况下, devenv.exe ),所以按 Ctrl-T 打开进程树,找到 devenv.exe .
procmon
VS2013
devenv.exe
Ctrl-T
选择它,然后单击"Include Subtree"按钮 . 关闭Process Tree窗口,然后从顶部菜单中选择 Tools -> Count Occurrences . 将Column下拉框设置为'Result',然后按Count按钮 . 输出将是结果的集合及其各自的计数 . 通过查看这些结果,您通常可以很好地了解正在发生的事情 . 例如,如果您看到很多涉及 ACCESS DENIED 或 FILE LOCKED WITH ONLY READERS 的结果,那么很可能您的问题与权限有关 .
Tools -> Count Occurrences
ACCESS DENIED
FILE LOCKED WITH ONLY READERS
4 回答
如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 version 1.0.1
这解决了页面文件构建错误和运行时错误,这促使我首先尝试升级 .
我删除:
- Microsoft.CodeDom.Providers.DotNetCompilerPlatform
- Microsoft.Net.Compilers
来自nuget包管理器,因为我没有使用它 .
一切都好 .
我找到了一个不同的解决方案来解决这个错误 . 在我的情况下,我一直在我的解决方案中移动一个项目(我把它放在一个子文件夹中) . 我对项目文件中的包(位于%solutionfolder%/ packages中)的引用被破坏,我手动修复它们 .
但是,我忘记了两个补充进口:
我首先将第一个从.. \ packages更新到.... \ packages(像我一样懒) . 之后构建项目给了我pagefile.sys错误 .
更新第二个导入(相同的更改:.. \ packages to .... \ packages)为我解决了这个问题 .
没什么可走的,但我建议用SysInternals Process Monitor记录你的问题
运行
procmon
后,您希望使用VS2013
记录(或跟踪,换句话说)您的问题 . 一旦你想要按流程过滤结果(在你的情况下,devenv.exe
),所以按Ctrl-T
打开进程树,找到devenv.exe
.选择它,然后单击"Include Subtree"按钮 . 关闭Process Tree窗口,然后从顶部菜单中选择
Tools -> Count Occurrences
. 将Column下拉框设置为'Result',然后按Count按钮 . 输出将是结果的集合及其各自的计数 . 通过查看这些结果,您通常可以很好地了解正在发生的事情 . 例如,如果您看到很多涉及ACCESS DENIED
或FILE LOCKED WITH ONLY READERS
的结果,那么很可能您的问题与权限有关 .