Нет. Несмотря на то, что DLL может быть полностью отображена в физической памяти во время работы приложения, это точно не гарантируется. Части DLL (и даже исполняемые файлы) могут быть отображены в ОЗУ, в то время как другие ее части остаются на диске и могут быть прочитаны позднее.
Изменение файла на диске, в то время как в Windows есть биты, отображенные в ОЗУ, закончится неудачно. Windows блокирует это по уважительной причине.
Изменить: мне нужно кое-что прояснить, так как некоторые люди, похоже, намерены обвинить Windows в том, что на самом деле проблема дизайна приложения , а не проблема дизайна ОС.
Вы можете обновить библиотеки DLL, используемые приложениями в Windows, не прерывая процесс, но приложение должно быть написано таким образом, чтобы можно было сигнализировать о выгрузке сборки, дождаться завершения обновления, а затем перезагрузить библиотеку DLL. Это не имеет ничего общего с операционной системой, которую вы используете. Это проблема дизайна приложения.
Изменить: Также см. Ответ Стефана о возможном решении, которое может работать, в зависимости от того, как ваше конкретное приложение реагирует на изменение своей DLL. Я думаю, что он заслуживает голоса.
%LocalAppData%\Google\Chrome\Application
и вы увидите папки, в26.0.1410.64
которых хранятся библиотеки DLL разных версий)