I am facing a strange issue from roslyn compiler. Sometimes when I build the solution I face a strange issue in error list which does not let me build the solution. Here is the error:
Severity Code Description Project File Line Suppression State Error Unable to copy file "D:\Sealogical New Website\SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\csc.exe" to "bin\roslyn\csc.exe". Access to the path 'bin\roslyn\csc.exe' is denied. SealogicalWebsite
Severity Code Description Project File Line Suppression State Error Unable to copy file "D:\Sealogical New Website\SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\VBCSCompiler.exe" to "bin\roslyn\VBCSCompiler.exe". Access to the path 'bin\roslyn\VBCSCompiler.exe' is denied. SealogicalWebsite
I try to clean the solution and rebuild it but does not work again.
Tried to delete files manually but again shows an error pointing out I do not have right permissions to do this:
Tried deleting from CMD
but again shows the same error:
The only way to delete roslyn generated files is by restarting the PC and when restarted I can delete them manually without a problem.
I am administrator in my PC so there is no problem with that I guess.
This problem seems to happen in Visual Studi0 2015 and Visual Studio 2017.
I dont like restarting the PC 4-5 times a day or more thats why I am asking here.
Some other details:
I am the one who created this project so theoretically it should not be a problem to do this action.
When the project first created I did run the Visual Studion in Administrator Mode as I am doing now.
bin/roslyn/csc
and bin/roslyn/VBCSCompiler
.I could find a solution to remove this part from web.config so it does not generate those files:
<compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /> </compilers>
But this solution would cause problem with new c# 6 features so I can not remove this section.....
Furthermore I tried this command in CMD to see if there is a process locking this file but anyway it did not show me any process at all:
C:\WINDOWS\system32>tasklist /m D:\SealogicalNewWebsite\SealogicalWebsite\SealogicalWebsite\bin\roslyn\csc.exe INFO: No tasks are running which match the specified criteria.
Does anybody knows a way how to handle this strange issue ?
This release of Visual Studio contains a new version of C# & VB.net compilers code named “Roslyn”. Roslyn is a complete rewrite of the C# and VB.net compilers with each written in their respective language for example the C# compiler is written in C# rather than C++.
Same problem here - solution for me was closing VS, open task manager and end all instances of VBCSCompiler.exe as mentionend here: https://developercommunity.visualstudio.com/content/problem/71302/binroslyn-files-locked-during-build.html
In the 'Manage NuGET Packages' window I downgraded Microsoft.Net.Compilers to 2.3.0 (from 2.3.1) and also downgraded Microsoft.CodeDom.Providers.DotNetCompilerPlatform to 1.0.4 (from 1.0.5) and the Roslyn directory/files were no longer marked as readonly and no longer locked by the exe.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With