Este é provavelmente um problema com a Restauração do sistema. Tente desativá-lo antes de substituir a DLL.
Para obter mais informações, consulte O que é a Restauração do sistema nos sistemas operacionais Windows?
e link
Nossos vendedores têm um aplicativo interno instalado que usa alguns objetos COM / DLLs armazenados no System32. Eu tenho tentado substituir uma dessas DLLs por uma versão mais recente, que funciona bem após a instalação, mas não depois de uma reinicialização.
Aqui está a parte interessante.
fc
(comparação binária) com system32 \ myDll.dll e o 20110412-myDll.dll_ salvo. A conta de usuário que estou usando para isso tem direitos de administrador completos para a máquina. Não consegui encontrar nenhum processo em execução que deva fazer isso e nosso departamento de TI está perplexo.
Alguém tem alguma sugestão?
Atualizar
Apenas para o inferno, eu iniciei uma das máquinas no modo de segurança, instalei a nova DLL e reiniciei novamente. Desta vez, a mudança parece ter funcionado, mesmo após um reinício subsequente. Estranho.
Eu posso fazer isso em outras máquinas que exibem o mesmo problema, e espero que funcione, mas eu realmente gostaria de saber qual é o problema. Argh.
Este é provavelmente um problema com a Restauração do sistema. Tente desativá-lo antes de substituir a DLL.
Para obter mais informações, consulte O que é a Restauração do sistema nos sistemas operacionais Windows?
e link
O sistema está substituindo a DLL pelo arquivo em C:\Windows\System32\DLLCache
pela Proteção de arquivos do Windows . Verifique o log do sistema em Visualizar eventos (em Ferramentas administrativas) para este evento:
Event ID: 64001 Source: Windows File Protection Description: File replacement was attempted on the protected system file C:\Windows\System32\myDll.DLL . This file was restored to the original version to maintain system stability. The file version of the system file is x.x:x.x.
Tente excluir o arquivo DLL armazenado em DLLCache
, substitua a DLL em System32
novamente e reinicialize o computador
Editar: Verifique os registros em seu software de segurança, pois alguns programas de segurança monitoram as DLLs do sistema e bloqueiam as tentativas de substituir o arquivo. Você também pode tentar usar Process Monitor para verificar qual programa está substituindo a DLL, especialmente durante a inicialização com o " Ativar registro de inicialização "recurso localizado em" Opções ".
Tags windows-xp