Impossibile creare il programma perché viene trattenuto in ostaggio da un altro programma


0

So che è stato chiesto prima, ma nessuna delle domande che ho esaminato sembra rispondere alla mia domanda. Quindi, con quello, e per assicurare che ho fatto i miei compiti prima che qualcuno mi picchi, lascia che ti dica cosa ho fatto per causare l'errore, e cosa ho provato a risolvere il problema.

Tutto è iniziato due giorni fa. Ho creato un programma animatore sprite in modo da poter modificare rapidamente i fogli sprite. Sono ancora in procinto di aggiungere alcuni tocchi estetici al programma, ma con la funzionalità che funziona più o meno, non ho davvero capito. Quel giorno, comunque, ho pensato che avrei potuto aggiungere un'icona, almeno. Così l'ho creato, allegato al programma e guardato apparire sulla barra delle applicazioni in tutta la sua bellezza.

Ora tendo ad usare molto il programma, ma non è ancora finito, quindi non l'ho ancora "Rilasciato". Ho pensato che potevo semplicemente collegarlo alla mia barra delle applicazioni e avere solo il riferimento alla versione bin / debug del programma. Tuttavia, ho scoperto che quando l'ho fatto, l'icona, che avevo modificato quel giorno, non si presentava correttamente (problema totalmente diverso non correlato a questo). Quindi ho dovuto bloccare e sbloccare il programma più volte. Sapevo che a volte, su alcuni sistemi, l'icona non cambia o appare correttamente sulla barra delle applicazioni fino a dopo il riavvio del computer. Così alla fine della giornata, l'ho spento e riavviato il giorno successivo. Non ha funzionato.

A quel punto, non mi è sembrato tutto così importante, quindi ho deciso di posticipare la modifica e continuare con il mio lavoro con spritesheet. Dopo un po ', volevo vederlo in azione, così ho acceso il mio animatore tramite la barra delle applicazioni. Quello era quando Avast! ha iniziato cercando di analizzare la cosa, per vedere se si trattava di un virus. Ho pensato "OK, non è un virus, ma lo scoprirai tra un po '." Passò un po '(circa un'ora) e la cosa non finì mai. Dopo diversi tentativi per far sì che la maledetta protezione da virus eccessivamente prudente lasci il mio programma da solo, ho deciso di sbloccarlo ed eseguirlo dall'IDE. Ha funzionato bene a quel punto. L'ho ripubblicato in seguito e funzionava normalmente da entrambe le opzioni: tramite IDE o dalla barra delle applicazioni.

Dopo un altro giorno e ripartenza, ho deciso di averne abbastanza dell'icona brutta e l'ho modificata ancora una volta. L'ho inserito nel programma, ma quando ho provato a costruirlo, è rimasto lì più a lungo del solito, poi è tornato dicendo qualcosa del genere:

Impossibile copiare il file "obj \ x86 \ Debug \ SpriteSheetAnimator.exe" su "bin \ x86 \ Debug \ SpriteSheetAnimator.exe". Il processo non può accedere al file 'bin \ x86 \ Debug \ SpriteSheetAnimator.exe' perché è utilizzato da un altro processo.

A seguito di questo messaggio c'erano messaggi di avvertimento, con dettagli quante volte ha provato a costruirlo (10 volte).

Qui inizia i metodi per provare a risolvere il problema, se hai letto fino a qui.

  • Ho pensato che fosse strano, così ho deciso di pulirlo e ricostruirlo. Ho ottenuto questo dal tentativo di pulizia:

Impossibile eliminare il file "C: ... \ bin \ x86 \ Debug \ SpriteSheetAnimator.exe". L'accesso al percorso 'C: ... \ bin \ x86 \ Debug \ SpriteSheetAnimator.exe' è negato.

  • Ok. Questo fa schifo. Quindi, dopo aver provato ad eliminare manualmente le cartelle \ bin e \ obj, ho scoperto che non mi permetteva ancora, per gli stessi motivi.

Quelli erano un giorno fa Oggi ho provato questi:

  • Ho scoperto che i processi potevano gestire i file, quindi dopo alcune ricerche ho trovato handle.exe da SysInternalSuite poteva risolvi il problema. Ho provato a inserire "handle -c 18 -y -p 5946" in un prompt dei comandi. Non ha funzionato, e tutto ciò che ho ottenuto da un handle è stato un errore:

T

Questo è tutto. Nessun errore di battitura o omesso. "T" - questo è tutto ciò che ho avuto come errore.

  • Ho anche scoperto che potevo semplicemente cancellare i thread usando Process Explorer dalla stessa suite. In qualche modo ne avevo tre, anche se il programma non è multi-thread. Comunque non importava; quando ho provato ad ucciderli, ha detto che non avevo accesso.

Quindi è così. Non riesco a pensare a nient'altro da fare.

Sto usando Windows 8.1 con VS2013.

Handle è la versione 4.0

Se vuoi che il dump della maniglia me lo faccia sapere, e lo aggiungerò. È davvero junky, e tutto questo può essere cancellato per essere troppo tempo.


Ok, quindi ti sei assicurato di avere ancora i permessi di scrittura per quella cartella / file? E che il file non è segnato di sola lettura? Hai provato a riavviare e hai tentato di cancellare di nuovo? Hai provato a utilizzare Process Explorer per capire cosa contiene l'handle di quel file?
Ƭᴇcʜιᴇ007

1. Riavvia. 2. usa l'opzione Pulisci IDE. 3. Configurare l'icona come una risorsa all'interno del progetto e applicarla in fase di compilazione / compilazione, se si intende fare riferimento alla copia creata e ricostruita ogni volta che si apporta una modifica. 4. il tuo problema AV non è correlato, quindi prendi l'icona martellata e poi concentrati sul problema dell'AV (o viceversa, ma è davvero confuso quando sono confusi, dividi e vinci). 5. utilizza le strutture try-finally per tutti i file che la tua app apre e non solo interrompe il programma durante il debug se ha un file aperto. eseguire l'app fino a quando il file non viene chiuso, quindi interrompere.
Frank Thomas

Entrambi i tuoi commenti mi portano a credere che il mio commento iniziale non sia stato letto completamente. Le cartelle non sono di sola lettura: non ho mai cambiato i permessi della cartella, e fanno parte di una build di soluzione, e se hai letto nel post, hai visto che ho usato handle per vedere cosa teneva l'handle del file. @FrankThomas: ho riavviato più volte all'interno del post, ed è stato stabilito che la soluzione Clean non funziona. Il mio problema con l'icona è un problema a parte, quindi l'attenzione non deve essere divisa nei suoi confronti. Infine, non ho idea di cosa stai dicendo al punto 5.
Sage Kelly

@ Ƭᴇcʜιᴇ007 Anche così, ho usato Process Explorer, e ha mostrato che SpriteSheetAnimator.exe, il programma stesso, aveva tre thread aperti.
Sage Kelly

1
@SageKelly - in esecuzione chkdsk a condizione che abbiate i backup corretti. Presumo che tu abbia configurato il tuo programma di sicurezza in modo da escludere la scansione e la visione in questi specifici luoghi in cui il tuo programma appare nel modo giusto?
Ramhound
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.