Gewusst wie: Installieren eine Assembly im globalen Assemblycache in Visual C#

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 815808 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt, wie Sie zum Generieren eines starken Namens für eine Assembly, und eine DLL-Datei im globalen Assemblycache (GAC) installieren. Mit dem GAC können Sie Assemblys viele Anwendungen freigeben. Der GAC ist mit .NET Runtime installiert automatisch. Komponenten werden in der Regel gespeichert. in C:\WINNT\Assembly.

Um eine Assembly im GAC zu installieren, müssen Sie erteilen Die Assembly einen starken Namen. Der Name ist einer kryptografischen Hash-Schlüssel oder die Signatur. Diese starken Namen gewährleistet Versionsverwaltung der richtigen Komponente. Dadurch wird verhindert Komponenten, die den gleichen Namen Konflikte mit anderen oder von von eine verbrauchende Anwendung falsch verwendet.


Anforderungen

Die folgende Liste führt die empfohlene Hardware, Software, Netzwerkinfrastruktur und Servicepacks, die benötigt werden:
  • Administratorrechte für den Computer, in dem die freigegebenen Assembly wird installiert

In diesem Artikel wird davon ausgegangen, dass Sie mit den die folgenden Themen:
  • Allgemeine Vertrautheit mit Assemblys in .NET.
  • Allgemeine Kenntnisse über die Verwendung von Tools an der Eingabeaufforderung ein.

Globaler Assemblycache

Erstellen Sie ein kleines Class Library-Projekt mithilfe von Visual Studio zum Generieren eines starken Namens, und installieren Sie die DLL-Datei des Projekts in GAC, gehen Sie folgendermaßen vor:
  1. Erstellen Sie in Visual Studio eine neue Visual C# -[NULL] Klasse Steuerelementbibliothek-Projekt, und nennen Sie das ProjektGACDemo.
  2. Sie müssen einen starken Namen verwenden. Dieses kryptografische generieren Schlüsselpaar, das SN-Tool verwenden. Dieses Tool befindet sich im Unterverzeichnis \bin wo .NET Framework Solution Developer Kit (SDK) ist installiert. Das SN-Tool ist. einfach zu verwenden. Der Befehlszeilenanweisung geschieht Folgendes
    sn-k "[DriveLetter]:\[DirectoryToPlaceKey]\[KeyName].snk"
    Hinweis In Visual Studio 2005 und höheren Versionen von Visual Studio können Sie die Projekteigenschaften IDE generiert ein Schlüsselpaar und Ihre Assembly signieren. Dann können Sie überspringen Sie Schritt 3 und Schritt 4 und auch Änderungen an der Datei AssemblyInfo.cs Code zu überspringen.

    Um die Projekteigenschaften IDE ein Schlüsselpaar generieren und Signieren Ihrer Assembly zu verwenden, gehen Sie folgendermaßen vor:
    1. Klicken Sie im Projektmappen-Explorer mit der Maustaste GACDemo, und klicken Sie dann auf Eigenschaften.
    2. Klicken Sie auf der Signieren Registerkarte, und klicken Sie dann auf die Signieren Sie die assembly das Kontrollkästchen.
    3. In der Wählen Sie einen Schlüssel mit starkem Namen auf <New...></New...>.
    4. Typ GACkey.snk die Schlüsseldatei ein, deaktivieren Sie die Schlüsseldatei mit Kennwort schützen Kontrollkästchen Sie, und klicken Sie dann auf OK.
    5. Drücken Sie STRG + UMSCHALT + B, um das Projekt zu kompilieren.
    Nachdem Sie diese Schritte ausgeführt haben, müssen Sie Schritt 5, um die Assembly im GAC installieren noch folgen.
  3. Erstellen Sie ein Verzeichnis mit dem Namen GACKey in C:\, damit Sie können leicht suchen Sie den Schlüssel und Zugriff auf den Schlüssel an der Eingabeaufforderung ein.

    Hinweis Für die meisten Benutzer befinden sich die Tools .NET in C:\Program Files\Microsoft.NET\FrameworkSDK\Bin. Vor dem Geben Sie folgenden Befehls SN, Sie möchten diese ähnlichen Pfad auf Ihrem Computer an den Lagerort in .NET kopieren Verzeichnis. Typ CD Maustaste an der Eingabeaufforderung Fügen Sie den Pfad und drücken dann die EINGABETASTE, um schnell in das Verzeichnis zu ändern Wo befindet sich das SN-Tool.

    Geben Sie Folgendes ein:
    sn-k "C:\GACKey\GACkey.snk"
  4. Ein Schlüssel generiert wird, aber es ist noch nicht verknüpft mit der die Assembly des Projekts. Um diese Zuordnung zu erstellen, doppelklicken Sie auf die Datei AssemblyInfo.cs im Projektmappen-Explorer von Visual Studio .NET. Diese Datei hat die Liste von Assemblyattributen, die standardmäßig enthalten sind, wenn ein Projekt ist in Visual Studio .NET erstellt. Ändern Sie die AssemblyKeyFileAssembly-Attribut der Code wie folgt aus:
    [Assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")]
    Kompilieren Sie das Projekt, indem Sie auf STRG + UMSCHALT + B. Sie haben nicht auf haben Sie keinen zusätzlichen Code in eine DLL-Datei im GAC zu installieren.
  5. Installieren Sie die DLL-Datei mit das Tool Gacutil oder Ziehen Sie die DLL-Datei in den entsprechenden Ordner aus. Wenn Sie die Gacutil verwenden -Tool können Sie einen Befehl, der dem folgenden ähnelt:
    Gacutil ? I "[DriveLetter]:\[PathToBinDirectoryInVSProject]\gac.dll"
    Um die Datei zu ziehen, zu öffnen. zwei Instanzen von Windows Explorer. Finden Sie den Speicherort der in einer Instanz der DLL-Dateiausgabe für Ihr Konsolenprojekt. Suchen Sie in der anderen Instanz c:\[systemroot]\Assembly. Ziehen Sie die DLL-Datei, dieAssembly Ordner.

Vollständige Codeauflistung (AssemblyInfo.cs)

using System.Reflection;
using System.Runtime.CompilerServices;

//
// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// that is associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

//
// Version information for an assembly is made up of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values, or you can default the revision and build numbers 
// by using the '*' as shown below:

[assembly: AssemblyVersion("1.0.*")]

//
// To sign your assembly you must specify a key to use. See the 
// Microsoft .NET Framework documentation for more information about assembly signing.
//
// Use the following attributes to control that key is used for signing. 
//
// Notes: 
//   (*) If no key is specified, the assembly is not signed.
//   (*) KeyName refers to a key that has been installed in the Crypto Service
//       Provider (CSP) on your computer. KeyFile refers to a file that contains
//       a key.
//   (*) If the KeyFile and the KeyName values are both specified, the 
//       following processing occurs:
//       (1) If the KeyName can be found in the CSP, that key is used.
//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
//           in the KeyFile is installed to the CSP and used.
//   (*) To create a KeyFile, you can use the sn.exe (Strong Name) utility.
//       When specifying the KeyFile, the location of the KeyFile must be
//       relative to the project output directory which is
//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
//       located in the project directory, you would specify the AssemblyKeyFile 
//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
//       documentation for more information about this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")]
[assembly: AssemblyKeyName("")]

Überprüfung

  1. Starten Sie Windows Explorer.
  2. Suchen Sie C:\SystemRoot\ Assembly.
  3. Finden Sie unter GACDemo in der Liste der installierten DLL-Datei Dateien.

Informationsquellen

Weitere Informationen finden Sie auf der folgenden Microsoft-Websites:
Installieren einer Assembly im globalen Assemblycache
http://msdn2.Microsoft.com/en-us/library/dkkx7f79 (werden) .aspx
Globaler Assemblycache
http://msdn2.Microsoft.com/en-us/library/yf1d93sz (werden) .aspx
Global Assembly Cache-Tool
http://msdn2.Microsoft.com/en-us/library/ex0ss12c (werden) .aspx

Eigenschaften

Artikel-ID: 815808 - Geändert am: Samstag, 27. Juli 2013 - Version: 6.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Keywords: 
kbcodesign kbcommandline kbnamespace kbhowtomaster kbmt KB815808 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 815808
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com