Lorsque j'ai essayé de copier 4 fichiers dans mon dossier bin, après avoir arrêté le service principal, j'ai eu une erreur avec un fichier (TexteDll). L'erreur est la suivante :
Cannot copy TexteDll: The requested operation cannot be performed on a file
with a user-mapped section open
Cela peut être dû à un verrouillage du système. Ou peut-être qu'un autre processus utilise cette DLL. En cherchant sur Google, j'ai trouvé que le redémarrage du système pouvait résoudre ce problème.
Quelqu'un peut-il suggérer une cause ou une solution à ce problème ? J'ai inspecté les propriétés de TexteDll (général, version, sécurité, etc.). Tout semble normal.
2 votes
Duplicata de stackoverflow.com/questions/1302698/
14 votes
Il y a en fait beaucoup plus de "doublons" de la question (par exemple : stackoverflow.com/questions/1818076/ ) - le problème est qu'à chaque fois, la cause profonde est quelque chose de différent.
9 votes
La prochaine fois, essayez d'utiliser "Process Explorer" sur le site de Microsoft. Il dispose d'une fonction appelée "find handle". Recherchez votre fichier dans cet outil et il vous montrera quel processus a un handle sur ce fichier. Vous pouvez alors commencer à chercher pourquoi ce programme a cet accès. BTW, l'arrêt d'un service ne signifie pas nécessairement que l'exécutable qui héberge le service s'arrête. Un exécutable peut héberger plusieurs services. Dans le pire des cas, de nombreux services .net qui utilisent d'énormes quantités de mémoire ont tendance à se terminer après avoir libéré cette mémoire, ce qui se produit parfois quelques minutes après l'événement d'arrêt du service.
3 votes
Hehehe Visual Studio verrouillait ma DLL. J'ai fermé Visual Studio et essayé de reconstruire la solution et ça a marché.
0 votes
Il s'agit manifestement d'un conflit de mémoire. Une "instance" particulière de l'objet a un bit de mémoire alloué, puis découvre plus tard que la mémoire (statique ?) qui lui a été allouée, a déjà été mappée ailleurs, probablement avec un niveau d'accès système différent.
0 votes
Merci, Leniel. J'ai eu le problème de faire tourner Unity avec un Visual Studio ouvert. J'ai fermé Unity car cela verrouille toutes les dll C#/C. Il y a toujours une DLL qui ne peut être remplacée. J'avais laissé la solution VS ouverte, ce qui a provoqué le verrouillage.
0 votes
Le redémarrage a résolu le problème
0 votes
Duplicata possible de Erreur System.IO.Exception : "L'opération demandée ne peut pas être effectuée sur un fichier dont une section mappée par l'utilisateur est ouverte."
0 votes
Si l'erreur est causée par un verrouillage des fichiers par git diff, ce ne sera plus le cas avec Git 2.23+ (Q3 2019). Voir ma réponse ci-dessous
0 votes
Dans mon cas, Oxygen XML a peut-être laissé un processus en suspens accédant au fichier et la seule façon de résoudre le problème a été de redémarrer mon PC pour m'assurer que tous les processus accédant au fichier étaient désactivés.