it-swarm.com.ru

Не удается удалить\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 

  1. Я пытаюсь очистить решение и восстановить его, но снова не работает.

  2. Пытался удалить файлы вручную, но снова показывает ошибку, указывающую У меня нет прав для этого:

  3. Попытка удаления из CMD, но снова показывает ту же ошибку:

 Image when trying to delete files manually

Единственный способ удалить сгенерированные roslyn файлы - это перезагрузить компьютер, и после перезагрузки я могу удалить их вручную без проблем.

Я являюсь администратором на моем ПК, поэтому я думаю, что с этим нет проблем.

Эта проблема возникает в Visual Studi0 2015 и Visual Studio 2017.

Я не люблю перезагружать ПК 4-5 раз в день или больше, вот почему я спрашиваю здесь.

Некоторые другие детали:

  • Я тот, кто создал этот проект, так что теоретически это не должно быть проблемой. Это проблема.

  • Когда проект был создан впервые, я запустил Visual Studion в режиме Administrator, как и сейчас.

  • Я использую шаблон 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>

Но это решение может вызвать проблемы с новыми функциями C # 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.

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

47
Rajmond Burgaj

Та же проблема здесь - решением для меня было закрытие VS, открыть диспетчер задач и завершить все экземпляры VBCSCompiler.exe, как упомянуто здесь: https://developercommunity.visualstudio.com/content/problem/71302/binroslyn-files-locked- while-build.html

73
Alex

В окне «Управление пакетами NuGET» я понизил Microsoft.Net.Compilers до 2.3.0 (с 2.3.1), а также понизил Microsoft.CodeDom.Providers.DotNetCompilerPlatform до 1.0.4 (с 1.0.5) и каталог Roslyn/файлы больше не были помечены как только для чтения и больше не заблокированы exe.

11
tnapster

Я убил процесс в диспетчере задач и перестроил решение, которое возвращает меня в нужное русло, но я обнаружил, что частое построение всего решения до отладки останавливало его все вместе. В настоящее время я работаю над n-уровневым приложением, и я сталкивался с этим много раз в день, и у меня не было проблемы, так как я постарался собрать приложение после любых изменений, особенно перед отладкой. Хотя я не понимаю, почему это будет работать, поскольку VS создает решение до отладки, но для меня это помогло.

0
EverLearning

Я случайно нашел это в диспетчере задач: 

Проводник Windows> (разверните Проводник Windows)> Roslyn Щелкните правой кнопкой мыши Roslyn и выберите End Task

Примечание: даже закрытие всех окон Windows Explorer не остановит Roslyn. Вы должны сделать это в диспетчере задач.

0
John

Я убил экземпляр Visual Studio из диспетчера задач, а затем он был удален.

0
dawncode