Пишу деинсталлятор, который удаляет службу и стирает её файлы:
AssemblyInstaller assemblyInstaller = null;
try
{
assemblyInstaller = new AssemblyInstaller(_servicePath, new string[0]);
IDictionary mySavedState = new Hashtable();
assemblyInstaller.Uninstall(mySavedState);
}
catch(Exception ex)
{
//...
}
finally
{
if (assemblyInstaller != null)
assemblyInstaller.Dispose();
}
// ...
ClearDirectory() // Удаление файлов службы
После срабатывания конструктора экзешник службы блокируется (смотрю Анлокером), причём, блокирующий процесс мой же. Потом служба успешно удаляется из системы, но даже после Dispose() файл остаётся заблокированным. В результате не могу очистить директорию службы.
Что делать? Как разблокировать и удалить файл?