Udostępnij przez


Format pliku zestawu .NET

Platforma .NET definiuje format pliku binarnego, zestaw, który jest używany do pełnego opisywania i zawierania programów .NET. Zestawy są używane dla samych programów, a także wszelkich bibliotek zależnych. Program .NET można wykonać jako jeden lub więcej zestawów bez innych wymaganych artefaktów poza odpowiednią implementacją platformy .NET. Zależności natywne, w tym interfejsy API systemu operacyjnego, są oddzielnym problemem i nie są zawarte w formacie zestawu platformy .NET, chociaż czasami są one opisane w tym formacie (na przykład WinRT).

Każdy składnik CLI zawiera metadane dotyczące deklaracji, implementacji i odwołań specyficznych dla tego składnika. W związku z tym metadane specyficzne dla składników są określane jako metadane składników, a wynikowy składnik jest określany jako samoopisujący — z ECMA 335 I.9.1, Components and assemblies.

Format jest w pełni określony i ustandaryzowany jako ECMA 335. Wszystkie kompilatory i środowiska uruchomieniowe platformy .NET używają tego formatu. Obecność udokumentowanego i rzadko aktualizowanego formatu binarnego była główną korzyścią (prawdopodobnie wymaganiem) dla współdziałania. Format został ostatnio zaktualizowany w sposób merytoryczny w 2005 r. (.NET Framework 2.0), aby uwzględnić architekturę typów ogólnych i procesorów.

Format jest niezależny od procesora CPU i systemu operacyjnego. Jest on używany jako część implementacji platformy .NET, które są przeznaczone dla wielu układów i procesorów CPU. Chociaż sam format ma dziedzictwo systemu Windows, można go zaimplementować w dowolnym systemie operacyjnym. Prawdopodobnie jego najważniejszym wyborem dla interoperacyjności systemu operacyjnego jest to, że większość wartości jest przechowywana w formacie little-endian. Nie ma określonej koligacji do rozmiaru wskaźnika komputera (na przykład 32-bitowego, 64-bitowego).

Format zestawu .NET jest również bardzo szczegółowy, dotyczący struktury danego programu lub biblioteki. Opisuje wewnętrzne składniki zestawu, w szczególności odwołania do zestawów oraz zdefiniowane typy i ich wewnętrzną strukturę. Narzędzia lub interfejsy API mogą odczytywać i przetwarzać te informacje w celu wyświetlania lub podejmowania decyzji programowych.

Forma

Format binarny platformy .NET jest oparty na formacie pliku Windows PE . W rzeczywistości biblioteki klas platformy .NET są zgodne z PEs systemu Windows i pojawiają się na pierwszy rzut oka jako biblioteki linków dynamicznych systemu Windows (DLL) lub pliki wykonywalne aplikacji (EXEs). Jest to bardzo przydatna cecha w systemie Windows, gdzie mogą udawać natywne pliki binarne wykonywalne i być traktowane podobnie, jak na przykład ładowanie systemu operacyjnego, narzędzia PE.

Nagłówki zestawów

Nagłówki zestawów z ECMA 335 II.25.1, Struktura formatu pliku środowiska uruchomieniowego.

Przetwarzanie zestawów

Istnieje możliwość pisania narzędzi lub interfejsów API do przetwarzania zestawów. Informacje o zestawie umożliwiają podejmowanie decyzji programistycznych w czasie wykonywania; przebudowę zestawów; zapewnianie funkcji IntelliSense dla interfejsu API w edytorze; i generowanie dokumentacji. System.Reflection, System.Reflection.MetadataLoadContexti Mono.Cecil to dobre przykłady narzędzi, które są często używane w tym celu.