wake-up-neo.com

Schwerwiegender Fehler: Ausgabedatei "project1.exe" kann nicht erstellt werden

Ich habe also seit einiger Zeit dieses Problem:

unter Windows 7 (64 Bit), mit Delphi 7 und Delphi XE2, wenn ich aus der IDE ein Programm kompiliere, es ausführen, anhalten, ändern und erneut ausführen, erhalte ich folgende Fehlermeldung:

[Schwerwiegender Fehler] Ausgabedatei "project1.exe" kann nicht erstellt werden

Ich habe keine Ahnung, was dies verursacht. Ich googelte nach weiteren Informationen, konnte aber keine Lösung finden.

Es gibt zwei Problemumgehungen: Warten Sie ein oder zwei Minuten oder löschen Sie project1.exe manuell. Es ist unnötig zu erwähnen, dass dies nicht praktikabel ist.

Ich habe keinen Virenscanner und keinen Virus. Vollzugriff auf verwandte Ordner. Führen Sie alles als Administrator aus. 

Also, was verursacht das? Und was kann ich dagegen tun?

16
Marck

Ich habe die Lösung gefunden. Es scheint, dass dies durch das Deaktivieren des Dienstes "Anwendungserfahrung" verursacht wurde. Wenn diese Option deaktiviert ist, sperrt "system" jede ausführbare Datei für einige Zeit.

Die erneute Aktivierung von "Application Experience" ist die Lösung.

Gefunden über:

https://superuser.com/questions/260375/why-would-system-continue-locking-executable-file-handles-nach-the-app-exit -

15
Marck

Ich habe das Gefühl, dass project1.exe weiterhin ausgeführt wird, wenn Sie versuchen, die Anwendung neu zu erstellen. Vielleicht dauert es länger als es sollte, um zu schließen. Sie können dies leicht überprüfen, indem Sie den Task-Manager öffnen und sehen, ob der Prozess project1.exe noch aktiv ist, nachdem Sie die Anwendung geschlossen haben.

4
Diego

Ich bin auf XE7 und erhalte gelegentlich das Problem " Ausgabedatei konnte nicht erstellt werden ", f2039 . Mit dem Prozess-Explorer von sysinternals entdeckte ich, dass ein Android-Debug-Prozess (adb.exe) ein Pfandrecht auf die kompilierte Binärdatei hatte. Nicht sicher warum; Es gibt keine Android-Konfiguration in diesem Win32-Projekt, das ich gerade baue. Jedenfalls tötete adb.exe und alles war danach gut.

Ein paar Punkte. Die Zielausgabeverzeichnisse wurden nie indexiert. Die in diesem Thread an anderer Stelle erwähnte "Anwendungserfahrung" wurde die ganze Zeit ausgeführt. Und die meiste Zeit konnte ich trotz XE7s Beschwerden die Ausgabebinärdatei manuell löschen. Ich bemerkte an einer Stelle, dass ich die Binärdatei nicht über die Shell löschen konnte, was die Möglichkeit bot, die fehlerhafte adb.exe über den Process Explorer zu finden.

4
bvj

Diesen Link ansehen:
So beheben Sie Fehler: [dcc32 Fatal Error] F2039 Ausgabedatei X konnte nicht erstellt werden

Nur Sie setzen diesen Befehl bei allen Projekten ein.

1
MohsenB

In meinem Fall Problem gelöst durch Ausschließen des Projektordners vom Echtzeitschutz des Antivirus.

Kann man die EXE-Datei manuell löschen? Wenn nein, ist der Prozess in memroy, Taskmanager öffnen, Projekt auswählen, Task beenden. Sie haben einen Fehler im Code, der die Beendigung der Anwendung verhindert.

Wenn es nicht in der Prozessliste ist, dann versuchen Sie es mit:

1-Exclude-Ordner aus Windows Indizierungs- oder Drittanbieter-Dateisuchanwendungen, die Dateien indizieren 

2-In Windows 7 aktivieren Sie den Anwendungserfahrungsdienst 

3 - Schließen Sie den Projektordner vom Echtzeitschutz für Virenschutz ab

UPDATE

Ich habe bemerkt, dass, selbst wenn Sie alles tun, was ich oben gesagt habe, diese Fehlermeldung einige Male in Windows 7 zufällig angezeigt werden kann. Insbesondere, wenn Sie das Projekt viele Male kompilieren ... Die ersten Kompilierungen sind in Ordnung, aber nach zehn oder mehr mal tritt dieses problem auf

1

Entfernen Sie Castalia, wenn Sie es verwenden. Ich habe 3 Tage lang versucht, dieses Problem zu lösen, alles, woran ich denken konnte ... Dateiberechtigungen, die Dateizugriffe mit dem Prozess-Explorer beobachtend Wenn ich Castalia 2013.3.4 installiere, tritt das Problem auf (ich habe Schritte, die zu reproduzieren sind). Durch die Deinstallation wird das Problem behoben.

Darüber hinaus stürzt IDE ab, wenn Sie über einen Standard-Debugdesktop verfügen und versuchen, unter einem anderen gespeicherten Layout unter dem Debugger auszuführen. (Absturz beim Umschalten auf den Debugdesktop).

1
marketideas

In meinem Fall lag es an dem Ausgabeordner, der nicht vorhanden war. 

Sie können also zu Projekt-> Optionen gehen und unter der Registerkarte Verzeichnisse das Ausgabeverzeichnis in einen vorhandenen Ordner ändern und es erneut versuchen.

1
PretoriaCoder

Ich habe mit der rechten Maustaste auf die Anwendung geklickt (im Projektgruppenfenster) und dann CLEAN ausgewählt.

Ich konnte dann die Anwendung kompilieren.

0
kidjake28

Ich habe es scheinbar behoben, indem ich den Kompatibilitätsmodus auf XP SP3 eingestellt habe. Dies behebte auch einen weiteren Ärger, der dazu führte, dass Alt-P nicht geöffnet wurde, um das Projektmenü aufzurufen. 

EDIT: Ich musste meine Anwendungserfahrung nicht erneut aktivieren. Noch tot wo es sein sollte :)

Klicken Sie mit der rechten Maustaste auf Ihre Delphi-Verknüpfung, Eigenschaften, und wählen Sie die Registerkarte Kompatibilität. Wählen Sie Programm im Kompatibilitätsmodus ausführen für: Windows XP (Service Pack 3). 

(Ich habe auch das Kontrollkästchen Dieses Programm als Administrator ausführen aktiviert. Sie können dies jedoch nicht tun.)

(Dies gilt für Delphi 7, wie in der OP-Frage beschrieben, nicht für XE7, obwohl es auch für das funktioniert.)

 Compatibility settings

0
DaveBoltman

Manchmal hält Microsoft Security Essentials die Datei, nachdem sie in Delphi erstellt wurde, und Sie müssen den Echtzeitschutz deaktivieren.

Verwenden Sie den Sysinternals Process Explorer, um zu überprüfen, welcher Prozess die Datei enthält: link . Verwenden Sie "Suchpunkt suchen" und geben Sie Ihren Exe-Namen ein.

0

Ich hatte das gleiche Problem und löste es. Es scheint, dass die Exe-Anwendung in einigen unbekannten Fällen weiter ausgeführt wird.
Die Lösung ist einfach. Sie müssen einfach die folgenden Schritte ausführen: 

  1. Öffnen Sie den Windows Task Manager 
  2. Gehen Sie zur Registerkarte "Prozesse"
  3. klicken Sie auf "Prozesse von allen Benutzern anzeigen" und Ihr Exe wird angezeigt 
  4. Wählen Sie es aus und klicken Sie auf die Schaltfläche "Prozess beenden"

Und alles wird gut.

0
Zaher Soboh