Связано: Как принудительно удалить файл?
У меня есть сценарий NAnt, который выполняет полную сборку и развертывание в нашей среде разработки. Развертывание исполняемого файла C#.Net Win exe и используемых библиотек DLL включает их перемещение в сетевое расположение, где их запускают наши тестировщики и другие разработчики.
<copy todir="${dest.dir}" overwrite="true" failonerror="false" >
<fileset basedir="${source.dir}" >
<include name="**/*" />
</fileset>
</copy>
Прямо сейчас сценарий вызывает задачу копирования с параметром Overwrite="true", но это не удается, если кто-либо запускает приложение, сообщая
Не удается скопировать «source.dll» в «dest.dll». Доступ к пути «dest.dll» запрещен.
«dest.dll» — одна из основных зависимостей EXE, скопированная вместе с ним. Прямо сейчас у меня есть один из двух способов: я либо выясняю, у кого он открыт, и прошу их выйти, либо я отправляю электронное письмо нашим системным инженерам, и они делают какое-то колдовство, чтобы удалить заблокированный файл. Могу ли я в любом случае включить в сценарий NAnt некоторые из моих собственных вуду, чтобы копирование файла всегда было успешным?