Freigeben über


Teilweise gekennzeichnete Assemblyverweise und parallele Ausführung

Teilweise gekennzeichnete Assemblyverweise können lediglich zum Binden von Assemblys in einem Anwendungsverzeichnis verwendet werden, da sie eine mögliche Problemquelle bei der parallelen Ausführung darstellen. Vermeiden Sie die Verwendung teilweiser gekennzeichneter Assemblyverweise in Code.

Um das Vorkommen von teilweise gekennzeichneten Assemblyverweisen im Code zu verringern, verwenden Sie das <qualifyAssembly>-Element in einer Anwendungskonfigurationsdatei, um im Code auftretende teilqualifizierte Assemblyverweise voll zu qualifizieren. Mit dem <qualifyAssembly>-Element können Sie nur die Felder angeben, die im partiellen Verweis nicht festgelegt wurden. Die im fullName-Attribut aufgeführte Assemblyidentität muss alle Informationen enthalten, die für die vollständige Kennzeichnung des Assemblynamens erforderlich sind: Assemblyname, öffentlicher Schlüssel, Kultur und Version.

Im folgenden Beispiel wird der Eintrag in der Anwendungskonfigurationsdatei dargestellt, mit dem die Assembly myAssembly vollqualifiziert wird.

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
<qualifyAssembly partialName="myAssembly" 
fullName="myAssembly,
      version=1.0.0.0, 
publicKeyToken=..., 
      culture=neutral"/> 
</assemblyBinding> 

Wenn eine Anweisung zum Laden einer Assembly auf myAssembly verweist, bewirken diese Einstellungen in der Konfigurationsdatei, dass die Common Language Runtime den teilqualifizierten Verweis auf myAssembly in einen vollqualifizierten Verweis übersetzt. Beispielsweise wird Assembly.Load("myAssembly") zu Assembly.Load("myAssembly, version=1.0.0.0, publicKeyToken=..., culture=neutral").

HinweisHinweis

Mit der LoadWithPartialName-Methode können Sie die Einschränkung der Common Language Runtime umgehen, die verhindert, dass Assemblys mit partiellen Verweisen aus dem globalen Assemblycache geladen werden.Diese Methode sollte nur bei Remoteszenarien verwendet werden, da es häufig zu Problemen bei der parallelen Ausführung kommen kann.

Siehe auch

Konzepte

Assemblys in der Common Language Runtime (CLR)

Assemblynamen

Parallele Ausführung