In welcher Reihenfolge werden Standorte gesucht, um Last referenzierten DLLs?

StackOverflow https://stackoverflow.com/questions/49972

  •  09-06-2019
  •  | 
  •  

Frage

Ich weiß, dass die .NET framework sieht für die referenzierten DLLs in mehreren Orten

  • Global assembly cache (GAC)
  • Alle privaten Wege Hinzugefügt, um die AppDomain
  • Das aktuelle Verzeichnis der ausführenden assembly

Was, um diejenigen Orte gesucht?Ist die Suche nach einer DLL aufgehört, wenn eine übereinstimmung gefunden wird oder geht es weiter durch alle Standorte (und wenn ja, wie werden Konflikte gelöst)?

Auch, bitte bestätigen oder zu verweigern, jene Orte, und jede andere Orte, die ich nicht zu erwähnen.

War es hilfreich?

Lösung

Laden der Assembly ist ein ziemlich aufwändiger Prozess, die hängt von vielen verschiedenen Faktoren, wie Konfigurationsdateien, publisher-Richtlinien, appdomain-Einstellungen, CLR-hosts, die teilweise oder vollständige Montage-Namen, etc.

Die einfache version ist, dass der GAC ist der erste, dann der private Wege.%PATH% wird gar nicht verwendet.

Es ist am besten zu nutzen Assembly Binding Log Viewer (Fuslogvw.exe) zu debug-jegliche Montage-Probleme beim laden.

BEARBEITEN http://msdn.microsoft.com/en-us/library/aa720133.aspx erklärt den Prozess im detail.

Andere Tipps

Ich fand ein Artikel die Referenzierung der MSDN-Artikel auf DLL-Suchreihenfolge das sagt

Für verwalteten code-Abhängigkeiten, die Global Assembly Cache immer herrscht;die lokale Montage in Anwendung Verzeichnis nicht aufgenommen, wenn die es ist eine vorhandene (oder neuere mit Richtlinie) und kopieren Sie in den GAC.

In Anbetracht dieser, denke ich, dass MSDN Liste korrekt ist mit einem zusätzlichen

0. Global assembly cache

"Nicht mehr das aktuelle Verzeichnis durchsucht, die erste beim laden von DLLs!Diese änderung wurde auch in Windows XP SP1.Das Standardverhalten ist jetzt zu schauen in all den system-Standorte zuerst, dann das aktuelle Verzeichnis, und schließlich jede benutzerdefinierte Pfade."

(ref. http://weblogs.asp.net/pwilson/archive/2003/06/24/9214.aspx)

Die Standard-Suche um, die geändert werden können, durch die Anwendung wird auch beschrieben auf der MSDN-Website: http://msdn.microsoft.com/en-us/library/ms682586.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top