Qu'est-ce qui provoque xcopy pour me dire Accès refusé?
La postbuild tâche pour l'un de nos solutions utilise xcopy pour déplacer des fichiers dans un répertoire commun pour construire des artefacts. Pour quelque raison, sur mon ordinateur (et sur une VM, j'ai testé), le xcopy échoue avec "Accès Refusé". Voici ce que j'ai fait pour tenter d'isoler les problèmes:
- J'ai essayé une copie normale; cela fonctionne.
- J'ai vérifié qu'aucun des fichiers en question sont en lecture seule.
- J'ai vérifié les autorisations sur à la fois la source et le dossier de destination; j'ai le plein contrôle de tous les deux.
- J'ai essayé d'appeler le xcopy à partir de la ligne de commande dans le cas où le VS processus de construction a verrouillé le fichier.
- J'ai utilisé Unlocker et de Process Explorer pour déterminer qu'il n'y avait pas de verrous sur le fichier source.
Qu'ai-je manqué, autres que les paranoïaques théories de la conspiration impliquant des ordinateurs pour obtenir de moi? Ce qui se passe sur ma machine de dev et un nettoyage de la VM, mais n'est pas se passer pour quelqu'un d'autre sur le projet.
source d'informationauteur OwenP
Vous devez vous connecter pour publier un commentaire.
Problème résolu; il y a deux morceaux du puzzle.
Le commutateur /O nécessite une élévation sur Vista. J'ai également remarqué que xcopy est obsolète dans Vista en faveur de robocopy. Maintenant, je parle avec nos ingénieurs à ce sujet.
Qui était le mien à la résolution de cette erreur.
Source
Habituellement, cela se passe parce qu'il y a un autre processus de verrouillage de fichier. Je parie que votre machine dispose d'un nombre différent de carottes/vitesse différente que les autres. Essayez d'insérer certains dort à voir si cela résout le problème.
Vous devez exécuter la commande XCOPY en tant qu'Administrateur, il n'y a pas moyen de contourner cela.
Si vous ne voulez pas utiliser votre copie en tant qu'Administrateur, vous devez utiliser ROBOCOPY à la place.
Noter, cependant, que, avec ROBOCOPY, il est très tentant d'utiliser la
/COPYALL
le commutateur de copies de vérification des informations aussi bien et exige "Gérer l'Audit droit d'utilisateur", qui vous invite encore à exécuter en tant qu'Administrateur comme une solution rapide. Si vous ne voulez pas utiliser votre copie en tant qu'Administrateur, puis ne pas utiliser la/COPYALL
(ou/Copy:DATSOU
) interrupteur. Au lieu d'utiliser/Copy:DATSO
U représente l'audit.Notez également que si vous copiez à partir de NTFS vers un système de fichiers FAT, il n'y a aucun moyen que vous pouvez "Copier NTFS de Sécurité à Destination d'un Répertoire/Fichier".
Si vous pouvez supprimer le fichier dans l'Explorateur Windows, essayez d'utiliser une invite de commande élevée. Je ne sais pas pourquoi l'Explorateur Windows ne demandez pas la permission ici pour une opération de suppression qui a besoin des droits d'admin via cmd.