Installieren einer Assembly im .NET Framework globalen Assemblycache
In diesem Artikel wird beschrieben, wie Sie eine Assembly .dll Datei im globalen Assemblycache von Microsoft .NET Framework installieren und mithilfe von Visual Studio eine Assembly mit einem starken Namen erstellen.
Ursprüngliche Produktversion: .NET Framework, Visual Studio
Ursprüngliche KB-Nummer: 910355
Zusammenfassung
Um eine Assembly .dll Datei im .NET Framework globalen Assemblycache zu installieren, können Sie das Tool .NET Framework SDK Global Assembly Cache verwenden. Sie können auch das Tool "Globaler Assemblycache" verwenden, um zu überprüfen, ob die Assembly im globalen Assemblycache installiert ist. Zum Ausführen dieser Aufgabe verfügen Sie möglicherweise über Administratorrechte auf dem Computer, auf dem die freigegebene Assembly installiert ist. Darüber hinaus müssen Sie das .NET Framework SDK installieren.
Eine Visual C# .NET-Version dieses Artikels finden Sie unter Installieren einer Assembly im globalen Assemblycache in Visual C#.
Global assembly cache
Der .NET Framework globalen Assemblycache ist ein Codecache. Der globale Assemblycache wird automatisch auf jedem Computer installiert, auf dem die .NET Framework Common Language Runtime installiert ist. Jede anwendung, die auf dem Computer installiert ist, kann auf den globalen Assemblycache zugreifen. Im globalen Assemblycache werden Assemblys gespeichert, die von mehreren Anwendungen auf dem Computer freigegeben werden sollen. Komponentenassemblys werden in der Regel im C:\WINNT\Assembly Ordner gespeichert.
Hinweis
Installieren Sie eine Assembly nur im globalen Assemblycache, wenn Sie die Assembly freigeben müssen. Es wird empfohlen, Assemblyabhängigkeiten privat zu halten und die Assembly im Anwendungsverzeichnis zu suchen, es sei denn, die Freigabe einer Assembly ist explizit erforderlich. Darüber hinaus müssen Sie keine Assembly im globalen Assemblycache installieren, um die Assembly für die Com-Interoperabilität (Microsoft Component Object Model) oder für nicht verwalteten Code verfügbar zu machen.
Eine Assembly
Eine Assembly ist ein grundlegender Bestandteil der Programmierung mit dem .NET Framework. Eine Assembly ist ein wiederverwendbarer, selbstbeschreibbarer Baustein einer .NET Framework Common Language Runtime-Anwendung.
Eine Assembly enthält eine oder mehrere Codekomponenten, die von der Common Language Runtime ausgeführt werden. Alle Typen und alle Ressourcen in derselben Assembly bilden eine einzelne Version der Einheit. Das Assemblymanifest beschreibt die Versionsabhängigkeiten, die Sie für abhängige Assemblys angeben. Mithilfe einer Assembly können Sie Versionsregeln zwischen verschiedenen Softwarekomponenten angeben und diese Regeln zur Laufzeit erzwingen lassen. Eine Assembly unterstützt parallele Ausführung. WHich ermöglicht die gleichzeitige Ausführung mehrerer Versionen.
Signieren mit starkem Namen
Eine Assembly muss einen starken Namen haben, damit sie im globalen Assemblycache installiert werden kann. Ein starker Name ist eine global eindeutige Identität, die nicht von einer anderen Person gefälscht werden kann. Mithilfe eines starken Namens verhindern Sie, dass Komponenten mit demselben Namen miteinander in Konflikt stehen oder von einer aufrufenden Anwendung nicht ordnungsgemäß verwendet werden. Die Assemblysignatur ordnet einer Assembly einen starken Namen zu. Die Assemblysignierung wird auch als Signierung mit starkem Namen bezeichnet. Ein starker Name besteht aus den folgenden Informationen:
- Der einfache Textname der Assembly
- Die Versionsnummer der Assembly
- Die Kulturinformationen zur Assembly, wenn diese Informationen bereitgestellt werden
- Ein Paar aus öffentlichem und privatem Schlüssel
Diese Informationen werden in einer Schlüsseldatei gespeichert. Die Schlüsseldatei ist entweder eine PFX-Datei (Personal Information Exchange) oder ein Zertifikat aus dem Microsoft Windows Zertifikatspeicher des aktuellen Benutzers.
Sie können eine Assembly signieren, indem Sie die Optionen auf der Registerkarte "Signieren" des Project Designers in Visual Studio verwenden. In Visual Studio muss die Schlüsseldatei im Projektordner auf dem lokalen Computer gespeichert werden. Visual Studio unterstützt nur die folgenden Dateiformate:
- Dateien mit persönlichen Informationen Exchange (PFX)
- Dateien mit starkem Namensschlüssel (SNK)
Anforderungen
Möglicherweise erfüllen Sie die folgenden Anforderungen, bevor Sie eine Assembly im globalen Assemblycache installieren:
- Sie müssen über Administratorrechte für den Computer verfügen, auf dem die freigegebene Assembly installiert ist.
- Sie müssen das .NET Framework SDK installieren.
In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:
- Allgemeine Vertrautheit mit freigegebenen Assemblys in .NET.
- Allgemeine Vertrautheit mit der Verwendung von Tools an einer Eingabeaufforderung.
Installieren einer Assembly im globalen Assemblycache
Diese Methode basiert auf dem Erstellen einer Assembly mithilfe von Visual Studio. Um eine Assembly zu erstellen, die von mehreren Anwendungen freigegeben werden kann, muss die freigegebene Assembly einen starken Namen haben. Darüber hinaus muss die freigegebene Assembly im globalen Assemblycache bereitgestellt werden.
Führen Sie die folgenden Schritte aus, um eine kleine Visual C#-Assembly mit einem starken Namen zu erstellen und die kompilierte .dll Datei im globalen Assemblycache zu installieren:
Erstellen Sie ein neues Visual C#-Klassenbibliotheksprojekt mit dem Namen GACDemo. Gehen Sie dazu wie folgt vor:
- Starten Sie Visual Studio.
- Wählen Sie im Menü "Datei" die Option "Neu Project" aus.
- Wählen Sie in der Liste "Vorlagen" die Option "Klassenbibliothek" aus.
- Geben Sie im Feld Name GACDemo ein, und wählen Sie dann OK aus.
- Drücken Sie STRG+UMSCHALT+S, um das Projekt zu speichern.
- Geben Sie im Feld Position den Wert
C:\DemoProjectsein. - Deaktivieren Sie das Kontrollkästchen "Verzeichnis für Lösung erstellen", und wählen Sie dann "Speichern" aus.
Generieren Sie einen starken Namen, und ordnen Sie die Schlüsseldatei mit starkem Namen der Assembly zu. Gehen Sie dazu wie folgt vor:
Wählen Sie im Menü Project die Option "GACDemo-Eigenschaften" aus.
Aktivieren Sie auf der Registerkarte Signieren das Kontrollkästchen Assembly signieren.
Wählen Sie unter "Schlüsseldatei mit starkem Namen auswählen" die Option <New> aus.
Aktivieren Sie im Dialogfeld "Schlüssel mit starkem Namen erstellen" das Kontrollkästchen "Schlüsseldatei mit Kennwort schützen".
Geben Sie im Feld Schlüsseldateiname GACDemo ein.
Geben Sie im Feld "Kennwort eingeben" das Kennwort ein, das Sie verwenden möchten.
Geben Sie im Feld "Kennwort bestätigen" dasselbe Kennwort ein, und wählen Sie dann OK aus.
Hinweis
Es wird empfohlen, immer ein Kennwort zu verwenden, wenn Sie eine Schlüsseldatei erstellen. Eine neue Schlüsseldatei, die durch ein Kennwort geschützt ist, wird immer im PFX-Dateiformat erstellt.
Drücken Sie STRG+UMSCHALT+B, um das Projekt zu kompilieren.
Hinweis
Es ist kein zusätzlicher Code erforderlich, um eine .dll Datei im globalen Assemblycache zu installieren.
Installieren Sie die .dll Datei, die Sie in Schritt 2 erstellt haben, im globalen Assemblycache mithilfe des Tools "Globaler Assemblycache". Gehen Sie dazu wie folgt vor:
- Wählen Sie "Start", "Ausführen", "cmd" und dann "OK" aus.
- Ändern Sie das aktuelle Arbeitsverzeichnis in das Verzeichnis, in dem das .NET Framework SDK installiert ist.
- Geben Sie an einer Eingabeaufforderung den
gacutil -I "C:\DemoProjects\GACDemo\bin\Release\GACDemo.dll"Befehl ein, und drücken Sie dann die EINGABETASTE.
Überprüfen, ob die Assembly im globalen Assemblycache installiert ist
Mit dem Tool "Globaler Assemblycache" können Sie überprüfen, ob die Assembly im globalen Assemblycache installiert ist. Gehen Sie dazu wie folgt vor:
Wählen Sie "Start", "Ausführen", "cmd" und dann "OK" aus.
Ändern Sie das aktuelle Arbeitsverzeichnis in das Verzeichnis, in dem das .NET Framework SDK installiert ist.
Verwenden Sie zum Anzeigen der Installationsinformationen zur GACDemo-Assembly das Tool "Globaler Assemblycache". Geben Sie dazu den
gacutil -l GACDemoBefehl an einer Eingabeaufforderung ein, und drücken Sie dann die EINGABETASTE.Hinweis
Die Installationsinformationen zur GACDemo-Assembly werden angezeigt.