Arbeiten mit Assemblys 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 Assemblys 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 Assemblys, 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 Assemblys 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 Assemblys im Anwendungsverzeichnis abzulegen. Assemblys 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.

    Assemblys, 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 systemroot oft eine Zugriffssteuerungsliste (ACL, Access Control List), um Schreib- und Ausführungszugriffe zu steuern. Da der globale Assemblycache im Verzeichnis systemroot 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 Assemblys 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 Assemblys, 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.

In diesem Abschnitt

Gewusst wie: Installieren einer Assembly im globalen Assemblycache Beschreibt die Möglichkeiten, eine Assembly im globalen Assemblycache zu installieren.

Gewusst wie: Anzeigen der Inhalte des globalen Assemblycaches Erläutert die Verwendung von Gacutil.exe (Tool für globalen Assemblycache) zum Anzeigen des Inhalts des globalen Assemblycaches.

Gewusst wie: Entfernen einer Assembly aus dem globalen Assemblycache Erläutert die Verwendung von Gacutil.exe (Tool für globalen Assemblycache) zum Entfernen einer Assembly aus dem globalen Assemblycache.

Verwenden von Serviced Components mit dem globalen AssemblycacheErläutert, warum Serviced Components (verwaltete COM+-Komponenten) im globalen Assemblycache abgelegt werden sollten.

Erstellen von Assemblys Bietet eine Übersicht über das Erstellen von Assemblys.

Globaler Assemblycache Beschreibt den globalen Assemblycache.

Gewusst wie: Anzeigen des Assemblyinhalts Erläutert, wie Ildasm.exe (IL-Disassembler) verwendet wird, um CIL-Informationen (Common Intermediate Language) in einer Assembly anzuzeigen.

So sucht die Runtime nach AssemblysBeschreibt, wie die Common Language Runtime die Assemblys, die Ihre Anwendung bilden, sucht und lädt.

Programmieren mit Assemblys Beschreibt Assemblys, also die Bausteine verwalteter Anwendungen.