Подтвердить что ты не робот

Не удается удалить \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=\&quot;Web\&quot; /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.

Кто-нибудь знает способ справиться с этой странной проблемой?

4b9b3361

Ответ 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 строит решение перед отладкой, но он помогло.