Nein . Auch wenn eine DLL kann vollständig in den physischen Speicher abgebildet werden , während die Anwendung ausgeführt wird , gibt es definitiv keine Garantie dafür ist. Teile von DLLs (und sogar ausführbare Dateien) können dem RAM zugeordnet werden, während andere Teile davon auf der Festplatte verbleiben, und können zu einem späteren Zeitpunkt eingelesen werden.
Das Ändern der Datei auf der Festplatte, während Windows Teile davon im RAM zugeordnet hat, würde nicht gut enden. Windows sperrt es aus gutem Grund.
Bearbeiten: Ich muss etwas klarstellen, da einige Leute die Absicht zu haben scheinen, Windows für das zu beschuldigen, was eigentlich ein Problem beim Anwendungsdesign ist , kein Problem beim Betriebssystemdesign.
Sie können DLLs aktualisieren, die von Anwendungen in Windows verwendet werden, ohne den Prozess zu beenden. Die Anwendung muss jedoch so geschrieben sein, dass signalisiert werden kann, dass die Assembly entladen werden soll. Warten Sie, bis die Aktualisierung abgeschlossen ist, und laden Sie dann die DLL erneut. Dies hat nichts mit dem Betriebssystem zu tun, das Sie ausführen. Es ist ein Problem beim Anwendungsdesign.
Bearbeiten: Sehen Sie sich auch Stephanes Antwort für eine mögliche Lösung an, die abhängig davon, wie Ihre spezifische Anwendung auf die Änderung der DLL reagiert, funktioniert. Ich denke, er verdient eine Gegenstimme.
%LocalAppData%\Google\Chrome\Applicationund Sie sollten Ordner sehen, in26.0.1410.64denen DLLs verschiedener Versionen gespeichert sind )