В сегодняшнем уроке выдумки мы точно объясним, почему Windows может быть настолько раздражающей всей этой перезагрузкой и, надеюсь, даст вам лучшую перспективу в том, почему все так работает.
Так почему установщики раздражают?
Короткий ответ заключается в том, что большинство инсталляторов раздражают, потому что они либо не написаны очень хорошо, либо они слишком глубоко интегрируются в Windows, чтобы иметь возможность копировать системные файлы и запускать все необходимое без перезагрузки.
Проблема усугубляется тем, что приложения Windows часто используют библиотеки DLL (динамической библиотеки ссылок), которые совместно используются несколькими приложениями. Это хорошая идея, но когда дело доходит до установки и удаления приложений, это может раздражать необходимость перезагрузки. Очень печально то, что многие приложения в наши дни полностью автономны и не заменяют встроенные DLL-файлы Windows, но их установщики по-прежнему заставляют вас перезагружаться.
Вот несколько примеров, когда установщики могут раздражать:
- Если приложение, которое вы устанавливаете, должно копировать новые версии файлов, которые в настоящее время используются другим приложением, оно либо предложит закрыть все другие приложения, либо перезагрузится.
- Если в предыдущей установке или в Центре обновления Windows есть ожидающие изменения, требующие перезагрузки, некоторые установки не работают и попросят вас сначала перезагрузиться.
- Если приложение, которое вы устанавливаете, имеет плагин для другого приложения, например дополнение контекстного меню проводника или плагин браузера, оно предложит вам перезагрузить или закрыть другие приложения.
- Иногда плохо написанные установщики попросят вас перезагрузиться, потому что они не запускают необходимые службы самостоятельно.
Давайте более подробно рассмотрим некоторые из этих случаев, чтобы вы могли полностью понять, что происходит.
Использованные файлы необходимо копировать при перезагрузке
Если программе установки приложения необходимо скопировать некоторые файлы, но они в настоящее время используются или являются системными файлами в случае Windows Update, в Windows будет использоваться функция ожидания, которая позволяет установщику указать, что операция файла происходит после перезагрузки, и прежде, чем все в Windows запустится.
Установщик напишет ключ в следующее место в реестре:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager PendingFileRenameOperations
Если вы получили сообщение о том, что вам нужно сначала перезагрузить компьютер, вы можете открыть этот ключ, и вы увидите все файлы, которые необходимо заменить при следующей перезагрузке.
Установка уже началась
Некоторые инсталляторы не запустится, если текущая установка не выполняется, поэтому они проверит следующий ключ, чтобы узнать, есть ли уже установленная установка:
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionInstallerInProgress
У меня нет скриншота для этого, но вы можете получить идею от имени ключа.
Обновление Windows позволяет перезагрузить
Если вы получаете сообщение о том, что вы не можете установить приложение до перезагрузки компьютера, это из-за Windows Update, требующего принудительной перезагрузки. Так, например, если вы получаете это сообщение об ошибке:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionWindowsUpdateAuto Update
В правой части есть целая куча значений GUID, и, хотя они не относятся ни к чему в реестре, факт, что они есть, - это то, что вызывает это сообщение.
Итак, теперь вы узнали немного больше о том, почему установщики приложений работают так, как они делают. Есть что-то еще, что вы хотели бы знать? Объясните свои разочарования в комментариях, и мы увидим, не можем ли мы пролить свет на них.