C # szerelvény (szerelvények)

A közgyűlés egyetlen fájl hordozható végrehajtható (PE) .exe kiterjesztésű alkalmazása esetén abban az esetben, vagy .dll újrahasználható könyvtárban.

tartalom összeállítás

  • A szerelvény nyilvánvaló - információkat tartalmaz a .NET környezet: a szerelvény nevét, verzióját, a szükséges engedélyekkel, linkek más szerelvények.
  • Az alkalmazás nyilvánvaló - információkat tartalmaz az operációs rendszert: szerelési módszerrel a telepítés, hogy szükség van a rendszergazdai jogosultságokkal.
  • Típusai összeállított - összeállított IL-kód és a metaadatok típusai, amelyek szerepelnek az összeállításban.
  • Források - olyan adat, amely a gyülekezési képek, lokalizálható szövegeket.

Ez csak akkor kötelező szerelvény nyilvánvaló (bár általában bele van fordítva típusok. Futtatható fájlok és könyvtárak szerkezete azonos, a fő különbség az, hogy a végrehajtható fájlokat tartalmazó belépési pont.

összeszerelés nyilvánvaló

A szerelvény nyilvánvaló kell tartalmaznia:

  • egyszerű szerelés neve
  • verziószám (AssemblyVersion)
  • A nyilvános kulcs és az aláírt hash a szerelvény, ha van egy erős neve
  • A láncolt lista szerelvényen (beleértve azok változatai és a nyilvános kulcs)
  • lista modul szerelvény
  • fajták listája meghatározott összeállítás és a modulok az egyes típusokat tartalmazó
  • egy opcionális készlet szükséges jogosultságokkal vagy elutasítja szerelvény (SecurityPermission)
  • célkultúra ha ez egy alárendelt szerelvény (AssemblyCulture)

Továbbá, a szerelvény nyilvánvaló tartalmazhat:

Néhány ilyen adatok származnak átadott paramétereket, a fordító. A többi venni a szerelvény attribútumokat (zárójelben):

A tartalom a szerelvény valójában csomagolva egy vagy több tartályban, az úgynevezett modulokat. A modul megfelel egy összeállítás fájlt, és lehetővé teszi, hogy hozzon létre egy szerelvény, amely több fájl. A többfájlos összeszerelése a főegység mindig tartalmaz nyilvánvaló, és a kiegészítő modulok tartalmazhatnak kód és / vagy erőforrással. A kiáltvány leírja a relatív helyzete a modulokból.

osztály Assembly

System.Reflection.Assembly osztály lehetővé teszi a hozzáférést a metaadatok gyülekezési futásidőben. Get összeszerelő üzemmel többféleképpen

  • segítségével az ingatlanok osztály Assembly típusa:
  • statikus módszerek osztály Közgyűlés:
    • GetExecutingAssembly - visszaadja a szerelvény tartalmaz végrehajtható funkció (módszer)
    • GetCallingAssembly - visszaadja az összeállítás, amely tartalmazza a funkciót, amely az úgynevezett jelenlegi funkciója
    • GetEntryAssembly - visszaadja az összeállítás, amely tartalmazza a belépési pont a kérelem
  • Szerelés fogadó objektumot annak módszereit és tulajdonságokat lehet szerelni a metaadatok, és elvégzi a reflexió típusokat.

    osztály tagjai Közgyűlés:

    • FullName. GetName - visszaadja a teljes megadott név vagy AssemblyName objektum
    • Codebase. Hely - a helyét a szerelvény fájl
    • Terhelést. LoadFrom. LoadFile - kézzel betölti az egész szerelvényt a jelenlegi alkalmazási területen
    • GlobalAssemblyCache - jelzi, hogy a szerelvény a GAC
    • GetSatelliteAssembly - alá van rendelve a szerelvény egy adott kultúra
    • GetType. GetTypes - visszaadja a típusát, vagy az összes típusú meghatározott összeállítás
    • BelépésiPont - eljárás visszatér egy belépési pont az alkalmazás, mint egy tárgy MethodInfo
    • GetModules. ManifestModule - visszaadja az összes modult vagy modul szerelvény vezetője
    • GetCustomAttributes - visszaadja az attribútumok a szerelvény

    nevei szerelvények

    építeni azonosítója négy részből áll:

    • egyszerű neve
    • változata ( «0.0.0.0» ha nincs megadva)
    • Kultúra ( «semleges» a nem alárendelt egységek)
    • nyilvános kulcs token ( «null» ha az egység nem egy erős név)

    Az egyszerű név kerül sor a fájl nevét, amelyben a szerelvény eredetileg össze. Kibontható dobni, például egy egyszerű nevet az összeszerelés külleme System.Xml.dll System.Xml. Átnevezése fájl nem változik az egyszerű neve a szerelvény.

    A verziószám származik AssemblyVersion attribútum és egy string, 4 részre osztható:

    void SetPublicKeyToken (byte [] publicKeyToken);

    Verzió tulajdonság visszaadja egy objektum típusú változata. amely maga tulajdonságai Major. Minor. Építsd és felülvizsgálat. Mivel a változat az összeszerelés adja attribútumok AssemblyVersion. Ez is része az összeállítás neve, változó, hogy bizonyos esetekben nem kívánatos. Ezen kívül AssemblyVersion attribútum van két attribútuma a megadott változat, de fárasztó egy tisztán tájékoztató jellegű, és nem lehet figyelembe venni a CLR:

    • AssemblyInformationalVersion - sajtóközlemény - meghatározza azt a verziót, hogy megjelenik a végfelhasználónak. Ez látható a párbeszédablak, a fájl tulajdonságait a termék verziószáma (Product verzió). Van bármilyen karakterlánc lehet, például, 5,1 Beta 2. Általában az egész gyülekezet az alkalmazás verziószáma megegyezik az információkat.
    • A AssemblyFileVersion - Fájl verzió - utal az elrendezés szám (build) szerelvény. Jelenik meg a fájl tulajdonságai párbeszédpanelen a File Version (File verzió). Ahogy AssemblyVersion tartalmaznia kell egy vonal 4 részre osztható.

    Erős nevek (Strong Names)

    Erős nevek segítenek megvédeni a szerelvényt egy hamis. Szigorúan elemzi szerelvény van egy egyedi, és nem hamis ID, ami úgy érhető el hozzá a következő metaadatok szerelvény nyilvánvaló:

    Rendelni a szerelvény egy erős nevét, először létre kell hozni egy fájlt egy pár kulcsot, például sn.exe segédprogramot. A segédprogram létrehoz egy kiterjesztésű fájl .snk, amely egy pár kulcsot. Ezután a szerelvényt kell összeállítani a lehetőséget / keyfile:

    Kiadó osztály a névtér tartalmazza System.Security.Policy Certificate tulajdon. Ha ez a tulajdonság visszaadja eltérő értéket null, akkor a szerelvény aláírt Authenticode rendszer.

    Authenticode aláírás nem része az összeállítás nevét.

    GAC - GAC (Global Assembly Cache)

    Amikor telepíti a .NET-keretrendszer a számítógép létrehoz egy központi adattár szerelvények - GAC (Global Assembly Cache - GAC). GAC összeállítás tartalmazza a platform .NET Framework és az is lehetséges, hogy hozzá saját összeállítás. A fő jellemzője a GAC ​​központi támogatást változata (egy rendszergazda a gépen szint). Ha ez a támogatás valóban szükséges, felveheti a szerelvényt GAC, minden más esetben ez csak bonyolítaná a fejlődés. telepítése és támogató alkalmazások.

    A telepítéshez a szerelvényt a GAC ​​azt először be kell állítania egy erős nevét. Ezt követően, akkor add hozzá a GAC ​​segítségével gacutil segédprogram:

    Telepítse szerelvények a GAC ​​lehet beállítani, mint a beállítás részét képezi a projekt a Visual Studio.

    Betöltése után a szerelvényt a GAC ​​alkalmazások hivatkozhatunk rá anélkül, hogy szükség van egy helyi másolat. Ebben az esetben, ha a helyi másolat van jelen, akkor figyelmen kívül hagyja mellett a szerelvényt GAC.

    amellett, hogy a forráskód szerelvény tartalmazhat források: szöveg, kép, és az XML-fájlokat. Jellemzően a forrásokat adunk a szerelés vagy lokalizált képadatok. Forrás szerelvény végső soron képviseli a byte stream elemzi. Építsd tárolja a szótárban zsineggel kulcsokat.

    Globalizált tartalom először hozzáadjuk a .resources fájlokat. Összeállításakor, ezek egyedileg csomagolt szolga szerelvények, amelyek automatikusan kiválasztódnak a végrehajtása során alapul OS nyelvet.

    A közvetlen integráció az erőforrások

    Hogy beágyazza a forrás közvetlenül a szerelvény kell fordítani az egy vagy több paraméter / forrás:

    Itt XX - a nyelv kétbetűs kódját (például Németország), illetve nyelvi és a körzetszámot (például hu-HU).

    Ahhoz, hogy hozzá egy alárendelt szerelvény hozzá a projekthez egy .resx fájlt. akinek a nevét kell tartalmaznia a lokalizáció kódot (elválasztva egy pont), például, welcome.de.resx. Amikor fordítod a Visual Studio automatikusan létre alkönyvtárakat (pl de), és benne egy alárendelt egység (például MyApp.resources.dll).

    Kultúra oszlik saját kultúrájának és szubkultúra. Kultúra jelentése adott nyelv és szubkultúra - regionális változata a nyelvet. Kultúra jelzi a kétbetűs kódot (pl en de.) És a szubkultúrák - a négybetűs (. En-AU de-AT).

    A kultúrát képviseljük .NET osztály System.Globalization.CultureInfo. A jelenlegi kultúra lehet a következőképpen állítjuk elő:

    CurrentCulture ingatlan tükrözi a regionális Windows beállításait és CurrentUICulture tulajdon - a felhasználói felület nyelvét.

    Felbontás szerelvények

    Végrehajtása során a rendszer sokkal bonyolultabb. Amikor először hozzáférést bármely vagy CLR típusú először megállapítja, hogy ez a jelenlegi összeállítás, vagy a külső. Ha a típus a külső szerelvény, a CLR ellenőrzi, hogy már be van töltve az összeállítás a memóriában. Amennyiben a szerelvény nincs betöltve, a CLR megpróbálja megtalálni őt. Az első dolog, ellenőrzött GAC, akkor a bázis könyvtár az alkalmazás és más keresési útvonalat (ha meg van adva). Ha nem találja a szerelvény generált AppDomain.AssemblyResolve esemény. amely beakadhat kézzel betölteni a szerelvény. Ha ezek után építmények még mindig nem talált CLR kivételt dob.

    esemény AssemblyResolve

    Kapcsolódó cikkek