【问题标题】:Visual Studio 2017 bin\roslyn files locked during buildVisual Studio 2017 bin\roslyn 文件在构建期间被锁定
【发布时间】:2017-06-21 17:09:10
【问题描述】:

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

【问题讨论】:

  • 什么类型的项目?
  • 如上所述的“网络项目”。特别是一个 ASP.Net MVC 项目。
  • 什么版本的 ASP.Net? .Net 核心?运行了吗?
  • ASP.Net MVC 5。我猜它与在 VS2017 某处运行的分析器有关。
  • 停止或删除反恶意软件违反了公司政策。

标签: visual-studio-2017


【解决方案1】:

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

【讨论】:

  • 有效!这为我省去了很多麻烦。谢谢。
  • 以管理员身份从命令行运行 taskkill -im VBCSCompiler.exe -f
  • “Just”在这种情况下,在计算机编程中是一个非常危险的词。
  • P E R F E C T!!
  • 你是我的英雄!
【解决方案2】:

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

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

【讨论】:

  • 我在使用 v1.0.8 时仍然遇到同样的问题。为什么文件被锁定?
  • 从 1.0.7 升级到 2.0.1 为我解决了这个问题。 (在 v1.0.7 中仍然有)
  • 没有为我解决问题。 2.0.1 仍然会发生
  • 我已将其更新到最新版本 (3.6.0) 并已修复。
  • 我在 v3.6.0 中遇到了这个问题。任何想法为什么?
【解决方案3】:

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

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)

【讨论】:

    【解决方案4】:

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

    (感谢汤姆约翰:https://developercommunity.visualstudio.com/content/problem/71302/binroslyn-files-locked-during-build.html

    【讨论】:

      【解决方案5】:

      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 后,我们不再遇到文件锁定问题。

      【讨论】:

      • 我已经验证升级到 v1.0.7 也可以解决问题。
      • 我在 1.0.4 中遇到的问题最多,所以我认为这并不能解决所有人的问题。现在发生的情况要少得多,但那是我升级 Visual Studio 而不是升级到 1.07 的时候。
      【解决方案6】:

      Project > Manage NuGet Packages... > Installed(tab) > 在搜索输入中设置:

      codedom
      

      点击更新

      【讨论】:

        【解决方案7】:

        我有 VS 2017 Enterprise,对我来说,这个问题已解决:

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

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

            我正在更新 nuget 包...

            Microsoft.Net.Compilers

            至此帖子发布时的最新版本 2.7.0 已为我修复了此问题。它是版本 1.3.2

            【讨论】:

            • 我在 v3.6.0 中遇到了这个问题。任何想法为什么?
            【解决方案10】:

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

            【讨论】:

            • 如果我尝试删除 bin 文件夹,我会遇到另一个进程正在使用文件的错误。
            • @FrenkyB 关闭视觉工作室并尝试删除它们
            【解决方案11】:

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

            【讨论】:

              【解决方案12】:

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

              1. 卸载包 Microsoft.CodeDom.Providers.DotNetCompilerPlatform
              2. 安装包 Microsoft.CodeDom.Providers.DotNetCompilerPlatform -Version 1.0.8

              【讨论】:

                【解决方案13】:

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

                【讨论】:

                  【解决方案14】:

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

                  Microsoft.CodeDom.Providers.DotNetCompilerPlatform
                  

                  【讨论】:

                  • 你能否扩大你的答案,包括你是如何做到你所说的?
                  • 我在 v3.6.0 中遇到了这个问题。任何想法为什么?
                  【解决方案15】:

                  删除此 dll Microsoft.CodeDom.Providers.DotNetCompilerPlatform 为我解决了这个问题

                  【讨论】:

                    【解决方案16】:

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

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-01-01
                      • 2011-03-06
                      • 2018-06-21
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-06-19
                      • 2019-09-10
                      相关资源
                      最近更新 更多