Impossible de copier le fichier - l'accès au chemin est refusé

238

J'utilise Visual Studio 2005. Après avoir pris le code du contrôle de version en premier, l'application c # .net s'exécute correctement. Mais, après avoir fait quelques modifications, lorsque je crée, j'obtiens l'erreur suivante:

Erreur 383 Impossible de copier le fichier ".. \ root \ leaf \ Bin \ Debug \ test.Resources.xml" vers "Bin \ Debug \ test.Resources.xml". L'accès au chemin «Bin \ Debug \ test.Resources.xml» est refusé. li.rollmodel

Quelqu'un sait-il pourquoi ce problème se produit?

Modifier Je peux voir que l'ensemble de mon dossier de code source de projet est en lecture seule et je ne suis pas en mesure de supprimer la propriété en lecture seule.

Tout d'abord, quelqu'un peut-il me dire comment supprimer la propriété en lecture seule de ce dossier? J'ai essayé de le supprimer mais la propriété en lecture seule persiste. J'ai également essayé du côté du contrôle de version et cela n'a pas fonctionné non plus.

branlant
la source
Est-ce sur un partage réseau? Avez-vous un accès administratif sur votre machine? Cette question pourrait être mieux adaptée à une erreur de serveur ou à un superutilisateur.
arunkumar
non ,,
j'utilise
j'ai résolu ce problème en copiant manuellement le fichier d'un emplacement à l'emplacement requis, le problème est probablement lié à MSBUILD avec le fichier en lecture seule
ricky

Réponses:

277

J'ai résolu ce problème en supprimant les fichiers litigieux du dossier bin et en reconstruisant le projet.

DiligentKarma
la source
50
ancien poste, je sais, mais j'ai eu le même problème tout à l'heure. Assurez-vous que VS est également fermé car il refusera l'accès pour supprimer le dossier dans certains cas
Eon
1
Petite remarque: je n'ai pas compris, au début, je dois supprimer ces fichiers dans le dossier de sortie du projet principal et non dans le dossier de sortie de la DLL. Alors, avertissement ici :)
Piero Alberto
6
Dans mon cas, même la fermeture de VS n'était pas suffisante pour libérer le dossier et me permettre de le supprimer - ProcessExplorer a montré que "VBCSCompiler.exe" l'utilisait toujours. Dans ce cas, la déconnexion et l'ouverture de Windows (ou simplement la suppression du processus) ont fait l'affaire, me permettant de reconstruire la solution et de tout faire fonctionner à nouveau.
S. Jensen
2
dans mon cas, la raison pour laquelle le dossier et la solution se sont transformés en ReadOnly et par la suite VS a eu du mal à le créer, c'était parce qu'un fichier n'a pas pu se synchroniser avec GoogleDrive et a été en quelque sorte verrouillé par ce processus. Donc, pour que je reconstruise correctement, j'ai dû fermer GoogleDrive, puis il s'est très bien intégré.
konrad
1
J'ai trouvé que Bitdefender Antivirus Free était le coupable.
Warwick
123

Assurez-vous simplement que le dossier n'est PAS en lecture seule et reconstruisez la solution

Wahid Bitar
la source
12
J'essaie de supprimer la case à cocher "Lecture seule" remplie de couleur verte. Lorsque je clique sur «Appliquer» puis sur «OK», puis que je vérifie à nouveau les propriétés de ce dossier, je peux à nouveau voir dans l'état précédent (à nouveau, la case à cocher «Lecture seule» est remplie de couleur verte). Quelqu'un a une solution à ce sujet?
Vikram
Assurez-vous également que le fichier n'est pas verrouillé. Dans mon cas, le fichier était sur un partage et quelqu'un d'autre l'a ouvert.
Dan Bechard
Fermez Visual Studio avant de supprimer l'attribut en lecture seule. Parce que le fichier en question peut être en cours d'utilisation (verrouillé)
Gautam Jain
4
Création d'une extension Visual Studio pour effacer l'attribut ReadOnly et Hidden des DLL qui bloquent la construction. UnBlockDllExtension: marketplace.visualstudio.com/…
vrnithinkumar
69

J'ai résolu ce problème: fermez Visual Studio, ouvrez-le à nouveau et chargez la solution, reconstruisez votre solution. Mon problème s'est produit avec TFS et VIsual Studio 2010.

jordenysp
la source
22
Ajoutez le même problème dans VS2013. Cas classique de The IT Crowd. "Bonjour, c'est IT, avez-vous essayé de l'éteindre et de le rallumer?".
Maxime Rouiller
1
Même scénario: TFS et VS 2010. Le même problème. La même solution. +1
ajeh
2
Cela s'est également produit sur VS2015: p
Yoo Matsuo
4
Et la même chose dans VS2017
arame3333
1
Je suis déjà devenu fou en essayant de résoudre ce problème,
j'ai trouvé
50

Tuez le processus VBCSCompiler.exeet reconstruisez.

MuriloKunze
la source
3
C'est ce qui l'a résolu pour moi. Merci gentil étranger: D
Morsus
oui, c'est ça.
kal kokah
Merci beaucoup, espèce de gentil étranger! : D
Agent007
parfois cela a fonctionné pour moi pas toujours, je dois dire que cela résoudra une partie de ce problème il y a autre chose qui cause ce problème
Amit Bisht
Essayez aussi cela peut vous aider stackoverflow.com/a/12740768/2445111
Amit Bisht
23

J'ai aussi abordé ce problème.

Commencez par vérifier si vous avez mappé votre dossier bin et obj au programme Source Control.

Cela peut transformer vos fichiers des dossiers binaires en archives en lecture seule, ce qui empêche Visual Studio de les écraser lors de la compilation du code.

Allez supprimer le mappage de ces dossiers, vérifiez les modifications et réessayez.

Mon problème s'est produit en utilisant TFS (Team Foundation Server) et Visual Studio 2010.

J'espère que cela aide quelqu'un.

Heitor Corrêa
la source
1
Je voulais juste ajouter que la réponse de Heitorolecarte a résolu mon problème et cela peut se produire avec Visual Studio 2012 et TFS2010.
Rodney
20

Exécutez votre Visual Studio en tant qu'administrateur

Alejandro Haro
la source
1
Remarque: voici un moyen court et simple de toujours s'exécuter en tant qu'administrateur par défaut stackoverflow.com/questions/12257110/…
wmebane
Cette réponse m'a suffisamment dit que je savais simplement ajouter une autorisation d'écriture aux «utilisateurs» sur mon dossier de sortie - et cela a résolu instantanément mon problème (qui était que je ne pouvais pas publier même la première fois).
X Goodrich
9

J'utilise Visual Studio 2013. J'ai rencontré ce problème 2 fois:

  1. À la première occasion, j'exécutais Visual Studio sans droits d'administrateur. J'ai donc fermé VS et l'ai démarré en utilisant l'option " Exécuter en tant qu'administrateur ". Cela a résolu mon problème.

  2. La deuxième fois, j'ai redémarré VS plusieurs fois, en m'assurant à chaque fois de l'exécuter en tant qu'administrateur. De plus, j'ai reconstruit la solution plusieurs fois. Mais malgré cela, j'obtenais une erreur. Après cela, j'ai supprimé le fichier concerné de l'emplacement cible (le fichier était déjà présent peut-être de la génération précédente à l'emplacement où il tente de copier) et reconstruit la solution . Après cela, l'erreur a disparu et tout s'est bien passé!

Vikram
la source
8

Dans mon cas, c'est l'antivirus qui a bloqué le fichier.

Claudiu Constantin
la source
BitDefender 6.2 ici
JOG
7

Cela a fait remonter la tête dans Visual Studio 2017, dans ce cas, la cause est le processus Application Insights ServiceHub.DataWarehouseHost.exe.

Il existe une solution de contournement discutée dans l' avertissement de thread MSB3026: Impossible de copier "obj \ Debug \ netcoreapp1.1 \ src.pdb" vers "bin \ Debug \ netcoreapp1.1 \ src.pdb" , qui consiste à ajouter une pré-génération événement au projet pour tuer le processus chaque fois que le projet est construit. Citant ce lien:

  • Propriétés du clic droit sur le projet
  • Choisissez les propriétés
  • Créer des événements
  • Ligne de commande d'événement de pré-génération
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • Enregistrer et construire
tomRedox
la source
6

Un organisme peut-il savoir pourquoi ce problème se présente?

En regardant votre réponse selon laquelle vous avez résolu votre problème par copie manuelle, je dirais que le code sur lequel vous travailliez a été créé par un autre utilisateur (avec des privilèges d'administrateur également), il a donc été verrouillé pour vous. En effectuant une copie -? coller, vous avez fait votre propre copie de la source avec tous les accès dont vous avez besoin. La seule chose à noter est que, dans ce cas, si cet autre développeur a besoin de travailler sur votre copie, il / elle rencontrera le même problème que vous avez rencontré auparavant.

Tigran
la source
6

Allez d'abord à l'emplacement du fichier. Cliquez ensuite avec le bouton droit sur le dossier du fichier -> Propriétés -> Option de lecture seule non cochée et appliquez-le aux fichiers et à ses sous-dossiers. Cela a résolu mon problème. Codage heureux!

Vinayak Savale
la source
3

J'ai rajouté toutes mes dépendances / références non-NET et cela a fait l'affaire.

Shawn
la source
3

J'ai résolu ce problème moi-même. Le problème était que j'avais la solution ouverte dans un autre endroit. Après la fermeture ça marche

Henley Chiu
la source
J'ai fait ça aussi. Vérifiez toujours d'abord les choses évidentes et faciles, ma destination était sur un lecteur réseau, car je déboguais sur une autre machine.
Simon Unsworth
3

J'ai eu le même problème, mais le redémarrage de Visual Studio à chaque fois n'était pas une option pour moi , car le problème se produit parfois très souvent.

Je l'ai géré en installant Unlocker ( essaye d'installer n'importe quelle barre d'outils lors de l'installation, alors n'oubliez pas de la décocher ), cette application me donne un accès rapide pour renommer / supprimer un fichier ".xml" verrouillé . Je sais que ce n'est qu'une solution de contournement aussi, mais pour moi, c'était la solution la plus rapide pour résoudre ce problème.

David Leitner
la source
Merci pour cela. J'ai eu ce problème au cours de la dernière année et je pensais que c'était parce que je basculerais entre Administrateur et non, mais maintenant je sais que c'est un stupide processus critique lié à Panda Antivirus (PSANHost.exe, non présent dans le Gestionnaire des tâches) qui a verrouillé le des dossiers.
yeejuto
3

Ancien poste, mais ce zombie frappe VS 2017 (je n'ai pas creusé pourquoi il s'agit juste de "certains" projets). Dans ce cas, ce ne sont pas des autorisations utilisateur , mais le processus IIS Express utilise toujours les fichiers.

Vous verrez l'icône dans votre barre des tâches Icône IIS Express

  1. Clic-droit
  2. Sortie
  3. Vous devriez pouvoir le faire rebuildsans ce message ennuyeux de «permission refusée».

C'est aussi pourquoi «redémarrer Visual Studio» «résoudra» le problème. Ce faisant, arrête IIS Express.

Hth ...

EdSF
la source
2

J'ai créé ce problème lorsque j'ai ajouté un nouveau projet d'installation à la solution, puis ajouté des fichiers directement à partir du dossier / bin / release du projet d'application principal dans le dossier des fichiers d'application du projet d'installation. Le contrôle de code source du projet de configuration m'empêchait systématiquement de terminer la génération du projet d'application principal.

Solution: créez un dossier de vidage distinct en dehors de l'un des projets qui contiendra tous les fichiers à inclure dans l'installation et ajoutez-les à partir de là. C'est une douleur car maintenant je dois me rappeler de copier tous les fichiers pour chaque nouveau package d'installation. Je pourrais voir si je peux faire quelque chose avec des actions post-build ou une build automatisée pour rendre le processus plus fluide.

portia
la source
2

Si vous copiez des fichiers dans une solution, assurez-vous que les fichiers ne sont pas en mode lecture seule. Faites un clic droit sur le fichier et décochez l'option d'attribut résolu mon problème.

InitialV
la source
2

J'ai eu la même erreur mais j'utilise le contrôle de version Perforce . Voici comment je l'ai corrigé.

  1. Fermé Perforce P4V client
  2. Redémarrage de Visual Studio 2010 (peut-être pas nécessaire)
  3. Reconstruit le projet, qui a réussi
  4. Se sentait exceptionnellement heureux et dégoûté en même temps
Madmartigan
la source
1
J'ai la même configuration, mais je n'ai pas pu accéder aux étapes 3 et 4 :(
user3260977
2

J'ai aussi eu le même problème. J'ai reçu des messages d'erreur liés à ne peut pas copier depuis l'accès au chemin d'accès refusé. Dans mon cas, tous mes fichiers dll et xml, etc., sont placés dans le dossier D: \ TFS \ Example \ Bin \ Debug.

J'ai fait un clic droit sur le dossier Bin et cliqué sur Propriétés et j'ai vu que la case à cocher en lecture seule est cochée sous Attributs.

J'ai décoché la case Lecture seule et cliqué sur Appliquer et cliqué sur OK dans la nouvelle fenêtre contextuelle qui s'affiche.

Je suis retourné à Visual Studio et j'ai créé ma solution qui me donnait des messages d'erreur.

Voilaa .. Cette fois, il a réussi à construire sans erreurs.

Je ne sais pas si c'est parfait mais je l'ai fait pour résoudre mon problème.

Ziggler
la source
2

Vérifiez le Gestionnaire des tâches et assurez-vous que le processus devenv.exe n'est pas suspendu. Tuez le processus d'emballement et réessayez.

Logiciel Hazen Hills
la source
2

Accédez au chemin du fichier, puis décochez la case en lecture seule de ce fichier.

Ramy Othman
la source
1

Je sais que c'est un vieux fil mais pour ceux qui recherchent des réponses, comme moi il y a quelques minutes, je recommande d'essayer de redémarrer votre ordinateur en premier. Cela seul a réglé pour moi. Avant ne pouvait même pas copier manuellement dans le dossier.

Joao Leme
la source
1
m'a aussi aidé. Gang 2020
Vitor Ceolin
1

Faites un clic droit sur votre projet MVC et cliquez sur l'option propre. J'ai eu un problème similaire et le nettoyage du projet avant la reconstruction l'a résolu pour moi.

Ehsan
la source
1

J'ai aussi eu le même problème. Je l'ai corrigé en décochant les propriétés en lecture seule du dossier racine.

Rajan Kumar Kharel
la source
Parfois, la solution est aussi simple et évidente que cela. Au lieu de continuer à vous cogner la tête et de contourner des procédures complexes et sans fin, vérifiez simplement ce type de possibilités simples et votre vie deviendra beaucoup plus facile. Je suis reconnaissant à StackOverflow de nous avoir fourni une si vaste communauté d'experts qui peut nous offrir l'aide nécessaire à des moments désespérés.
Choudhury Saadmaan Mahmid
1

J'ai également eu ce problème. Voici comment est résolu ce problème

  • Exclure le bindossier du projet.
  • Fermer studio visuel.
  • Nettoyage de disque du lecteur C.
  • Rouvrir le projet dans Visual Studio.
  • Et puis reconstruisez la solution.
  • Exécutez le projet.

Ce processus fonctionne pour moi.

Manoj
la source
1

J'ai pu résoudre le problème en supprimant le fichier cible qui se plaint (dans votre exemple "Bin \ Debug \ test.Resources.xml") du dossier bin du site Web cible et le reconstruire. Cela l'a corrigé pour moi.

Rama Krshna Ila
la source
1

1) Fermez la solution Visual Studio

2) accédez à l'invite de commande -> exécuter en tant qu'administrateur -> iisreset / stop

3) accédez à c -> Windows -> Microsoft.Net -> Framework64 -> v4.030319 -> Fichiers Asp.NET temporaires -> Supprimez tous les fichiers et dossiers de ce chemin.

4) Revenez à l'invite de commande -> iisreset / start

5) Maintenant, ouvrez le studio visuel -> exécutez en tant qu'administrateur -> nettoyez la solution et construisez-la (ne reconstruisez pas .. juste la construction a fonctionné pour moi)

Krishna
la source
0

Vous n'êtes pas censé changer l'attribut de dossier en non-lecture seule. La raison pour laquelle vous voyez ce message d'erreur est que le contrôle de code source suppose que vous stockez uniquement vos fichiers divers ailleurs que dans le dossier bin, car il est réservé aux fichiers qui sont créés automatiquement par .Net et il ne veut pas les ajouter à la source contrôle.

Je suggère qu'au lieu d'utiliser Environment.CurrectDirectory(que je suppose que vous utilisez actuellement), vous créez un dossier nommé "MyProjectName" dans l'adresse% appdata%, puis utilisez:

System.IO.Path.Combine(Environment.GetEnvironmentVariable("appdata"),"YourProjectName").

Bizhan
la source
0

J'ai donc rencontré le même problème, la cause de la mienne, j'avais partagé mon dossier de développement afin que je puisse utiliser un mac comme hôte de build pour une application IOS utilisant Xamarin. Le projet fonctionnait sur mac qui prenait possession de la dll, donc je ne pouvais pas apporter de modifications à cette dll ailleurs. Le simple fait d'arrêter l'application sur le Mac m'a rendu la propriété, ce qui a permis un accès complet à nouveau. J'espère que cela fera depuis.

Jon Willis
la source