Domanda

Ho un test unit che funziona bene localmente ma quando caricato sul server di build TeamCity fallisce con " Il processo non può accedere al file perché è utilizzato da un altro processo. "

  1. Prima di fare qualsiasi cosa nel Test Controllo l'installazione se il file esiste e in tal caso prova a eliminarlo. Questo non riesce con lo stesso errore messaggio come sopra
  2. Quando si indossa il file, chiudo lo scrittore quindi smaltirlo che credo dovrebbe sbarazzarsi di qualsiasi risorsa.

Quindi ho un paio di domande

  1. Qualcuno ha avuto problemi simili e riesce a aggirarli
  2. Come posso scoprire tutto il programma il processo ha bloccato egoisticamente il File !!!

Saluti

È stato utile?

Soluzione

Sysinternals FileMon contiene alcune informazioni (scorri verso il basso) su come hanno raggiunto questo obiettivo nelle versioni precedenti di Windows.

Monitor di processo è la loro ultima versione, ma non Fornisco molti indizi su come lo fanno. Ci sono alcuni articoli della knowledge base collegati lì, tuttavia, che dovrebbero condurre a queste informazioni.

-Adam

Altri suggerimenti

Sysinternals handle.exe è il primo passo. Oppure usa Process Explorer il Trova handle o DLL . Tuttavia, è sempre più sicuro terminare il processo che chiudere l'handle.

A livello di programmazione, si tratta di scrivere un driver del kernel che legge la tabella handle di Windows.

ProcessMon (per la ricerca) e Unlocker (almeno per lo sblocco) sono utili.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top