Всегда ли проводник нужно перезапускать?
Однажды у меня было приложение, в котором был установлен счетчик монитора производительности, который должен был использоваться совместно моим приложением и Perfmon (когда он работал), поэтому его установка должна быть просто для того, чтобы убедиться, что любое приложение было закрыто. Простые ... за исключением драйвера (не могу вспомнить, какой именно, или я бы назвал позором производителя), который загружал каждый объект perfmon dll и держал их всех заблокированными. В результате моему приложению потребовалась перезагрузка.
Теперь, если у вас есть инструмент, который может определить, какие процессы имеют какие из ваших устанавливаемых файлов заблокированы, и предложить закрыть их, хотя пользователь должен принять решение, один из этих процессов может быть важен для Windows ( например, служба рабочей станции или svchost) или важная для пользователя (например, Word с ценой несохраненной работы за день) (это, вероятно, плохой пример).