Visual Studio 2017 bin \ roslyn文件在构建期间被锁定

时间:2017-06-21 17:09:10

标签: visual-studio-2017

我正在运行VS2017版本26430.13,每次我尝试构建一个Web项目时,都会收到错误,即访问bin \ roslyn中的文件被拒绝。 在大约5分钟的时间内,文件被解锁并且我可以构建但是5分钟的延迟是不可接受的。

这些是保持锁定的文件:

  • Microsoft.CodeAnalysis.CSharp.dll
  • Microsoft.CodeAnalysis.dll
  • Microsoft.CodeAnalysis.VisualBasic.dll
  • Microsoft.DiaSymReader.Native.amd64.dll
  • System.Collections.Immutable.dll
  • System.Diagnostics.FileVersionInfo.dll
  • System.IO.Compression.dll
  • System.IO.FileSystem.dll
  • System.IO.FileSystem.Primitives.dll
  • System.Reflection.Metadata.dll
  • System.Security.Cryptography.Algorithms.dl
  • System.Security.Cryptography.Primitives.dl
  • System.ValueTuple.dll
  • VBCSCompiler.exe

15 个答案:

答案 0 :(得分:114)

只需打开任务管理器并终止任何VBCSCompiler.exe实例。您甚至不需要关闭Visual Studio。

答案 1 :(得分:67)

将Microsoft.CodeDom.Providers.DotNetCompilerPlatform包更新为V1.0.7

  • 从NuGet中找到Microsoft.CodeDom.Providers.DotNetCompilerPlatform 卸载旧版本
    安装V1.0.7或最新版本

答案 2 :(得分:13)

您可以在预构建事件中使用以下命令,而不是手动终止进程:

tasklist /FI "IMAGENAME eq VBCSCompiler.exe" 2>NUL | find /I /N "VBCSCompiler.exe">NUL
if "%ERRORLEVEL%"=="0" (taskkill /IM VBCSCompiler.exe /F) else (verify >NUL)

答案 3 :(得分:10)

Microsoft.CodeDom.Providers.DotNetCompilerPlatform包还原为V1.0.4

此建议来自对开发者社区问题报告https://developercommunity.visualstudio.com/solutions/79954/view.html的评论。

我们在v1.0.5上经常遇到锁定文件。将Microsoft.CodeDom.Providers.DotNetCompilerPlatform包恢复为V1.0.4后,我们不再遇到锁定文件。

答案 4 :(得分:8)

解决方法是关闭VS,打开任务管理器并终止任何VBCSCompiler.exe实例

(谢谢Tom John:https://developercommunity.visualstudio.com/content/problem/71302/binroslyn-files-locked-during-build.html

答案 5 :(得分:5)

项目>管理NuGet包...>已安装(标签)>在搜索输入中设置:

codedom

点击更新 enter image description here

答案 6 :(得分:3)

我有VS 2017 Enterprise,对我来说问题已经解决了:

  1. 将Microsoft.Net.Compilers 从2.3.1降级为2.3.0
  2. 将Microsoft.CodeDom.Providers.DotNetCompilerPlatform 从1.0.5降级为1.0.4

答案 7 :(得分:1)

安装 Microsoft.CodeDom.Providers.DotNetCompilerPlatform.BinFix nuget 它解决了我的问题

答案 8 :(得分:1)

让我更新nuget包...

  

Microsoft.Net.Compilers

到这篇文章的最新内容 2.7.0 为我解决了这个问题。它的版本是 1.3.2

答案 9 :(得分:1)

对我来说,我只是在文件资源管理器中打开解决方案,然后删除其中所有项目的bin文件夹。现在一切正常。

答案 10 :(得分:1)

在VS2017和VS2019中,当IIS Express仍在运行时,可能会发生这种情况。打开时钟旁边的托盘,将鼠标悬停在正在运行的IIS Express图标上,右键单击该图标,单击“退出”,确认提示,关闭活动的正在运行的工作进程。当尝试发布您的Web项目时,也是如此。

答案 11 :(得分:0)

就我而言,我做了以下两个步骤:

  1. uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  2. 安装包Microsoft.CodeDom.Providers.DotNetCompilerPlatform -Version 1.0.8

答案 12 :(得分:0)

在尝试任何激烈的操作之前,请重新启动计算机

答案 13 :(得分:0)

我在MVC 5中遇到同样的问题。我刚刚打开Nuget软件包管理器,搜索并更新了以下内容:

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

答案 14 :(得分:-2)

Microsoft.CodeDom.Providers.DotNetCompilerPlatform包更新为V1.0.6