Czy mógłbyś wyjaśnić, co to jest zestaw w C # lub .NET?
- Gdzie to się zaczyna i gdzie się kończy?
- Jakie ważne informacje powinienem wiedzieć o zespołach?
Czy mógłbyś wyjaśnić, co to jest zestaw w C # lub .NET?
Odpowiedzi:
Zestaw to skompilowane dane wyjściowe kodu, zwykle biblioteka DLL, ale plik EXE jest również zestawem. Jest to najmniejsza jednostka wdrożenia dla dowolnego projektu .NET.
Zestaw zazwyczaj zawiera kod .NET w MSIL (język pośredni firmy Microsoft), który zostanie skompilowany do kodu natywnego („JITted” - kompilowany przez kompilator Just-In-Time) przy pierwszym uruchomieniu na danym komputerze. Ten skompilowany kod będzie również przechowywany w zestawie i ponownie używany w kolejnych wywołaniach.
Zestaw może również zawierać zasoby, takie jak ikony, mapy bitowe, tabele ciągów i tak dalej. Ponadto zestaw zawiera również metadane w manifeście zestawu - informacje, takie jak numer wersji, silna nazwa, kultura, zestawy przywoływane i tak dalej.
W 99% przypadków jeden zespół równa się fizycznemu plikowi na dysku - przypadek zespołu złożonego z wielu plików (jeden zespół, rozłożony na więcej niż jeden plik) wydaje się być raczej dziwnym przypadkiem krawędziowym, nigdy nie spotkałem się do tej pory w moim ponad 5-letnim rozwoju .NET.
W zestawie wieloplikowym nadal byłby tylko jeden manifest zestawu w bibliotece DLL lub EXE, a kod MSIL w wielu plikach modułu sieciowego.
W środowisku Microsoft .NET zestaw jest częściowo skompilowaną biblioteką kodu używaną do wdrażania, przechowywania wersji i zabezpieczeń.
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
Zestaw to plik, który jest automatycznie generowany przez kompilator po pomyślnej kompilacji każdej aplikacji .NET. Może to być biblioteka dołączana dynamicznie lub plik wykonywalny. Jest generowany tylko raz dla aplikacji i przy każdej kolejnej kompilacji zestaw jest aktualizowany.
Oto kolejne wyjaśnienie tworzenia zestawów .NET, mini-cytat:
Platforma .NET składa się z koncepcji modułów, zestawów, które przechowują metadane i manifestują informacje. Zespół może zawierać wiele modułów. Visual C # zawsze tworzy tylko jeden moduł, który jest przekształcany w zestaw przez kompilator C # (csc.exe), ale zestaw może łączyć ze sobą wiele modułów .NET za pomocą narzędzia wiersza polecenia konsolidatora zestawu (al.exe). Na przykład każdy plik .cs z kodem źródłowym można skompilować do modułu i połączyć ze sobą, aby utworzyć zestaw - zestaw to po prostu zbiór modułów i zasobów. Jednak jeden z tych modułów; musi zawierać manifest metadanych (patrz poniżej), aby zestaw był zrozumiały dla środowiska CLR.
....
Po utworzeniu nowego pliku .exe lub .dll w VS.NET zobaczysz swój plik w folderze bin. Otwarcie go w notatniku wyda bełkot, a nawet w edytorze szesnastkowym bez znajomości struktury pliku, potrzebujesz narzędzia takiego jak ildasm.exe lub eksplorator CFF, aby nadać mu znaczenie. Struktura zestawu jest następująca:Nagłówek PE Nagłówek
CLR
Metadane
CLR
Kod CLR IL
Dane rodzime
Odpowiedź jest potrzebna do natychmiastowego uchwycenia.
Mówiąc prościej, jest to skompilowany projekt zawierający Twoje klasy i dodatkowe pliki, jeśli takie istnieją. Oznacza to, że każdy projekt w rozwiązaniu jest montażem .
Lub bardziej technicznie,
Montaż jest, gdy typ jest przechowywany w flesystem. Zestawy są mechanizmem do wdrażania kodu. Na przykład
System.Data.dll
zestaw zawiera typy do zarządzania danymi. Aby używać typów w innych zestawach, należy się do nich odwoływać. - Źródło
Skąd to wiemy? Jeśli spojrzysz na właściwości projektu w ramach rozwiązania , zobaczysz następujące obrazy.
Kiedy kompilujesz projekt, okazuje się, że jest to DLL lub EXE .
Gdy kod źródłowy jest kompilowany przez kompilator języka, generuje zestaw zarządzany i MSIL (język pośredni MisroSoft). Ten zestaw zawiera plik .dll lub .exe . Assebmly może mieć dwa typy Private Assembly i Shared Assembly , udostępnione Assembly jest przechowywane w GAC (Global Assembly Cache), dzięki czemu każda aplikacja może się do niego odwoływać, podczas gdy zestaw prywatny jest przechowywany w folderze aplikacji, z którego może korzystać tylko jedna aplikacja.
Zestaw to biblioteka DLL lub EXE, która zostanie utworzona podczas publikowania lub kompilowania aplikacji.
Assembly to zbiór jednostek logicznych. Jednostki logiczne odnoszą się do typów i zasobów, które są wymagane do zbudowania aplikacji i wdrożenia ich przy użyciu platformy .Net. Zasadniczo Assembly to zbiór plików Exe i DLL. Jest przenośny i wykonywalny.
Po napisaniu kodu źródłowego programu (projektu) tworzony jest plik, który może być DLL lub EXE w zależności od projektu. Robi tylko raz dla jednego projektu. Ma dwa typy 1: - pojedynczy 2: - wspólny lub wieloprogramowy pojedynczy zespół używany tylko w jednym programie, podczas gdy współdzielony może być używany do wielu programów