Bien. Si esto ocurre de esta manera puedo suponer que en realidad tu programa nunca termina de ejecutarse, y por lo tanto el ejecutable sigue en uso, aún cuando vos crees que ya no lo está.
Hay otras posiblidades, como que sea otro proceso el que tenga en uso el archivo... pero eso depende de lo que hace tu programa. No queda de otra que lo revises detenidamente. Tampoco creo que sea necesario hacerlo de nuevo...
Hasta luego.