Visual studio 2017 Visual Studio 2017 bin\roslyn文件在生成期间被锁定

Visual studio 2017 Visual Studio 2017 bin\roslyn文件在生成期间被锁定,visual-studio-2017,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.d

我正在运行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

解决方法是关闭VS,打开任务管理器并杀死VBCSCompiler.exe的所有实例


(感谢Tom John:)

只需打开任务管理器并杀死VBCSCompiler.exe的所有实例。您甚至不需要关闭Visual Studio。

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

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)
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
包还原为
V1.0.4
这个建议来自对开发者社区问题报告的评论


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

Microsoft.CodeDom.Providers.DotNetCompilerPlatform包更新为
V1.0.6
我与2017 Enterprise进行了对比,通过以下方式解决了问题:

  • 将Microsoft.Net.Compilers从2.3.1降级到2.3.0
  • 将Microsoft.CodeDom.Providers.DotNetCompilerPlatform从1.0.5降级到1.0.4

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

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

    InstallMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.BinFixnuget
    它为我解决了这个问题

    在我的案例中,我执行了以下两个步骤:

  • 卸载包Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  • 安装软件包Microsoft.CodeDom.Providers.DotNetCompilerPlatform-版本1.0.8

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

    项目>管理NuGet软件包…>已安装(选项卡)>在搜索输入设置中:

    codedom
    
    单击以更新

    对于我更新nuget软件包

    Microsoft.Net.Compilers


    最迟发布此帖子时,2.7.0为我修复了此问题。对于我来说,它是版本1.3.2

    ,我只是在文件资源管理器中打开解决方案并删除其中所有项目的bin文件夹。现在它运行良好。

    我在MVC5中遇到了同样的问题。我刚刚打开Nuget Package Manager,搜索并更新了以下内容:

    Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    


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

    什么类型的项目?如上所述,是“网络项目”。特别是ASP.Net MVC项目。ASP.Net的哪个版本。净核心?它正在运行吗?ASP.NETMVC5。我猜这与在VS2017某处运行的分析器有关。停止或删除反恶意软件违反公司政策。有效!这帮我省去了很多麻烦。谢谢。请以管理员taskkill-im VBCSCompiler.exe-f“Just”的身份从命令行运行此命令。在本上下文中,“Just”是计算机编程中一个非常危险的词。P E R f E C T!!你是我的英雄!我已经证实升级到v1.0.7也可以解决这个问题。我在1.0.4中遇到的问题最多,所以我认为这不会解决所有人的问题。现在这种情况确实少了很多,但我还是在升级Visual Studio而不是升级到1.07时遇到了这种情况。1.0.8版仍然存在同样的问题。为什么文件被锁定?从1.0.7升级到2.0.1为我解决了这个问题。(在v1.0.7中仍然有)没有为我解决这个问题。2.0.1I将其更新为最新版本(3.6.0),并已修复。如果我尝试删除bin文件夹,我有一个错误,即另一个进程正在使用文件。@FrenkyB关闭visual Studio并尝试删除它们。您是否可以扩展您的答案,以包括您是如何执行所说的操作的?