was bei sowas hilft ist den eigentlichen Programmcode in eine weitere Datei zu packen. Normal sieht es ja so aus:
Explorer<->deine Extension
wenn der Explorer deine Extension nicht frei gibt hast du also pech. Um nicht erst den Explorer beenden zu müssen um die Extension neu kompilieren zu können könnte man es so machen.
Explorer<->Zwischenschicht<->
dll
Du bauchst dir also eine Extension (Zwischenschicht) welche nicht den eigentlichen Programmcode enhält sondern eine weitere
dll lädt und daraus funktionen aufruft.