Dieser Artikel gilt für das .NET Framework. Er gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.
Jeder Computer, auf dem die Common Language Runtime installiert ist, besitzt einen computerweiten Codecache, den so genannten globalen Assemblycache. Im globalen Assemblycache werden Assemblys gespeichert, die speziell für die gemeinsame Verwendung durch mehrere Anwendungen auf dem Computer vorgesehen sind.
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.
Hinweis
Es gibt Szenarios, 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 dem xcopy-Befehl das Anwendungsverzeichnis kopieren. Sie müssen die Assembly zusätzlich in den globalen Assemblycache verschieben.
Es gibt zwei Möglichkeiten für die Bereitstellung einer Assembly im globalen Assemblycache:
Die Verwendung eines Installationsprogramms, das für die Zusammenarbeit mit dem globalen Assemblycache entworfen wurde. Das ist die bevorzugte Option für die Installation von Assemblys im globalen Assemblycache.
Bei Bereitstellungsszenarios sollten Sie Assemblys mit Windows Installer im globalen Assemblycache installieren. Verwenden Sie das Global Assembly Cache-Tool nur in Entwicklungsszenarios, da es weder die Assemblyverweiszählung noch weitere bei Verwendung des Windows Installer bereitgestellte Features unterstützt.
Ab .NET Framework 4 lautet der Standardspeicherort des globalen Assemblycaches %windir%\Microsoft.NET\assembly. In früheren Versionen von .NET Framework lautet der Standardspeicherort %windir%\assembly.
Administratoren verwenden zum Schutz des Verzeichnisses systemroot oftmals eine Zugriffssteuerungsliste (ACL – Access Control List), um Schreib- und Ausführungszugriffe zu kontrollieren. Da der globale Assemblycache in einem Unterverzeichnis des Verzeichnisses „Systemstamm“ installiert ist, erbt er die ACL dieses Verzeichnisses. Aus diesem Grund wird empfohlen, nur Benutzern mit Administratorrechten das Löschen von Dateien aus dem globalen Assemblycache zu gestatten.
Alle Assemblys, die im globalen Assemblycache bereitgestellt werden, müssen starke Namen besitzen. Beim Hinzufügen einer Assembly zum globalen Assemblycache werden Integritätsprüfungen für alle Dateien vorgenommen, aus denen die Assembly besteht. Diese Integritätsprüfungen werden vom Cache durchgeführt, um sicherzustellen, dass eine Assembly nicht manipuliert wurde (z. B. wenn eine Datei geändert wurde, aber das Manifest diese Änderung nicht widerspiegelt).
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
In diesem Modul erfahren Sie mehr über Caches in einer cloudnativen .NET Aspire-App und wie Sie diese verwenden können, um die Leistung Ihrer Microservices zu optimieren.
Installieren Sie eine Assembly im globalen Assemblycache (Global Assembly Cache, GAC) in .NET, damit sie von mehreren Anwendungen gemeinsam genutzt werden kann. Verwenden Sie den Windows Installer oder das GAC-Hilfsprogramm.
Hier erfahren Sie, wie Sie eine Assembly aus dem globalen Assemblycache in .NET entfernen, indem Sie entweder das Tool für globalen Assemblycache (Gacutil.exe) oder den Windows Installer verwenden.
Informationen zu Gacutil.exe, dem Global Assembly Cache-Tool. Dieses Tool ermöglicht das Anzeigen und Bearbeiten des globalen Assemblycaches sowie des Downloadcaches.
Beschreibt die Installation einer Assembly im globalen Assemblycache in Visual C#. Dieser Artikel enthält auch einige Beispielschritte, um verwandte Informationen zu erläutern.
Arbeiten mit Assemblys und dem globalen Assemblycache in .NET Informieren Sie sich über die Gründe, die für die Installation einer Assembly im globalen Assemblycache sprechen.