Иногда бывает так, что даже если вы удалите файл, используемый другим процессом, он все равно покажет ошибку. В этом случае перейдите в свойства проекта и на вкладке событий сборки добавьте код в текстовое поле перед сборкой:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)"
"$(TargetPath).locked"
Надеюсь, это кому-нибудь поможет.