69 votes

Impossible de supprimer \bin\roslyn\VBCSCompiler.exe - L'accès est refusé

Je suis confronté à un problème étrange avec le compilateur Roslyn. Parfois, lorsque je construis la solution, je suis confronté à un problème étrange dans la liste des erreurs qui ne me permet pas de construire la solution. Voici l'erreur :

Code de gravité Description État de suppression de la ligne de fichier du projet Erreur Impossible de copier le fichier " D:\Sealogical Nouveau site web \SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\csc.exe "à "bin \roslyn\csc.exe ". Accès au chemin 'bin \roslyn\csc.exe est refusé. Site web sérologique

Code de gravité Description État de suppression de la ligne de fichier du projet Erreur Impossible de copier le fichier " D:\Sealogical Nouveau site web \SealogicalWebsite\packages\Microsoft.Net.Compilers.1.0.0\tools\VBCSCompiler.exe "à "bin \roslyn\VBCSCompiler.exe ". Accès au chemin 'bin \roslyn\VBCSCompiler.exe est refusé. Site web sérologique

  1. J'essaie de nettoyer la solution et de la reconstruire mais elle ne fonctionne pas à nouveau.

  2. J'ai essayé de supprimer les fichiers manuellement, mais une erreur s'affiche à nouveau, indiquant que Je n'ai pas les bonnes permissions pour le faire :

  3. J'ai essayé de supprimer de CMD mais montre à nouveau la même erreur :

Image when trying to delete files manually

La seule façon de supprimer les fichiers générés par Roslyn est de redémarrer le PC. Une fois redémarré, je peux les supprimer manuellement sans problème.

Je suis administrateur de mon PC donc il n'y a pas de problème avec ça je suppose.

Ce problème semble se produire dans Visual Studi0 2015 et Visual Studio 2017.

Je n'aime pas redémarrer le PC 4-5 fois par jour ou plus, c'est pourquoi je demande ici.

Quelques autres détails :

  • C'est moi qui ai créé ce projet, donc théoriquement, cette action ne devrait pas poser de problème. être un problème pour faire cette action.

  • Lorsque le projet a été créé, j'ai exécuté Visual Studion en mode administrateur, comme maintenant. mode administrateur comme je le fais maintenant.

  • J'utilise un modèle ASP.MVC 5 dans mon projet.

  • Les fichiers qui ne sont pas supprimés sont bin/roslyn/csc y bin/roslyn/VBCSCompiler .

J'ai pu trouver une solution pour supprimer cette partie du web.config afin qu'il ne génère pas ces fichiers :

<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>

Mais cette solution poserait un problème avec les nouvelles fonctionnalités de c# 6 et je ne peux donc pas supprimer cette section......

En outre, j'ai essayé cette commande dans CMD pour voir s'il y a un processus qui verrouille ce fichier mais de toute façon, il ne m'a pas montré de processus du tout :

C:\WINDOWS\system32>tasklist /m D:\SealogicalNewWebsite\SealogicalWebsite\SealogicalWebsite\bin\roslyn\csc.exe
INFO: No tasks are running which match the specified criteria.

Quelqu'un connaît-il un moyen de résoudre ce problème étrange ?

0 votes

Il y a probablement un processus en cours qui a verrouillé ces fichiers. Vérifiez le Gestionnaire des tâches pour voir si vous pouvez les tuer. De plus, à moins que vous n'utilisiez réellement VB, vous pouvez supprimer l'extension language="vb... ligne

0 votes

@CamiloTerevinto J'ai remarqué un processus utilisant VBCSCompiler que j'ai terminé comme une tâche mais encore une fois cela ne fonctionne pas. J'ai essayé de terminer d'autres tâches auxquelles je pensais en utilisant ces fichiers, mais sans succès.

0 votes

Que se passe-t-il si vous retéléchargez le paquet NuGet ? (peut-être le mettre à jour ?)

125voto

Alex Points 923

Même problème ici - la solution pour moi a été de fermer VS, d'ouvrir le gestionnaire de tâches et de supprimer toutes les instances de VBCSCompiler.exe comme mentionné ici : https://developercommunity.visualstudio.com/content/problem/71302/binroslyn-files-locked-during-build.html

1 votes

Parfois, cela fonctionne et parfois non, mais je vais accepter cette réponse comme la meilleure puisque je n'ai pas pu trouver de meilleure réponse que celle-ci. Merci :)

2 votes

Selon le lien ci-dessus, le 27 septembre 2017, un correctif est prévu pour VS2017 V15.2.

3 votes

VS 2019 dernière version et toujours cette réponse a résolu mon problème.

11voto

tnapster Points 111

Dans la fenêtre "Manage NuGET Packages", j'ai rétrogradé Microsoft.Net.Compilers à 2.3.0 (au lieu de 2.3.1) et j'ai également rétrogradé Microsoft.CodeDom.Providers.DotNetCompilerPlatform à 1.0.4 (au lieu de 1.0.5). Les répertoires et fichiers Roslyn ne sont plus marqués comme étant en lecture seule et ne sont plus verrouillés par l'exe.

0 votes

Il suffit de courir update-package para Microsoft.CodeDom.Providers.DotNetCompilerPlatform y Microsoft.Net.Compilers dans la console nuget.

0voto

EverLearning Points 6

J'ai tué le processus dans le gestionnaire des tâches et reconstruit la solution, ce qui m'a remis sur la bonne voie, mais j'ai constaté que la construction fréquente de la solution entière avant le débogage a tout arrêté. Je travaille actuellement sur une application n-tier et je rencontrais ce problème plusieurs fois par jour. Je n'ai plus eu ce problème depuis que je m'assure de construire l'application après tout changement et surtout avant le débogage. Bien que je ne comprenne pas pourquoi cela fonctionne puisque VS construit la solution avant le débogage, cela a fait l'affaire pour moi.

0voto

John Points 1

J'ai trouvé ça par hasard dans le Gestionnaire des tâches :

Explorateur Windows > (développer l'explorateur Windows) > Roslyn Cliquez avec le bouton droit de la souris sur Roslyn et sélectionnez End Task

Note : Même en fermant toutes les fenêtres de l'Explorateur Windows, Roslyn ne s'arrêtera pas. Vous devez le faire dans le Gestionnaire des tâches.

0voto

dawncode Points 343

J'ai tué l'instance de Visual Studio depuis le gestionnaire des tâches, puis elle a été supprimée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X