Freigeben über


Dynamic-Link Bibliothek Updates

Manchmal ist es notwendig, eine DLL durch eine neuere Version zu ersetzen. Führen Sie vor dem Ersetzen einer DLL eine Versionsüberprüfung durch, um sicherzustellen, dass Sie eine ältere Version durch eine neuere Version ersetzen. Es ist möglich, eine verwendete DLL zu ersetzen. Die Methode, die Sie verwenden, um dlLs zu ersetzen, die verwendet werden, hängt vom verwendeten Betriebssystem ab. Unter Windows XP und höher sollten Anwendungen isolierte Anwendungen und parallele Assemblys verwenden.

Es ist nicht erforderlich, den Computer neu zu starten, wenn Sie die folgenden Schritte ausführen:

  1. Verwenden Sie die MoveFileEx-Funktion , um die zu ersetzende DLL umzubenennen. Geben Sie nicht MOVEFILE_COPY_ALLOWED 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 selben Verzeichnis umbenennen, indem Sie ihr eine andere Erweiterung geben.
  2. Kopieren Sie die neue DLL in das Verzeichnis, das die umbenannte DLL enthält. Alle Anwendungen verwenden jetzt die neue DLL.
  3. Verwenden Sie MoveFileEx mit MOVEFILE_DELAY_UNTIL_REBOOT, um die umbenannte DLL zu löschen.

Bevor Sie diesen Ersatz vornehmen, verwenden Anwendungen die ursprüngliche DLL, bis sie entladen wird. Nachdem Sie den Ersatz vorgenommen 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 Zustandsinformationen verwaltet oder mit anderen Diensten kommuniziert. Wenn die DLL nicht auf eine Änderung der globalen Zustandsinformationen oder Kommunikationsprotokolle vorbereitet ist, müssen Sie den Computer beim Aktualisieren der DLL neu starten, um sicherzustellen, dass alle Anwendungen dieselbe Version der DLL verwenden.