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 globalen Assemblycache .NET Framework zu installieren, können Sie das tool für den globalen Assemblycache des .NET Framework SDK verwenden. Sie können auch das Tool Global Assembly Cache verwenden, um zu überprüfen, ob die Assembly im globalen Assemblycache installiert ist. Um diese Aufgabe auszuführen, verfügen Sie möglicherweise über Administratorrechte für den 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 gemeinsam genutzt 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. Sofern die Freigabe einer Assembly nicht explizit erforderlich ist, wird empfohlen, Assemblyabhängigkeiten privat zu halten und die Assembly im Anwendungsverzeichnis zu suchen. Darüber hinaus müssen Sie keine Assembly im globalen Assemblycache installieren, um die Assembly für Microsoft Component Object Model (COM)-Interop 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, selbstbeschreibenden Baustein einer .NET Framework Common Language Runtime-Anwendung.

Eine Assembly enthält mindestens eine Codekomponente, die von der Common Language Runtime ausgeführt wird. 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 durchsetzen lassen. Eine Assembly unterstützt die parallele Ausführung. WHich ermöglicht die gleichzeitige Ausführung mehrerer Versionen.

Signieren mit starkem Namen

Eine Assembly muss über einen starken Namen verfügen, um im globalen Assemblycache installiert zu werden. Ein starker Name ist eine global eindeutige Identität, die nicht von einer anderen Person gespooft werden kann. Durch die Verwendung eines starken Namens verhindern Sie, dass Komponenten mit demselben Namen in Konflikt stehen oder von einer aufrufenden Anwendung falsch verwendet werden. Die Assemblysignatur ordnet einer Assembly einen starken Namen zu. Assemblysignatur 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 Projekt-Designer 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:

  • Pfx-Dateien (Personal Information Exchange)
  • Dateien mit starkem Namenschlü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 Kenntnisse 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 gemeinsam genutzt 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:

  1. Erstellen Sie ein neues Visual C#-Klassenbibliotheksprojekt mit dem Namen GACDemo. Gehen Sie dazu wie folgt vor:

    1. Starten Sie Visual Studio.
    2. Wählen Sie im Menü Datei die Option Neues Projekt aus.
    3. Wählen Sie in der Liste Vorlagendie Option Klassenbibliothek aus.
    4. Geben Sie im Feld Nameden Namen GACDemo ein, und wählen Sie dann OK aus.
    5. Drücken Sie STRG+UMSCHALT+S, um das Projekt zu speichern.
    6. Geben Sie im Feld Speicherort ein C:\DemoProjects.
    7. Deaktivieren Sie das Kontrollkästchen Verzeichnis für Projektmappe erstellen , und wählen Sie dann Speichern aus.
  2. Generieren Sie einen starken Namen, und ordnen Sie dann die Schlüsseldatei mit starkem Namen der Assembly zu. Gehen Sie dazu wie folgt vor:

    1. Wählen Sie im Menü Projekt die Option GACDemo-Eigenschaften aus.

    2. Aktivieren Sie auf der Registerkarte Signieren das Kontrollkästchen Assembly signieren.

    3. Wählen Sie unter Schlüsseldatei mit starkem Namen auswählen die Option Neu> aus<.

    4. Aktivieren Sie im Dialogfeld Schlüssel mit starkem Namen erstellen das Kontrollkästchen Meine Schlüsseldatei mit einem Kennwort schützen .

    5. Geben Sie im Feld Schlüsseldateinameden Namen GACDemo ein.

    6. Geben Sie im Feld Kennwort eingeben das Kennwort ein, das Sie verwenden möchten.

    7. Geben Sie im Feld Kennwort bestätigen dasselbe Kennwort ein, und wählen Sie dann OK aus.

      Hinweis

      Es wird empfohlen, beim Erstellen einer Schlüsseldatei immer ein Kennwort zu verwenden. Eine neue Schlüsseldatei, die durch ein Kennwort geschützt ist, wird immer im PFX-Dateiformat erstellt.

    8. 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.

  3. Installieren Sie die .dll-Datei, die Sie in Schritt 2 erstellt haben, im globalen Assemblycache, indem Sie das Tool "Globaler Assemblycache" verwenden. Gehen Sie dazu wie folgt vor:

    1. Wählen Sie Start aus, wählen Sie Ausführen aus, geben Sie cmd ein, und wählen Sie dann OK aus.
    2. Ändern Sie das aktuelle Arbeitsverzeichnis in das Verzeichnis, in dem das .NET Framework SDK installiert ist.
    3. 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 Global Assembly Cache-Tool können Sie überprüfen, ob die Assembly im globalen Assemblycache installiert ist. Gehen Sie dazu wie folgt vor:

  1. Wählen Sie Start aus, wählen Sie Ausführen aus, geben Sie cmd ein, und wählen Sie dann OK aus.

  2. Ändern Sie das aktuelle Arbeitsverzeichnis in das Verzeichnis, in dem das .NET Framework SDK installiert ist.

  3. Verwenden Sie das Tool Global Assembly Cache, um die Installationsinformationen zur GACDemo-Assembly anzuzeigen. Geben Sie dazu den gacutil -l GACDemo Befehl an einer Eingabeaufforderung ein, und drücken Sie dann die EINGABETASTE.

    Hinweis

    Die Installationsinformationen zur GACDemo-Assembly werden angezeigt.

References