Existe um mecanismo para forçar o descarregamento de DLLs não usadas, principalmente para depurar a extensão do shell.
Do artigo Depurando com o shell :
The Shell automatically unloads any DLL when its usage count is zero, but only after the DLL has not been used for a period of time. This inactive period might be unacceptably long at times, especially when a Shell extension DLL is being debugged. You can shorten the inactive period by adding the following information to the registry.
- Abra o editor de registro (Iniciar - > Executar - > Regedit)
- Vá até: %código%
- Clique em Editar - > Novo, em seguida, valor DWORD
- Crie o valor DWORD chamado
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
- Clique com o botão direito do mouse nesse valor e escolha Editar
- Defina os dados do valor como 1 e, em seguida, clique em OK.
- Feche o Editor do Registro e reinicie o computador.
- Agora, as DLLs não utilizadas serão removidas após o encerramento dos programas.
A execução sempre com essa configuração pode tornar o computador mais lento porque o Windows continuará carregando e descarregando as mesmas DLLs quando os programas forem executados. Recomenda-se usá-lo somente ao editar uma fonte.
Como observação adicional, não sei se essa configuração também funciona com DLLs de fonte. Você terá que experimentar e ver.