Это случилось со всеми в какой-то момент – вы идете, чтобы установить новое приложение, и Windows говорит вам сначала перезагрузиться. Или перезагрузите после. Или он просит вас сначала закрыть все остальные приложения. Почему это так?
На сегодняшнем уроке гиков мы точно объясним, почему Windows может так раздражать после этой перезагрузки, и, надеюсь, дадим вам лучшее представление о том, почему все работает именно так.
Итак, почему установщики раздражают?
Короткий ответ заключается в том, что большинство инсталляторов раздражают, потому что они либо не очень хорошо написаны, либо слишком глубоко интегрируются в Windows, чтобы иметь возможность копировать системные файлы и запускать все необходимое без перезагрузки.
Проблема усугубляется тем, что приложения Windows часто используют файлы DLL (динамически подключаемые библиотеки), которые совместно используются несколькими приложениями. Это хорошая идея, но когда дело доходит до установки и удаления приложений, это может раздражать необходимость перезагрузки. Действительно печально то, что в наши дни многие приложения полностью автономны и не заменяют встроенные библиотеки Windows DLL, но их установщики по-прежнему заставляют вас перезагружаться.
Вот пара случаев, когда установщики могут раздражать:
- Если устанавливаемое вами приложение должно копировать новые версии файлов, которые в данный момент используются другим приложением, оно либо предложит вам закрыть все другие приложения, либо заставит вас перезагрузиться.
- Если в предыдущей установке или в Центре обновления Windows имеются ожидающие изменения, требующие перезагрузки, некоторые установки завершатся неудачно и попросят сначала перезагрузиться.
- Если приложение, которое вы устанавливаете, имеет плагин для другого приложения, например, дополнение контекстного меню Проводника или плагин для браузера, он предложит вам перезагрузить или закрыть другие приложения.
- Иногда плохо написанные установщики просят вас перезагрузиться, потому что они не запускают необходимые службы самостоятельно.
Давайте подробнее рассмотрим некоторые из этих примеров, чтобы вы могли полностью понять, что происходит.
Используемые файлы должны быть скопированы при перезагрузке
Если установщик приложения должен скопировать некоторые файлы, но они используются в настоящее время, или являются системными файлами в случае Центра обновления Windows, он будет использовать функцию ожидания в Windows, которая позволяет установщику указать, что файловая операция происходит после перезагрузки, и до того, как все в Windows запустилось.
Установщик запишет ключ в следующую папку реестра:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager
\ PendingFileRenameOperations
Если вы получили сообщение об ошибке, в котором говорится, что сначала вам необходимо перезагрузить компьютер, вы можете открыть этот ключ и увидеть все файлы, которые необходимо заменить при следующей перезагрузке.
Возможно, вы не хотите связываться с содержимым этого ключа, иначе все быстро начнет становиться странным. В некоторых очень редких случаях этот ключ не очищается даже после нескольких перезагрузок, и вам, возможно, придется стереть содержимое ключа, но вам, вероятно, следует избегать этого, если вы не уверены в этом.
Установка уже выполняется
Некоторые установщики не запускаются, если выполняется текущая установка, поэтому они проверят следующий ключ, чтобы увидеть, если установка уже происходит:
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress
У меня нет скриншота для этого, но вы можете понять идею по названию ключа.
Центр обновления Windows делает перезагрузку
Если вы получаете сообщение о том, что вы не можете установить приложение, пока не перезагрузите компьютер, это из-за Windows Update, требующей принудительной перезагрузки. Так, например, если вы получаете это сообщение об ошибке:
Это потому, что вы, вероятно, нажали «Отложить», когда увидели это диалоговое окно:
Если вы зайдете в реестр, вы увидите, что в этом месте в реестре находится ключ RebootRequired:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \
CurrentVersion \ WindowsUpdate \ Автообновление
Справа находится целый ряд значений GUID, и, хотя они не относятся к чему-либо в реестре, именно тот факт, что они есть, вызывает это сообщение.
Технически вы, вероятно, могли бы экспортировать содержимое ключа, установить приложение и затем вернуть их обратно – но это может что-то сломать, и перезагрузка не так уж и болезненна, не так ли?
Итак, теперь вы узнали немного больше о том, почему установщики приложений работают так, как они. Есть что-нибудь еще, что вы хотели бы знать?Объясните свое разочарование в комментариях, и мы посмотрим, сможем ли мы пролить свет на них.