Freigeben über


Dynamic-Link Bibliotheksupdates

Es ist manchmal 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 DLL zu ersetzen, die verwendet wird. 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 Assemblysverwenden.

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 MOVEFILE_COPY_ALLOWED nicht an, und stellen Sie sicher, dass sich die umbenannte Datei auf demselben Volume befindet, das die Originaldatei enthält. Sie können die Datei auch einfach im selben Verzeichnis umbenennen, indem Sie sie 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 Statusinformationen verwaltet oder mit anderen Diensten kommuniziert. Wenn die DLL nicht für eine Änderung der globalen Zustandsinformationen oder Kommunikationsprotokolle vorbereitet ist, müssen Sie die DLL neu starten, um sicherzustellen, dass alle Anwendungen dieselbe Version der DLL verwenden.