web-dev-qa-db-fra.com

ASP.Net ne peut pas créer/copie fantôme

Je reçois souvent cette erreur lors du développement d'applications ASP.Net:

  Cannot create/shadow copy 'XXXXX' when that file already exists

Où XXXXX est une DLL aléatoire. La DLL est généralement l'une des DLL de la bibliothèque d'entreprise de Microsoft, mais elle varie. 

C'est vraiment aléatoire et c'est très frustrant. Je vais passer des heures sans obtenir l'erreur, puis cette erreur toutes les 10 à 20 minutes. 

J'ai vu plusieurs solutions. Par exemple, cette question . J'ai essayé d'utiliser l'option Solution propre et j'ai également simplement redémarré mon IIS local. Cependant, il se produit toujours à la même fréquence aléatoire mais persistante. 

J'ai aussi vu beaucoup de gens mentionner l'utilisation de cette option dans le fichier de configuration:

<hostingEnvironment shadowCopyBinAssemblies="false" />

Cependant, d'autres ont mentionné que cela posait problème et qu'il ne devrait absolument pas être utilisé dans la production. 

Alors, devrais-je simplement abandonner et essayer l'option shadowCopyBinAssemblies? (Et veillez à ne pas copier ce changement dans d'autres environnements.) Suis-je le seul à avoir ce problème aussi souvent?

Remarque: J'utilise Visual Studio 2008. 

41
david.mchonechase

Attendez quelque part entre 10 et 30 secondes et cliquez sur Actualiser. Pour une raison quelconque, cela fonctionne toujours pour moi.

39
joshcomley

Il suffit de redémarrer Visual studio, cela a fonctionné pour moi.

5
Ayo Adesina

Dans ma situation, seul iisreset fonctionnait.

1
İbrahim ULUDAĞ

Ouvrez les propriétés de votre projet, ouvrez l'onglet Web et assurez-vous que l'option Enable Edit and Continue n'est pas cochée.

1
Ricardo Sanchez

Ajoutez ces lignes dans la ligne de commande de l'événement pré-génération, ce qui déverrouille fondamentalement le DLL dans Visual Studio:

 IF EXIST $(TargetPath).LOCKED  (del $(TargetPath).LOCKED)
  ELSE (IF EXIST $(TargetPath) (move $(TargetPath) $(TargetPath).LOCKED))

Recompilez et votre erreur impossible de copier DLL ne se produira pas.

0
batman

Si vous utilisez Entity Framework:

Message d'erreur:"Impossible de créer un cliché instantané '' lorsque ce fichier existe déjà." 

Solution:"Attendez quelques secondes et actualisez la page." 

Pour plus d'informations, rendez-vous sur: Advanced Entity Framework 6 Scénarios pour une application Web MVC 5 (12 sur 12)

0
Murat Yıldız

Allez en mode conception, puis cliquez avec le bouton droit de la souris sur l'affichage dans le navigateur, le problème disparaîtra

0
Anil

Je rencontrais souvent ce problème lorsque je travaillais avec un DLL importé que nous avions créé.

Les tentatives d'arrêt ont échoué et ont même introduit différents problèmes, mais chaque fois que cela se produisait, je ne faisais qu'une solution de reconstruction et le problème disparaissait immédiatement pour cette construction.

En outre, je n'ai pas vu le problème depuis que je travaille sur Visual Studio 2002. Il n'y a pas ce problème à ma connaissance en 2008, pas plus qu'en 2005. Utilisez-vous un ancien VS?

0
CRice

Vous venez de rafraîchir (F5) votre page.

0
Mohammad Imran

Nettoyez-le et reconstruisez-le. Cela m'aide et cela a souvent fonctionné pour moi

0
Bashir ahmad

J'ai eu le même problème, en plaçant ce code dans un web.config a fonctionné pour moi.

<hostingEnvironment shadowCopyBinAssemblies="false" />
0
Musakkhir Sayyed