Pergunta

Eu tenho um teste de unidade que funciona bem localmente, mas quando carregado para o servidor TeamCity construção falhar com "O processo não pode acessar o arquivo porque ele está sendo usado por outro processo."

  1. Antes de fazer qualquer coisa no Teste I check-in a configuração se o arquivo existe e se assim for tentar excluí-lo. Esta falha com o mesmo erro mensagem como acima
  2. Quando wriitng o arquivo, eu fechar o escritor, em seguida, descartá-lo, que eu acredito que deve se livrar de quaisquer recursos.

Então, eu tenho um par de consultas

  1. Alguém já teve problemas semelhantes e conseguem contorná-las
  2. Como pode descobrir programticall que processo tem bloqueado a selfishly arquivo !!!

Felicidades

Foi útil?

Solução

FileMon tem algumas informações (para baixo de rolagem) sobre como eles conseguiram isso em versões mais antigas do Windows.

monitor de processo é a sua versão mais recente, mas ele doesn' t dar muitas pistas sobre como eles fazem isso. Existem alguns artigos da base de conhecimentos ligados lá, porém, que deve levá-lo a esta informação.

-Adam

Outras dicas

Handle.exe é o primeiro passo. Ou use Explorador 's Find Handle or DLL. É sempre mais seguro para matar o processo do que fechar o identificador, no entanto.

programaticamente, é uma questão de escrever um driver de kernel que lê a tabela alça do Windows.

ProcessMon (para encontrar) e Unlocker (pelo menos para desbloqueio) são úteis também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top