在 VS 2017 中编译 MVC 项目时拒绝访问 roslyn 文件夹

Access denied to roslyn folder when compiling MVC project in VS 2017

经过几次调试会话后,我无法再编译该项目。

编译给出了一些访问错误,例如某些系统程序集的错误,所有这些都与 roslyn bin 文件夹有关:

错误 MSB3021:无法复制文件 ...\packages\Microsoft.Net.Compilers.2.2.0\tools\System.Collections.Immutable.dll" 到 "bin\roslyn\System.Collections.Immutable.dll"。访问路径 'bin\roslyn\System.Collections.Immutable.dll' 被拒绝。

重启VS未解决。项目使用IIS express to 运行 没有IIS express进程运行ning.

唯一的解决办法是重启。

我正在使用 VS2017,更新 2

其实我也面临同样的问题。在我的例子中,它是 VBCSCompiler.exe,这是有道理的,因为 "Roslyn"(在路径名中找到)是“.NET 编译器平台”的内部名称。所以我能够通过终止这个过程来解决构建问题。

但这只是一种解决方法。我仍然不知道为什么在我停止调试后进程保持运行并保持文件句柄。

将 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 更新到版本 1.0.6 或最新版本。 你指的是 link https://github.com/aspnet/RoslynCodeDomProvider/issues/10