Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

Jak zainstalować zestaw w buforze Global Assembly Cache w programie Visual C#

Wersja tego artykułu dla programu Microsoft Visual Basic .NET: 315682.

W TYM ZADANIU

Streszczenie
W tym artykule jest opisany sposób generowania silnej nazwy zestawu oraz instalacji pliku DLL w buforze Global Assembly Cache (GAC). Za pomocą buforu GAC zestawy mogą być współużytkowane przez wiele aplikacji. Bufor GAC jest instalowany automatycznie wraz z plikami wykonywalnymi .NET. Składniki są zazwyczaj przechowywane w katalogu C:\WINNT\Assembly.

Aby zainstalować zestaw w buforze GAC, trzeba nadać zestawowi silną nazwę. Nazwa to kryptograficzny klucz mieszający lub podpis. Silna nazwa gwarantuje poprawne przypisywanie wersji składników. Pozwala to zapobiec występowaniu konfliktów między składnikami o identycznych nazwach lub niewłaściwemu użyciu składnika przez odbierającą aplikację.

Powrót do początku

Wymagania

Na poniższej liście wymieniono zalecany sprzęt, oprogramowanie, infrastrukturę sieci i wymagane dodatki Service Pack:
  • Prawa administracyjne do komputera, na którym jest zainstalowany współużytkowany zestaw

W tym artykule założono, że użytkownik zapoznał się z następującymi zagadnieniami:
  • Ogólna znajomość zestawów w środowisku .NET lub programie Visual Studio 2005
  • Ogólna znajomość posługiwania się narzędziami wiersza polecenia
Powrót do początku

Bufor Global Assembly Cache

Aby utworzyć mały projekt Class Library za pomocą programu Visual Studio .NET lub Visual Studio 2005, wygenerować silną nazwę i zainstalować plik dll projektu w buforze GAC, wykonaj następujące kroki:
  1. W programie Visual Studio .NET lub Visual Studio 2005 utwórz nowy projekt Visual C# Class Library i nadaj mu nazwę GACDemo.
  2. Musisz użyć silnej nazwy. Do wygenerowania kryptograficznej pary kluczy użyj narzędzia SN. Znajduje się ono w podkatalogu \bin folderu, w którym jest zainstalowany zestaw .NET Framework Solution Developer Kit (SDK). Używanie narzędzia SN jest proste. Instrukcja wiersza polecenia ma następującą postać:
    sn -k "[LiteraDysku]:\[katalog_klucza]\[nazwa_klucza].snk"
  3. Utwórz katalog o nazwie GACKey na dysku C:\, aby można było łatwo zlokalizować klucz i uzyskać dostęp do klucza z wiersza polecenia.

    Uwaga: W przypadku większości użytkowników narzędzia .NET znajdują się w katalogu C:\Program Files\Microsoft.NET\FrameworkSDK\Bin. Przed wpisaniem poniższego polecenia SN można skopiować podobną ścieżkę do katalogu bin narzędzi .NET na używanym komputerze. W wierszu polecenia wpisz cd i kliknij prawym przyciskiem myszy, aby wkleić ścieżkę, a następnie naciśnij klawisz ENTER, aby szybko przejść do katalogu, w którym znajduje się narzędzie SN.

    Wpisz następujący tekst:
    sn -k "C:\GACKey\GACkey.snk"
  4. Wygenerowany klucz nie będzie jeszcze skojarzony z zestawem projektu. Aby utworzyć skojarzenie, w oknie Solution Explorer programu Visual Studio .NET kliknij dwukrotnie plik AssemblyInfo.cs. Ten plik zawiera listę atrybutów zestawu dołączanych domyślnie w czasie tworzenia projektu w programie Visual Studio .NET. Zmodyfikuj atrybut AssemblyKeyFile zestawu w następujący sposób:
    [assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")]
    Skompiluj projekt przez naciśnięcie klawiszy CTRL+SHIFT+B. Do zainstalowania pliku dll w buforze GAC nie jest potrzebny dodatkowy kod.
  5. Plik dll można zainstalować za pomocą narzędzia Gacutil lub przez przeciągnięcie pliku dll do odpowiedniego katalogu. W przypadku korzystania z narzędzia Gacutil można zastosować następujące polecenie:
    gacutil -I "[LiteraDysku]:\[ScieżkaDoKataloguBinProjektuVS]\gac.dll"
    Jeśli chcesz przeciągnąć plik, użyj Eksploratora Windows. Otwórz dwa wystąpienia Eksploratora Windows. W jednym znajdź lokalizację wynikowego pliku dll projektu konsoli. W drugim wystąpieniu znajdź lokalizację c:\[SystemRoot]\Assembly.

    Przeciągnij plik dll do folderu Assembly.
Powrót do początku

Pełny kod (AssemblyInfo.cs)

using System.Reflection;using System.Runtime.CompilerServices;//// Ogólne informacje dotyczące zestawu są kontrolowane za pośrednictwem następującego// zestawu atrybutów. Zmień wartości tych atrybutów, aby zmodyfikować informacje// odnoszące się do zestawu.//[assembly: AssemblyTitle("")][assembly: AssemblyDescription("")][assembly: AssemblyConfiguration("")][assembly: AssemblyCompany("")][assembly: AssemblyProduct("")][assembly: AssemblyCopyright("")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")]//// Informacje o wersji zestawu są zbierane na podstawie następujących wartości:////      Główny numer wersji//      Podrzędny numer wersji//      Numer kompilacji//      Poprawka//// Można określić wszystkie wartości lub pozostawić domyślny numer kompilacji i poprawki // za pomocą znaku '*', tak jak pokazano poniżej:[assembly: AssemblyVersion("1.0.*")]//// Aby podpisać zestaw, trzeba określić klucz do użycia. Zapoznaj się z dokumentacją// systemu Microsoft .NET Framework, aby uzyskać więcej informacji na temat podpisywania zestawów.//// Użyj następujących atrybutów, aby kontrolować klucz użyty do podpisania. //// Uwagi: //   (*) Jeśli klucz nie będzie określony, zestaw nie zostanie podpisany.//   (*) Wpis KeyName odnosi się do klucza zainstalowanego przez dostawcę usług//       kryptograficznych (CSP) na używanym komputerze. Wpis KeyFile określa plik//       zawierający klucz.//   (*) Jeśli są określone obie wartości KeyFile i KeyName, dochodzi do//       następującego procesu://       (1) Jeśli wartość KeyName można znaleźć w CSP, będzie użyty ten klucz.//       (2) Jeśli wartość KeyName nie istnieje, a istnieje wartość KeyFile, klucz z pliku//           KeyFile zostanie zainstalowany w CSP i użyty.//   (*) Do utworzenia wartości KeyFile można użyć narzędzia sn.exe (Strong Name).//       Przy określaniu wartości KeyFile lokalizacja KeyFile musi być względna//       w stosunku do katalogu wyjściowego projektu, którym jest katalog//       %Katalog Projektu%\obj\<configuration>. Na przykład jeśli wartość KeyFile znajduje się//       w katalogu projektu, trzeba określić atrybut AssemblyKeyFile//       jako [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] //   (*) Delay Signing to zaawansowana opcja – zapoznaj się z dokumentacją systemu Microsoft .NET Framework, //       aby uzyskać więcej informacji na ten temat.//[assembly: AssemblyDelaySign(false)][assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")][assembly: AssemblyKeyName("")]
Powrót do początku

Weryfikacja

  1. Uruchom Eksploratora Windows.
  2. Zlokalizuj zestaw C:\SystemRoot\.
  3. Na liście zainstalowanych plików dll będzie widoczny plik GACDemo.
Powrót do początku
Materiały referencyjne
Aby uzyskać więcej informacji, odwiedź następujące witryny firmy Microsoft w sieci Web:
Instalowanie zestawu w buforze Global Assembly Cache
http://msdn2.microsoft.com/en-us/library/dkkx7f79(vs.71).aspx
Powrót do początku
Właściwości

Identyfikator artykułu: 815808 — ostatni przegląd: 05/13/2007 05:06:28 — zmiana: 3.8

  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • kbcodesign kbcommandline kbnamespace kbhowtomaster KB815808
Opinia