This still doesn't work, since the old assembly never gets freed allowing it to be unloaded, my best guess is that there's some references to the types within in the old assembly somewhere which doesn't get cleared.