Dynamic-Link Bibliotheksupdates
Manchmal ist es erforderlich, eine DLL durch eine neuere Version zu ersetzen. Führen Sie vor dem Ersetzen einer DLL eine Versionsprüfung durch, um sicherzustellen, dass Sie eine ältere Version durch eine neuere Version ersetzen. Es ist möglich, eine dll zu ersetzen, die verwendet wird. Welche Methode Sie verwenden, um die verwendeten DLLs zu ersetzen, hängt vom verwendeten Betriebssystem ab. Auf Windows XP und höher sollten Anwendungen isolierte Anwendungen und assemblyseitige Assemblysverwenden.
Es ist nicht erforderlich, den Computer neu zu starten, wenn Sie die folgenden Schritte ausführen:
- Verwenden Sie die MoveFileEx-Funktion, um die zu ersetzende DLL umzubenennen. Geben Sie MOVEFILE COPY ALLOWED nicht _ _ an, und stellen Sie sicher, dass sich die umbenannte Datei auf demselben Volume befindet, das die ursprüngliche Datei enthält. Sie können die Datei auch einfach im gleichen Verzeichnis umbenennen, indem Sie ihr eine andere Erweiterung geben.
- Kopieren Sie die neue DLL in das Verzeichnis, das die umbenannte DLL enthält. Alle Anwendungen verwenden jetzt die neue DLL.
- Verwenden Sie MoveFileEx mit MOVEFILE _ DELAY UNTIL _ _ REBOOT, um die umbenannte DLL zu löschen.
Bevor Sie diese Ersetzung vornehmen, verwenden Anwendungen die ursprüngliche DLL, bis sie entladen wird. Nachdem Sie den Ersatz erstellt haben, verwenden Anwendungen die neue DLL. Wenn Sie eine DLL schreiben, müssen Sie darauf achten, dass sie für diese Situation vorbereitet ist, insbesondere wenn die DLL globale Statusinformationen verwaltet oder mit anderen Diensten kommuniziert. Wenn die DLL nicht auf eine Änderung der globalen Zustandsinformationen oder Kommunikationsprotokolle vorbereitet ist, müssen Sie beim Aktualisieren der DLL den Computer neu starten, um sicherzustellen, dass alle Anwendungen die gleiche Version der DLL verwenden.