Bestimmen der zu ladenden Laufzeitversion
Aktualisiert: November 2007
Die Common Language Runtime verwendet die folgenden Informationen, um zu bestimmen, welche Laufzeitversion für eine Anwendung geladen werden soll:
Die verfügbaren Laufzeitversionen.
Die Laufzeitversionen, die von einer Anwendung unterstützt werden.
Unterstützte Laufzeitversionen
Die Common Language Runtime verwendet die Anwendungskonfigurationsdatei und den Dateiheader der PE-Datei (Portable Executable, übertragbare ausführbare Datei), um zu bestimmen, welche Laufzeitversion von einer Anwendung unterstützt wird. Wenn keine Anwendungskonfigurationsdatei vorhanden ist, lädt die Common Language Runtime die im Dateiheader der PE-Datei angegebene Laufzeitversion, sofern diese verfügbar ist.
Wenn eine Anwendungskonfigurationsdatei vorhanden ist, bestimmt die Common Language Runtime die entsprechende zu ladende Laufzeitversion auf der Grundlage des folgenden Prozesses:
Das <supportedRuntime>-Element-Element wird in der Anwendungskonfigurationsdatei von der Laufzeit überprüft. Wenn eine oder mehrere der im <supportedRuntime>-Element angegebenen unterstützten Laufzeitversionen vorhanden sind, lädt die Common Language Runtime die durch das erste <supportedRuntime>-Element angegebene Laufzeitversion. Wenn diese Version nicht verfügbar ist, überprüft die Common Language Runtime das nächste <supportedRuntime>-Element und versucht, die angegebene Laufzeitversion zu laden. Wenn diese Laufzeitversion nicht verfügbar ist, werden die nachfolgenden <supportedRuntime>-Elemente überprüft. Wenn keine der unterstützten Laufzeitversionen verfügbar ist, schlägt das Laden einer Laufzeitversion fehl. Dem Benutzer wird eine Meldung angezeigt (siehe Schritt 3).
Der Dateiheader der PE-Datei der ausführbaren Datei der Anwendung wird von der Common Language Runtime gelesen. Wenn die im Dateiheader der PE-Datei angegebene Laufzeitversion verfügbar ist, wird diese von der Common Language Runtime geladen. Wenn die angegebene Laufzeitversion nicht verfügbar ist, sucht die Common Language Runtime nach einer Laufzeitversion, die Microsoft als kompatibel mit der im Dateiheader der PE-Datei festgelegten Laufzeitversion einstuft. Wenn diese Version nicht gefunden wird, wird der Prozess mit Schritt 3 fortgesetzt.
Von der Laufzeit wird die Meldung angezeigt, dass die von der Anwendung unterstützte Laufzeitversion nicht verfügbar ist. Die Common Language Runtime wird nicht geladen.
Hinweis: Sie können die Anzeige dieser Meldung mit dem NoGuiFromShim-Wert unter dem Registrierungsschlüssel HKLM\Software\Microsoft\.NETFramework oder mit der COMPLUS_NoGuiFromShim-Umgebungsvariablen unterdrücken. Beispielsweise können Sie die Meldung für Anwendungen unterdrücken, bei denen typischerweise keine Interaktion mit dem Benutzer vorgesehen ist, z. B. bei unbeaufsichtigten Installationen oder Windows-Diensten. Wird die Anzeige dieser Meldung unterdrückt, schreibt die Common Language Runtime eine Meldung in das Ereignisprotokoll. Legen Sie den Registrierungswert NoGuiFromShim auf 1 fest, um diese Meldung für alle Anwendungen auf einem Computer zu unterdrücken. Alternativ dazu können Sie für die COMPLUS_NoGuiFromShim-Umgebungsvariable 1 festlegen, um die Meldung für Anwendungen zu unterdrücken, die in einem bestimmten Benutzerkontext ausgeführt werden.
Hinweis: |
---|
Nachdem eine Laufzeitversion geladen wurde, kann durch Umleitungen von Assemblybindungen festgelegt werden, dass eine andere Version einer einzelnen .NET Framework-Assembly geladen wird. Diese Umleitungen von Bindungen betreffen nur die spezifische umgeleitete Assembly. |
Siehe auch
Konzepte
Feststellen der Laufzeitversionsinformationen
Konfigurieren der Umleitung der Assemblybindung