
Como posso desativar o bloqueio de arquivos no Windows, para que os arquivos bloqueados possam ser substituídos como nos sistemas Linux?
Estou desenvolvendo um plugin, que é uma dll. Antes de compilá-lo novamente, sempre preciso descarregá-lo no programa que o carregou. Diminuiria muito o trabalho, se eu pudesse compilá-lo sempre e só recarregar depois descarregando/carregando novamente. Com o Linux isso não é problema, o compilador apenas substitui o plugin e quando for aberto na próxima vez a nova versão será usada. O Windows possui um bloqueio de gravação, portanto o compilador não pode gravá-lo e aborta.
Responder1
Você não pode "simplesmente" desabilitar o bloqueio de arquivos executáveis/de biblioteca.
No entanto, você podemover ou renomeararquivos em uso, então faça com que seu processo de construção mova a DLL existente para outro lugar e compile a nova em seu lugar.
É muito possível que eles não tenham adicionado uma opção oculta porque várias partes do sistema operacional assumemestará sempre ligado. Por exemplo, pode ser que o código do sistema de arquivos espere que haja sempre pelo menos um link para um arquivo (e, portanto, o espaço pode ser liberado imediatamente após a exclusão do último link) – então, se você forçá-lo a excluir um arquivo em uso, ele pode resultar em vários tipos de corrupção do sistema de arquivos, como dois arquivos usando o mesmo espaço em disco.
Dito isto,A velha coisa novaescreveu uma vez que na verdade não seria difícil permitir a exclusão de arquivos no estilo Linux no kernel WinNT, e que eles simplesmente não o fizeram para evitar alguns problemas de compatibilidade.