Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zestawy są podstawowymi jednostkami wdrażania, kontroli wersji, ponownego użycia, określania zakresu aktywacji i uprawnień zabezpieczeń dla aplikacji opartych na platformie .NET. Zestaw to kolekcja typów i zasobów, które są tworzone do współpracy i tworzą jednostkę logiczną funkcji. Zestawy mają postać plików wykonywalnych (.exe) lub biblioteki łączy dynamicznych (.dll) i są blokami konstrukcyjnymi aplikacji .NET. Dostarczają środowisku uruchomieniowemu języka wspólnego informacji potrzebnych do rozpoznawania implementacji typów.
W programach .NET i .NET Framework można utworzyć zestaw z co najmniej jednego pliku kodu źródłowego. W programie .NET Framework zestawy mogą zawierać co najmniej jeden moduł. W ten sposób można zaplanować większe projekty, dzięki czemu kilku deweloperów może pracować nad oddzielnymi plikami lub modułami kodu źródłowego, które są łączone w celu utworzenia pojedynczego zestawu. Aby uzyskać więcej informacji na temat modułów, zobacz How to: Build a multifile assembly (Instrukcje: tworzenie zestawu wieloplikowego).
Zestawy mają następujące właściwości:
Zestawy są implementowane jako pliki.exe lub .dll .
W przypadku bibliotek przeznaczonych dla platformy .NET Framework można udostępniać zestawy między aplikacjami, umieszczając je w globalnej pamięci podręcznej zestawów (GAC). Musisz nadać zestawom silną nazwę, zanim będzie można je uwzględnić w GAC. Aby uzyskać więcej informacji, zobacz zestawy o silnych nazwach.
Zestawy są ładowane do pamięci tylko wtedy, gdy są potrzebne. Jeśli nie są używane, nie są ładowane. W związku z tym zestawy mogą być efektywnym sposobem zarządzania zasobami w większych projektach.
Możesz uzyskać informacje o zestawieniu programistycznie, używając refleksji. Aby uzyskać więcej informacji, zobacz Odbicie (C#) lub Odbicie (Visual Basic).
Zestaw można załadować tylko w celu jego inspekcji, korzystając z klasy MetadataLoadContext na platformach .NET i .NET Framework. MetadataLoadContext zastępuje metody Assembly.ReflectionOnlyLoad.
Zestawy w środowisku uruchomieniowym języka wspólnego
Zestawy dostarczają środowisku uruchomieniowemu języka wspólnego informacji potrzebnych do rozpoznania implementacji typów. W środowisku uruchomieniowym typ nie istnieje poza kontekstem zestawu.
Zgromadzenie definiuje następujące informacje:
Kod wykonywany przez środowisko uruchomieniowe języka wspólnego. Każdy zestaw może mieć tylko jeden punkt wejścia:
DllMain, lubWinMainMain.Granica zabezpieczeń. Asembl jest jednostką, w której żąda się i uzyskuje uprawnienia. Aby uzyskać więcej informacji na temat granic zabezpieczeń w zestawach, zobacz Zagadnienia dotyczące zabezpieczeń zestawów.
Granica typu. Tożsamość każdego typu zawiera nazwę zestawu, w którym się znajduje. Typ o nazwie
MyTypeładowany w zakresie jednego zestawu nie jest taki sam jak typ o nazwieMyTypezaładowany w zakresie innego zestawu.Granica zakresu odwołania: manifest zestawu zawiera metadane używane do rozwiązywania typów i realizacji żądań zasobów. Manifest precyzuje typy i zasoby do udostępnienia poza zestawem oraz wylicza inne zestawy, od których zależy. Kod wspólnego języka pośredniego (CIL) w przenośnym pliku wykonywalnym (PE) nie zostanie wykonany, chyba że ma skojarzony manifest zestawu.
Granica wersji. Moduł jest najmniejszą wersjonowalną jednostką w środowisku uruchomieniowym języka wspólnego. Wszystkie typy i zasoby w tym samym zestawie są wersjonowane jako jednostka. Manifest zestawu opisuje zależności wersji określone dla wszystkich zestawów zależnych. Aby uzyskać więcej informacji na temat wersjonowania, zapoznaj się z Wersjonowaniem zestawów.
Jednostka wdrażania: po uruchomieniu aplikacji muszą znajdować się tylko zestawy, które początkowo wywołuje aplikacja. Inne zestawy, takie jak zestawy zawierające zasoby lokalizacji lub klasy narzędzi, można pobrać na żądanie. Ten proces sprawia, że aplikacje są proste i lekkie po pobraniu. Aby uzyskać więcej informacji na temat wdrażania zestawów, zobacz Wdrażanie aplikacji.
Jednostka wykonywania równoległego: aby uzyskać więcej informacji na temat uruchamiania wielu wersji zestawu, zobacz Zestawy i wykonywanie równoległe.
Utwórz zestaw
Zestawy mogą być statyczne lub dynamiczne. Zestawy statyczne są przechowywane na dysku w przenośnych plikach wykonywalnych (PE). Zestawy statyczne mogą obejmować interfejsy, klasy i zasoby, takie jak mapy bitowe, pliki JPEG i inne pliki zasobów. Można również tworzyć zestawy dynamiczne, które są uruchamiane bezpośrednio z pamięci i nie są zapisywane na dysku przed wykonaniem. Zestawy dynamiczne można zapisywać na dysku po ich wykonaniu.
Istnieje kilka sposobów tworzenia zespołów. Możesz użyć narzędzi programistycznych, takich jak Visual Studio, które mogą tworzyć pliki.dll lub .exe . Za pomocą narzędzi w zestawie SDK systemu Windows można tworzyć zestawy z modułami z innych środowisk deweloperskich. Możesz również użyć interfejsów API środowiska uruchomieniowego języka wspólnego, takich jak System.Reflection.Emit, do tworzenia zestawów dynamicznych.
Kompiluj zestawy, kompilując je w programie Visual Studio, kompilując je za pomocą narzędzi interfejsu wiersza polecenia platformy .NET Core lub kompilując zestawy .NET Framework za pomocą kompilatora wiersza polecenia. Aby uzyskać więcej informacji na temat kompilowania zestawów przy użyciu interfejsu wiersza polecenia platformy .NET, zobacz Omówienie interfejsu wiersza polecenia platformy .NET.
Uwaga
Aby skompilować zestaw w programie Visual Studio, w menu Kompilacja wybierz pozycję Kompiluj.
Manifest modułu
Każdy zestaw ma plik manifestu zestawu . Podobnie jak w spisie treści, manifest zestawu zawiera:
Tożsamość zestawu (jego nazwa i wersja).
Tabela plików opisująca wszystkie inne pliki składające się na zestawienie, takie jak inne zestawy, które utworzyłeś, na których opiera się plik .exe lub .dll, oraz pliki map bitowych lub pliki Readme.
Lista odwołań do zestawu, która jest listą wszystkich zależności zewnętrznych, takich jak .dlls lub innych plików. Odwołania do zestawów zawierają odwołania zarówno do obiektów globalnych, jak i prywatnych. Obiekty globalne są dostępne dla wszystkich innych aplikacji. W programie .NET Core obiekty globalne są powiązane z określonym środowiskiem uruchomieniowym platformy .NET Core. W programie .NET Framework obiekty globalne znajdują się w globalnej pamięci podręcznej zestawów (GAC). System.IO.dll jest przykładem zestawu w GAC. Obiekty prywatne muszą znajdować się na poziomie katalogu lub poniżej katalogu, w którym zainstalowano aplikację.
Zestawy zawierają informacje o treści, o wersji i zależnościach. Dlatego aplikacje korzystające z nich nie muszą polegać na źródłach zewnętrznych, takich jak rejestr w systemach Windows, aby działały prawidłowo. Zestawy zmniejszają konflikty.dll oraz czynią aplikacje bardziej niezawodne i łatwiejsze do wdrożenia. W wielu przypadkach można zainstalować aplikację opartą na platformie .NET po prostu kopiując jej pliki na komputer docelowy. Aby uzyskać więcej informacji, zobacz Manifest zestawu.
Dodaj odwołanie do zestawu
Aby użyć zestawu w aplikacji, należy dodać do niego odwołanie. Po odwoływaniu się do zestawu wszystkie dostępne typy, właściwości, metody i inne elementy członkowskie jego przestrzeni nazw są dostępne dla aplikacji tak, jakby ich kod był częścią pliku źródłowego.
Uwaga
Większość zestawów z .NET Class Library odwołuje się automatycznie. Jeśli zestaw systemowy nie jest automatycznie przywołyny, dodaj odwołanie w jeden z następujących sposobów:
- W przypadku platform .NET i .NET Core dodaj odwołanie do pakietu NuGet zawierającego zestaw. Użyj Menedżera pakietów NuGet w programie Visual Studio lub dodaj element dla zestawu do projektu
<PackageReference>lub .vbproj. - W przypadku programu .NET Framework dodaj odwołanie do zestawu przy użyciu okna dialogowego Dodawanie odwołania w programie Visual Studio lub
-referenceopcji wiersza polecenia dla kompilatorów języka C# lub Visual Basic .
W języku C#można użyć dwóch wersji tego samego zestawu w jednej aplikacji. Aby uzyskać więcej informacji, zobacz extern alias.
Powiązana zawartość
| Nazwa | Opis |
|---|---|
| Zawartość zestawu | Elementy tworzące zestaw. |
| Manifest zestawu | Dane w manifeście zestawu oraz metody ich przechowywania w zestawach. |
| Globalna pamięć podręczna | Jak GAC przechowuje i używa zestawów. |
| Zestawy o silnych nazwach | Cechy zestawów o silnych nazwach. |
| Zagadnienia dotyczące zabezpieczeń zgromadzeń | Jak działa bezpieczeństwo w połączeniu z zestawami. |
| Wersjonowanie zestawu | Omówienie zasad przechowywania wersji programu .NET Framework. |
| Umieszczanie zestawu | Gdzie zlokalizować zespoły. |
| Zestawy i współbieżne wykonywanie | Używaj jednocześnie wielu wersji środowiska uruchomieniowego lub zestawu. |
| Emituj metody dynamiczne i moduły | Jak tworzyć zestawy dynamiczne. |
| Jak środowisko uruchomieniowe lokalizuje zestawy | Jak program .NET Framework rozpoznaje odwołania do zestawów w czasie wykonywania. |