Megosztás:


Szerelvények a .NET-ben

A szerelvények az üzembe helyezés, a verziókövetés, az újrafelhasználás, az aktiválás hatókörének és a biztonsági engedélyek alapvető egységei .NET-alapú alkalmazások esetén. A szerelvény olyan típusok és erőforrások gyűjteménye, amelyek az együttműködésre és a logikai funkcióegységek kialakítására lettek létrehozva. Az összeállítások futtatható (.exe) vagy dinamikus csatolású könyvtár (.dll) fájlok formáját öltik, és a .NET-alkalmazások építőelemei. A közös nyelvi futtatókörnyezet számára biztosítják azokat az információkat, amelyekre szüksége van, hogy a típusok megvalósításával tisztában legyen.

A .NET-ben és a .NET-keretrendszerben létrehozhat egy szerelvényt egy vagy több forráskódfájlból. A .NET-keretrendszerben a szerelvények egy vagy több modult tartalmazhatnak. Így nagyobb projektek is tervezhetők, így több fejlesztő is dolgozhat külön forráskódfájlokon vagy modulokon, amelyek egyetlen szerelvény létrehozásához vannak kombinálva. A modulokkal kapcsolatos további információkért lásd: Többfájlos szerelvény létrehozása.

A szerelvények a következő tulajdonságokkal rendelkeznek:

  • A szerelvények .exe vagy .dll fájlokként vannak implementálva.

  • A .NET-keretrendszert célzó kódtárak esetében az összetevőket megoszthatja az alkalmazások között, ha elhelyezi őket a globális szerelvénygyorsítótárba (GAC, azaz Globális Szerelvénygyorsítótár). Mielőtt azokat a GAC-be foglalhatná, erős névvel kell ellátnia az assemblyket. További információ: Erős nevű összeállítások.

  • A szerelvények csak akkor töltődnek be a memóriába, ha szükség van rájuk. Ha nem használják őket, nincsenek betöltődve. Ezért a szerelvények hatékonyan kezelhetik a nagyobb projektek erőforrásait.

  • A szerelvényekkel kapcsolatos információkat programozott módon, tükröződés használatával szerezheti be. További információ: Tükröződés (C#) vagy Tükröződés (Visual Basic).

  • Egy assemblyt csak azért tölthet be, hogy megvizsgálja azt a .NET- és .NET-keretrendszerbeli MetadataLoadContext osztály használatával. MetadataLoadContext a metódusok Assembly.ReflectionOnlyLoad helyébe lép.

Assembly-k a közös nyelvi futtatókörnyezetben

A szerelvények biztosítják a közös nyelvi futtatókörnyezetet azokkal az információkkal, amelyekre ismernie kell a típusmegvalósításokat. A futtatókörnyezetben egy típus nem létezik az összeállítás kontextusán kívül.

A szerelvény a következő információkat határozza meg:

  • A közös nyelvi futtatókörnyezet által végrehajtott kód. Minden szerelvénynek csak egy belépési pontja lehet: DllMain, WinMainvagy Main.

  • A biztonsági határ. A szerelvény az az egység, amelynél az engedélyeket kérik és adják meg. A szerelvények biztonsági határaival kapcsolatos további információkért lásd a szerelvény biztonsági szempontjait.

  • A típushatár. Minden típus identitása tartalmazza annak a szerelvénynek a nevét, amelyben található. Az egyik szerelvény hatókörébe betöltött típus MyType nem ugyanaz, mint egy másik szerelvény hatókörébe betöltött típus MyType .

  • A referencia-hatókör határa: A szerelvényjegyzék metaadatai a típusok feloldására és az erőforrás-kérelmek teljesítésére szolgálnak. A jegyzék megadja azokat a típusokat és erőforrásokat, amelyek a szerelvényen kívül elérhetővé tehetők, és számba vesz más szerelvényeket, amelyektől függ. A hordozható végrehajtható (PE) fájlok közös köztes nyelvi (CIL) kódja csak akkor lesz végrehajtva, ha van hozzá társított szerelvényjegyzéke.

  • A verzió határa. A program-összetevő a legkisebb verziózható egység a közös nyelvi futtatókörnyezetben. Az ugyanabban a szerelvényben lévő összes típus és erőforrás egységként van verziószámozott. A szerelvényjegyzék ismerteti a függő szerelvényekhez megadott verziófüggőségeket. A verziószámozással kapcsolatos további információkért lásd a szerelvény verziószámozását.

  • Az üzembe helyezési egység: Amikor egy alkalmazás elindul, csak azokat a szerelvényeket kell tartalmaznia, amelyeket az alkalmazás kezdetben hív. Más szerelvények, például a honosítási erőforrásokat vagy a segédprogramosztályokat tartalmazó szerelvények igény szerint lekérhetők. Ez a folyamat lehetővé teszi, hogy az alkalmazások egyszerűek és vékonyak legyenek az első letöltéskor. A szerelvények üzembe helyezésével kapcsolatos további információkért lásd az alkalmazások üzembe helyezését ismertető témakört.

  • Egy egymás melletti végrehajtási egység: A szerelvény több verziójának futtatásáról további információt a Szerelvények és az egymás melletti végrehajtás című témakörben talál.

Szerelvény létrehozása

A szerelvények lehetnek statikusak vagy dinamikusak. A statikus összeállítások hordozható végrehajtható (PE) fájlokban tárolódnak lemezen. A statikus szerelvények tartalmazhatnak interfészeket, osztályokat és erőforrásokat, például bitképeket, JPEG-fájlokat és más erőforrásfájlokat. Dinamikus szerelvényeket is létrehozhat, amelyek közvetlenül a memóriából futnak, és nem lesznek mentve a lemezre a végrehajtás előtt. A dinamikus szerelvényeket a végrehajtásuk után lemezre mentheti.

A szerelvényeket többféleképpen is létrehozhatja. Használhat fejlesztési eszközöket, például a Visual Studiót, amely .dll vagy .exe fájlokat hozhat létre. A Windows SDK eszközeivel más fejlesztői környezetekből származó modulokkal hozhat létre szerelvényeket. A gyakori nyelvi futtatókörnyezeti API-kat is használhatja, például System.Reflection.Emitdinamikus szerelvények létrehozásához.

Szerelvények összeállítása a Visual Studio használatával, a .NET Core parancssori felület eszközeivel vagy a .NET-keretrendszer parancssori fordítójával. A szerelvények .NET CLI használatával történő kiépítéséről a .NET CLI áttekintésében olvashat bővebben.

Megjegyzés:

Ha szerelvényt szeretne létrehozni a Visual Studióban, a Build menüben válassza a Build lehetőséget.

Szerelvényjegyzék

Minden szerelvény rendelkezik egy szerelvényjegyzékfájllal . A szerelvényjegyzék a tartalomjegyzékhez hasonlóan a következőket tartalmazza:

  • A szerelvény identitása (neve és verziója).

  • A szerelvényt alkotó összes többi fájlt leíró fájltábla, például a .exe vagy .dll fájl által létrehozott egyéb szerelvények, bitképfájlok vagy Readme-fájlok.

  • Szerelvény-referencialista, amely az összes külső függőség, például .dlls vagy más fájlok listája. A szerelvényhivatkozások globális és privát objektumokra is hivatkoznak. A globális objektumok minden más alkalmazás számára elérhetők. A .NET Core-ban a globális objektumok egy adott .NET Core-futtatókörnyezettel vannak összekapcsolva. A .NET-keretrendszerben a globális objektumok a globális szerelvény-gyorsítótárban (GAC) találhatók. System.IO.dll egy példa a GAC-beli összeállításra. A privát objektumoknak a címtár szintjén vagy alatta kell lenniük, amelyben az alkalmazás telepítve van.

A szerelvények tartalommal, verziószámozással és függőségekkel kapcsolatos információkat tartalmaznak. Ezért az őket használó alkalmazásoknak nem kell külső forrásokra, például a Windows-rendszerek regisztrációs adatbázisára támaszkodniuk a megfelelő működéshez. A szerelvények csökkentik .dll ütközéseket, és megbízhatóbbá és egyszerűbbé teszik az alkalmazások üzembe helyezését. Sok esetben egyszerűen telepíthet egy .NET-alapú alkalmazást a fájljai célgépre másolásával. További információ: Szerelvényjegyzék.

Szerelvényre mutató hivatkozás hozzáadása

Ha összeállítást szeretne használni egy alkalmazásban, hozzá kell adnia egy hivatkozást. Amikor egy szerelvényre hivatkozik, a névterek összes akadálymentes típusa, tulajdonsága, metódusa és egyéb tagja úgy lesz elérhető az alkalmazás számára, mintha a kód a forrásfájl részét képezte volna.

Megjegyzés:

A .NET-osztálykönyvtár legtöbb összeállítása automatikusan hivatkozásra kerül. Ha egy rendszerszerelvényre nem hivatkozik automatikusan, adjon hozzá egy hivatkozást az alábbi módok egyikén:

  • A .NET és a .NET Core esetében adjon hozzá egy hivatkozást a szerelvényt tartalmazó NuGet-csomagra. Használja a NuGet Package Managert a Visual Studióban, vagy adjon hozzá egy <PackageReference> elemet a szerelvényhez a .csproj vagy a .vbproj projekthez.
  • .NET-keretrendszer esetén adjon hozzá egy hivatkozást az assemblyhez a Hivatkozás hozzáadása párbeszédpanelen a Visual Studióban, vagy a -referenceC# vagy Visual Basic fordítók parancssori opcióval.

A C#-ban ugyanazon szerelvény két verzióját használhatja egyetlen alkalmazásban. További információ: extern alias.

Cím Leírás
Szerelvény tartalma Szerelvényt alkotó elemek.
Összeállítási jegyzék Az összeszerelési jegyzékben található adatok, és azok tárolási módja az összeszerelésekben.
Globális szerelvény-gyűjtemény Hogyan tárolja és használja a GAC a szerelvényeket.
Erős névvel ellátott összetevők Az erősnevű szerelvények jellemzői.
Szerelvény biztonsági szempontjai Hogyan működik a biztonság a szerelvényekkel?
Összeállítás verziókezelése A .NET-keretrendszer verziószámozási szabályzatának áttekintése.
Szerelvény elhelyezése Hol találhatók a szerelvények.
Szerelvények és egymás melletti végrehajtás Használjon egyszerre több futtatókörnyezetet vagy szerelvényt.
Dinamikus metódusok és szerelvények kibocsátása Dinamikus szerelvények létrehozása.
Hogyan találja meg a futtatókörnyezet a szerelvényeket Hogyan oldja fel a .NET-keretrendszer a szerelvényhivatkozásokat futásidőben.

Referenciák

System.Reflection.Assembly

Lásd még