web-dev-qa-db-fra.com

Erreur fatale: impossible de créer le fichier de sortie "project1.exe"

Donc, depuis quelque temps, je continue à avoir ce problème:

sous Windows 7 (64 bits), avec Delphi 7 et Delphi XE2, si je viens de l'EDI, je compile un programme, l'exécute, l'arrête, le modifie et l'exécute. Le message d'erreur suivant s'affiche:

[Erreur fatale] Impossible de créer le fichier de sortie "project1.exe"

Je n'ai aucune idée de ce qui cause cela. J'ai cherché sur Google pour plus d'informations, mais je n'ai pas pu trouver de solution.

Il existe deux solutions: attendez une minute ou deux ou supprimez project1.exe manuellement. Inutile de dire que cela est impraticable.

Je n'ai pas de scanner de virus ni de virus. Avoir un accès complet aux dossiers connexes. Tout exécuter en tant qu'administrateur. 

Alors qu'est-ce qui cause ça? Et que puis-je faire pour le réparer?

16
Marck

J'ai trouvé la solution. Il semble que la désactivation du service "Application Experience" en soit la cause. Lorsque cette option est désactivée, la tâche "système" verrouille "tout" exécutable pendant un certain temps.

La réactivation de "Application Experience" est la solution.

Trouvé via:

https://superuser.com/questions/260375/why-would-system-continue-systing-executable-file-handles-after-the-app-has-exit

15
Marck

J'ai l'impression que lorsque vous essayez de reconstruire l'application, project1.exe est toujours en cours d'exécution. Peut-être que cela prend plus de temps que nécessaire. Vous pouvez facilement vérifier en ouvrant le Gestionnaire des tâches et voir si le processus project1.exe est toujours actif après la fermeture de l'application.

4
Diego

Je suis sur XE7 et rencontre occasionnellement le problème "Impossible de créer le fichier de sortie", f2039 . En utilisant l'Explorateur de processus de sysinternals, j'ai découvert qu'un processus de débogage Android (adb.exe) avait un lien sur le fichier binaire compilé. Pas certain de pourquoi; il n'y a pas de configuration Android dans ce projet win32 particulier que je construis. Quoi qu'il en soit, adb.exe tué et tout allait bien par la suite.

Des points. Les répertoires de sortie cibles n'étaient jamais indexés. "Application Experience" mentionné ailleurs dans ce fil s'exécutait tout le temps. Et la plupart du temps, je pouvais supprimer manuellement le binaire de sortie malgré les plaintes de XE7. J'ai remarqué à un moment donné que je ne pouvais pas supprimer le fichier binaire via le shell, ce qui permettait de localiser le fichier adb.exe incriminé via Process Explorer.

4
bvj

Regardez ce lien:
Comment corriger l'erreur: [Erreur fatale dcc32] F2039 Impossible de créer le fichier de sortie X

Seul vous le plus mis cette commande à tous les projets.

1
MohsenB

Dans mon cas, le problème a été résolu en excluant le dossier du projet de la protection antivirus en temps réel.

Pouvez-vous supprimer le fichier EXE manuellement? Si non, le processus est en mémoire, ouvrez le gestionnaire de tâches, sélectionnez votre projet, tâche de fin. vous avez un bogue dans le code qui empêche l'application de se terminer.

Si ce n'est pas en cours de traitement, alors essayez:

Dossier 1-exclure d'applications d'indexation Windows ou de recherche de fichiers tiers indexant des fichiers 

2-dans Windows sept activer le service d'application d'expériences d'application 

Dossier de projet 3-Exclude de la protection anti-virus en temps réel

METTRE À JOUR

J'ai remarqué que, même si vous faites tout ce que j'ai dit plus haut, vous risquez parfois d'avoir cette erreur dans Windows 7 de manière aléatoire. Surtout quand vous compilez plusieurs fois le projet ... les premières compilations seront OK mais après dix ou plus fois ce problème se produira

1
Shahram Banazadeh

Essayez de supprimer Castalia si vous l'utilisez. J'ai passé 3 jours à essayer de résoudre ce problème, tout ce à quoi je pouvais penser ... autorisations de fichiers, en regardant les descripteurs de fichiers avec Process Explorer. Si j'installe Castalia 2013.3.4, le problème survient (j'ai des étapes à reproduire) et sa désinstallation fait disparaître le problème.

De plus, IDE va planter si vous avez un "bureau de débogage par défaut" et essayez de l'exécuter sous le débogueur en utilisant une autre disposition enregistrée. (Un crash se produit lors du passage au bureau de débogage).

1
marketideas

Dans mon cas, cela était dû au dossier de sortie qui n'existait pas. 

Donc, ce que vous pouvez essayer est d'aller dans Projet-> Options et sous l'onglet Répertoires, changez le répertoire de sortie en un dossier existant et essayez à nouveau.

1
PretoriaCoder

J'ai cliqué avec le bouton droit sur l'application (dans la fenêtre du groupe de projet), puis sélectionné NETTOYER.

J'ai ensuite pu compiler l'application.

0
kidjake28

Je semble avoir résolu le problème en réglant le mode de compatibilité sur XP SP3. Cela corrigeait également un autre problème qui empêchait Alt-P de s’ouvrir, ouvrait le menu Projet. 

EDIT: Je n'ai pas eu à réactiver mon expérience d'application. Toujours mort où il devrait être :)

Cliquez avec le bouton droit sur votre raccourci Delphi, Propriétés, puis choisissez l'onglet Compatibilité. Choisissez Exécuter le programme en mode de compatibilité pour: Windows XP (Service Pack 3). 

(J'ai également coché la case Exécuter ce programme en tant qu'administrateur, mais vous pouvez choisir de ne pas le faire.)

(Ceci est pour Delphi 7, selon la question du PO, pas pour XE7, bien que cela puisse fonctionner aussi.)

 Compatibility settings

0
DaveBoltman

Parfois, Microsoft Security Essentials conserve le fichier après sa construction dans Delphi et vous devez désactiver la protection en temps réel.

Pour vérifier quel processus contient le fichier, utilisez Sysinternals Process Explorer: link . Utilisez "Find handle" et tapez votre nom exe.

0

J'ai fait face au même problème et je l'ai résolu. Il semble que dans certains cas inconnus, l'application exe reste en cours d'exécution.
La solution est simple. Vous devez simplement suivre les étapes suivantes: 

  1. ouvrez le gestionnaire de tâches Windows 
  2. Allez dans l'onglet 'Processus'
  3. cliquez sur 'Afficher les processus de tous les utilisateurs' et votre exe apparaîtra 
  4. Choisissez-le et appuyez sur le bouton 'Terminer le processus'

Et tout ira bien.

0
Zaher Soboh