22

En utilisant Visual Studio 2010, comment définir ou modifier automatiquement le propriétaire du fichier de sortie de Visual Studio (tel qu'un fichier exécutable) à un utilisateur autre qu'administrateur? Tous les fichiers de sortie sont actuellement la propriété de l'administrateur (en raison du lancement par Visual Studio du privilège administratif), donc parfois je ne peux pas supprimer ces fichiers en raison de permissions d'accès.Autorisations de fichier de sortie Visual Studio?

Parfois, Visual Studio lui-même ne peut pas le supprimer aussi (après avoir exécuté l'exécutable) jusqu'à quelques minutes, c'est vraiment ennuyeux quand j'ai besoin de reconstruire ces exécutables. Quelqu'un sait quel est le problème réel ici?

message d'erreur est: error LNK1168: cannot open [path to file].exe for writing

+0

Il suffit de lancer ce problème. Même chose, le handle appartient à System process avec le PID 4. Pourriez-vous rouvrir la question, il est généralement préférable de laisser la question ouverte même s'il n'y a pas de réponse actuelle et que cela ne se produit pas uniquement avec votre système. –

+0

Il semble que cela a résolu mon problème .. Merci .. J'ai perdu beaucoup de temps à cause de problèmes de verrouillage stupide ... – GorillaApe

Répondre

0

personne ne donne la bonne réponse, donc je ferme cette question comme un bug dans le système d'exploitation, pas dans Visual Studio, peut-être le L'O/S est compromise car le handle de fichier appartient au processus 'System' (PID 4) et je ne peux pas libérer le handle de fichier car il signale que le handle de fichier n'est pas valide en utilisant l'explorateur de processus.

+0

Même problème. Unlocker ne peut pas aider ... – k06a

0

Eh bien, le fichier tel qu'il est créé sera détenue par le créateur, si vous exécutez Visual Studio en tant qu'administrateur, vous êtes juste coincé avec cette façon du point de vue du propriétaire.

Personnellement, sauf si vous utilisez IIS pour les applications Web que je me trouve en cours d'exécution Visual Studio en tant qu'utilisateur régulier de plus en plus fréquemment, au moins avec VS 2010.

En ce qui concerne la question où Visual Studio ne peut pas supprimer le fichier, j'ai vu cela auparavant avec des erreurs de construction, et parfois si vous avez plusieurs projets référençant le même assemblage. Votre meilleur pari ici est essayer et traquer le verrou, et alors vous pouvez soit tuer le verrou, ou redémarrer Visual Studio.

J'utilise généralement Process Explorer (From SysInternals) pour supprimer simplement le handle du fichier. (NOTE: ce n'est pas une "grande" idée, mais cela fonctionne ....)

+0

AFAIK Visual Studio est toujours exécuté en tant qu'administrateur (un des cas si j'ai besoin d'exécuter le débogueur), en deuxième cas, je n'ai pas d'erreur de construction, et que voulez-vous dire en référençant le même assemblage?, pendant ce temps je vais essayer Process Explorer. – uray

+0

J'ai essayé Process Explorer, je peux fermer le handle, mais comment savoir, quel processus contient le handle? C'est encore gênant si je veux reconstruire le projet en libérant toujours le handle par Process Explorer. – uray

+0

Si c'est à chaque fois, il se passe quelque chose dans votre application ou dans votre solution de studio visuel. Avez-vous l'application fonctionnant en dehors de Visual Studio à l'époque? Est-il référencé par un autre projet? –

33

Wooho J'ai finalement compris celui-ci.

C'est un bogue dans Windows 7 et probablement dans Windows Server 2008 (peut-être seulement des versions 64 bits). Il apparaît lorsque vous désactivez le service Application Experience.

Ré-activer ce service a résolu ce problème pour moi. Vous ne pouvez pas imaginer à quel point je suis heureux, cela rendait la programmation tellement frustrante que ce n'est pas juste de jouer avec VC, mais tout compilateur et pour couronner le tout, c'est assez aléatoire.

Un peu plus d'information here pour expliquer pourquoi cela cause un problème.

Liste des autres SO questions semblent être liées:

+0

Cette solution est tellement inattendue que je continue à éteindre l'expérience de l'application en pensant "il n'y a aucun moyen de le faire, cela ralentit probablement ma machine, etc.". Puis, un peu plus tard, je commence à être frustré par les problèmes de verrouillage, et je me tourne vers Google. Je retrouve ensuite mon chemin vers cette solution, réactiver Experience Experience et je suis étonné que cela fonctionne. Je pense que je l'ai fait 3 fois maintenant. –

+1

Cela n'a pas fonctionné pour moi. Cependant, ma solution se charge beaucoup plus rapidement maintenant. – stuartd

+0

Merci, cela a également travaillé pour moi. Visual Studio 2010 n'a pas pu supprimer un fichier .dll qu'il avait généré dans la version précédente. Le démarrage du service Application Experience l'a corrigé immédiatement! – Sabuncu

7

Comme mentionné ci-dessus, le correctif à ce problème est de permettre l'application Windows Expérience de service.Voici comment faire:

  1. touche Windows + R
  2. Tapez "services.msc" dans la fenêtre qui apparaît
  3. Dans la liste, trouver "expérience de l'application."
  4. Double-cliquez sur cette question et changer de « désactivé » à « activé »

Il devrait maintenant! A travaillé pour moi :)

Source: http://www.techknowl.com/disable-unwanted-services-and-speed-up.html