Freigeben über


Arbeiten mit Assemblies und dem globalen Assemblychache

Wenn Sie eine Assembly freigeben und für mehrere Anwendungen gemeinsam nutzen möchten, können Sie die Assembly im globalen Assemblycache installieren. Jeder Computer, auf dem die Common Language Runtime installiert ist, verfügt über diesen computerweiten Codecache. Im globalen Assemblycache werden Assemblies gespeichert, die speziell für die gemeinsame Verwendung durch mehrere Anwendungen auf dem Computer vorgesehen sind. Eine Assembly muss einen starken Namen haben, um im globalen Assemblycache installiert werden zu können.

Hinweis   Bei Assemblies, die im globalen Assemblycache abgelegt werden, müssen Assembly- und Dateiname (ohne die Dateinamenerweiterung) übereinstimmen. Beispielsweise muss der Dateiname einer Assembly, die den Namen myAssembly hat, entweder myAssembly.exe oder myAssembly.dll lauten.

Geben Sie Assemblies nur dann durch eine Installation im globalen Assemblycache frei, wenn dies unbedingt erforderlich ist. Wenn die Freigabe einer Assembly nicht unbedingt erforderlich ist, empfiehlt es sich, die Assemblyabhängigkeiten privat zu halten und Assemblies im Anwendungsverzeichnis abzulegen. Assemblies müssen außerdem nicht im globalen Assemblycache installiert sein, um für COM-Interop oder nicht verwalteten Code verfügbar zu sein.

Es gibt verschiedene Gründe, eine Assembly im globalen Assemblycache zu installieren:

  • Freigegebener Standort.

    Assemblies, die für die Verwendung durch Anwendungen vorgesehen sind, können im globalen Assemblycache installiert werden. Wenn beispielsweise alle Anwendungen eine im globalen Assemblycache befindliche Assembly verwenden sollen, kann der Datei Machine.config eine Versionsrichtlinienanweisung hinzugefügt werden, die Verweise auf die Assembly umleitet.

  • Dateisicherheit.

    Administratoren verwenden zum Schutz des Verzeichnisses WINNT oftmals eine Zugriffssteuerungsliste (ACL, Access Control List), um Schreib- und Ausführungszugriffe zu kontrollieren. Da der globale Assemblycache im Verzeichnis WINNT installiert ist, erbt er die ACL dieses Verzeichnisses. Aus diesem Grund empfiehlt es sich, nur Benutzern mit Administratorrechten das Löschen von Dateien aus dem globalen Assemblycache zu gestatten.

  • Paralleles Versioning.

    Im globalen Assemblycache dürfen sich mehrere Assemblies mit demselben Namen befinden, solange sich ihre Versionsinformationen unterscheiden.

  • Zusätzliche Suchposition.

    Die Common Language Runtime durchsucht den globalen Assemblycache nach der angeforderten Assembly, bevor CodeBase-Informationen in einer Konfigurationsdatei überprüft oder verwendet werden.

Beachten Sie, dass es Szenarien gibt, in denen eine Assembly ausdrücklich nicht im globalen Assemblycache installiert werden soll. Wenn Sie eine der Assemblies, aus denen eine Anwendung besteht, im globalen Assemblycache ablegen, können Sie die Anwendung anschließend weder replizieren noch installieren, indem Sie mit XCOPY das Anwendungsverzeichnis kopieren. In einem solchen Fall müssen Sie die Assembly ebenfalls im globalen Assemblycache ablegen.

Siehe auch

Erstellen von Assemblies | Globaler Assemblycache | Installieren einer Assembly in den globalen Assemblycache | Anzeigen der Inhalte des globalen Assemblycaches | Entfernen einer Assembly aus dem globalen Assemblycache | Verwenden von Serviced Components mit dem globalen Assemblycache | Anzeigen von Assemblyinhalten | So sucht Common Language Runtime nach Assemblies | Programmieren mit Assemblies