Не удается удалить \bin\roslyn\VBCSCompiler.exe - доступ запрещен
У меня возникла странная проблема с компилятором roslyn. Иногда, когда я создаю решение, я сталкиваюсь с необычной проблемой в списке ошибок, которая не позволяет мне создавать решение. Вот ошибка:
Код серьезности Описание Состояние подавления строки файла проекта Ошибка Не удалось скопировать файл "D:\Sealogical New Website\SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\csc.exe" в "bin\roslyn\csc.exe". Доступ к пути "bin\roslyn\csc.exe" запрещен. SealogicalWebsite
Код серьезности Описание Состояние подавления строки файла проекта Ошибка Не удалось скопировать файл "D:\Sealogical New Website\SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\VBCSCompiler.exe" в "bin\roslyn\VBCSCompiler.exe". Отказано в доступе к пути "bin\roslyn\VBCSCompiler.exe". SealogicalWebsite
-
Я пытаюсь очистить решение и перестроить его, но не работает снова.
-
Пытался удалять файлы вручную, но снова показывает ошибку, указывающую
У меня нет прав для этого:
-
Пробовал удаление из CMD
, но снова показывает ту же ошибку:
![Изображение при попытке удалить файлы вручную]()
Единственный способ удалить файлы, созданные roslyn, - это перезапустить компьютер, и при перезапуске я могу удалить их вручную без проблем.
Я являюсь администратором на своем ПК, поэтому никаких проблем с этим я не думаю.
Эта проблема возникает в Visual Studi0 2015 и Visual Studio 2017.
Мне не нравится перезагрузка ПК 4-5 раз в день или более, поэтому я спрашиваю здесь.
Некоторые другие детали:
-
Я тот, кто создал этот проект, поэтому теоретически он не должен
быть проблемой для этого действия.
-
Когда проект был создан первым, я запустил Visual Studio
Режим администратора, как я делаю сейчас.
- Я использую шаблон ASP.MVC 5 в своем проекте.
- Файлы, которые не удаляются,
bin/roslyn/csc
и bin/roslyn/VBCSCompiler
.
Я мог бы найти решение для удаления этой части из web.config, чтобы он не генерировал эти файлы:
<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>
Но это решение вызовет проблему с новыми функциями С# 6, поэтому я не могу удалить этот раздел.....
Кроме того, я попробовал эту команду в CMD, чтобы узнать, есть ли процесс блокировки этого файла, но в любом случае он вообще не показывал мне никакого процесса:
C:\WINDOWS\system32>tasklist /m D:\SealogicalNewWebsite\SealogicalWebsite\SealogicalWebsite\bin\roslyn\csc.exe
INFO: No tasks are running which match the specified criteria.
Кто-нибудь знает способ справиться с этой странной проблемой?
Ответы
Ответ 1
Такая же проблема - решение для меня заключалось в закрытии VS, открытом диспетчере задач и завершении всех экземпляров VBCSCompiler.exe в качестве упоминания здесь: https://developercommunity.visualstudio.com/content/problem/71302/binroslyn-files-locked-during-build.html
Ответ 2
В окне "Управление пакетами NuGET" я понизил Microsoft.Net.Compilers до 2.3.0 (от 2.3.1), а также понизил рейтинг Microsoft.CodeDom.Providers.DotNetCompilerPlatform до 1.0.4 (от 1.0.5) и Каталог/файлы Roslyn больше не помечены как readonly и больше не заблокированы exe.
Ответ 3
Я убил процесс в диспетчере задач и перестроил решение, которое возвращает меня в нужное русло, но я обнаружил, что часто построение всего решения до отладки остановило все это вместе. В настоящее время я работаю над n-уровневым приложением, и я встречался с этим много раз в день, и у меня не было этой проблемы, так как я не задумывался над созданием приложения после любых изменений и особенно перед отладкой. Хотя, я не понимаю, почему это сработает, поскольку VS строит решение перед отладкой, но он помогло.