2011-09-30 16 views
8

Sto costruendo un'applicazione WinForms utilizzando Visual Studio 2010. Ogni volta che apporto una modifica al codice, devo eseguire l'applicazione e verificare come funziona. Il problema è che lo faccio abbastanza spesso e una volta che ho dimenticato di chiudere l'istanza precedente dell'applicazione il compilatore dà l'errore "Il processo non può accedere al file bin \ Debug ...." e questo mi infastidisce. Qualcuno sa se è possibile fare in modo che Visual Studio chiuda l'istanza in esecuzione prima di eseguire la compilazione.Come rendere Visual Studio chiuso il processo in esecuzione prima di eseguire la compilazione?

Molte grazie.

+1

Avviare il programma con F5. Amerai il debugger. –

+3

Vorrei, se ha funzionato più velocemente – Narek

risposta

5

Un'idea: eseguire una fase di pre-build per il progetto eseguibile che utilizza Taskkill per terminare il processo. Per saperne di più Taskkill qui: http://technet.microsoft.com/en-us/library/bb491009.aspx

+1

Grazie mille. Ho aggiunto la seguente riga di comando per l'evento pre-build "taskkill/im myImageName" e ha funzionato per me. – Narek

+0

Siete i benvenuti ... –

+3

@MortenFrederiksen ho aggiunto il seguente evento pre-build taskkill/IM "$ (TargetFileName)"/F il problema è che ho un errore se il processo non è in esecuzione. eventuali suggerimenti? –

5

Oltre alla risposta di Morten:

Usa taskkill e poi ignorare gli errori.

taskkill /F /IM "$(TargetFileName)" 
exit 0 
+1

Ho provato questo ma non ha funzionato. La soluzione di @tpower sotto ha funzionato per me. – ebol2000

+0

@ ebol2000 Ha funzionato. Ma solo per la versione di debug. Con l'opzione '/ f' uccide sia il debug che il rilascio. – Bitterblue

15

Aggiungere il seguente ai progetti eventi pre-compilazione (in base alla accepted answer):

taskkill /f /fi "imagename eq $(TargetFileName)" 

Il comando come usato nel other answer può provocare un errore nel caso in cui il processo non è in esecuzione.

Questa variante utilizza un filtro (/fi) che non "fallisce" anche se sono presenti 0 corrispondenze.

+1

Grazie, ha funzionato. Si prega di notare che è anche possibile utilizzare la wild card se lo si desidera. Ad esempio ... taskkill/f/fi "imagename eq MyHealthMonitor *" – ebol2000

+0

Non so se il tuo VS funziona in modo diverso dal mio ma l'altra risposta funziona altrettanto bene quando il processo non è in esecuzione. L'uscita 0' è responsabile per ignorare gli errori, lo sai. – Bitterblue

+0

@tpower Grazie! funziona perfettamente – uriz

0

Il seguente codice da un'altra risposta di stackexchange ha funzionato per me.

processo wmic dove nome = 'chromedriver.exe' elimina

+0

vorresti collegare l'altra risposta in modo che possiamo vederla? – WattsInABox

Problemi correlati