Útmutató: .NET-keretrendszer-alapú COM-összetevők konfigurálása regisztráció nélküli aktiváláshoz
Az .NET-keretrendszer-alapú összetevők regisztráció nélküli aktiválása csak valamivel bonyolultabb, mint a COM-összetevők esetében. A beállításhoz két jegyzék szükséges:
A COM-alkalmazásoknak Win32-stílusú alkalmazásjegyzékkel kell rendelkezniük a felügyelt összetevő azonosításához.
.NET-keretrendszer-alapú összetevőknek rendelkezniük kell egy összetevőjegyzékkel a futásidőben szükséges aktiválási információkhoz.
Ez a témakör azt ismerteti, hogyan társíthat alkalmazásjegyzéket egy alkalmazáshoz; összetevőjegyzék társítása egy összetevővel; és beágyazhat egy összetevőjegyzéket egy szerelvénybe.
Alkalmazásjegyzék létrehozása
XML-szerkesztő használatával hozza létre (vagy módosítsa) a COM-alkalmazás tulajdonában lévő alkalmazásjegyzéket, amely egy vagy több felügyelt összetevővel működik együtt.
Szúrja be a következő szabványos fejlécet a fájl elejére:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>
A jegyzékelemekről és attribútumaikról további információt az alkalmazásjegyzékekben talál.
Azonosítsa a jegyzék tulajdonosát. Az alábbi példában
myComApp
az 1. verzió a jegyzékfájl tulajdonosa.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="myOrganization.myDivision.myComApp" version="1.0.0.0" processorArchitecture="msil" /> </assembly>
A függő szerelvények azonosítása. Az alábbi példában
myComApp
a függvény a következőtőlmyManagedComp
függ:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="myOrganization.myDivision.myComApp" version="1.0.0.0" processorArchitecture="x86" publicKeyToken="8275b28176rcbbef" /> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="myOrganization.myDivision.myManagedComp" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="8275b28176rcbbef" /> </dependentAssembly> </dependency> </assembly>
Mentse és nevezze el a jegyzékfájlt. Az alkalmazásjegyzék neve a végrehajtható szerelvény neve, amelyet a .manifest kiterjesztés követ. A myComApp.exe alkalmazásjegyzékfájljának neve például myComApp.exe.manifest.
Az alkalmazásjegyzéket ugyanabban a könyvtárban telepítheti, mint a COM-alkalmazás. Másik lehetőségként erőforrásként is hozzáadhatja az alkalmazás .exe fájlhoz. További információ: About Side-by-Side Assemblies.
Összetevőjegyzék létrehozása
XML-szerkesztő használatával hozzon létre egy összetevőjegyzéket a felügyelt szerelvény leírásához.
Szúrja be a következő szabványos fejlécet a fájl elejére:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>
Azonosítsa a fájl tulajdonosát. Az
<assemblyIdentity>
alkalmazásjegyzékfájl elemének<dependentAssembly>
meg kell egyeznie az összetevő jegyzékfájljában szereplő elemével. Az alábbi példábanmyManagedComp
az 1.2.3.4-es verzió a jegyzékfájl tulajdonosa.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="myOrganization.myDivision.myManagedComp" version="1.2.3.4" publicKeyToken="8275b28176rcbbef" processorArchitecture="msil" /> </assembly>
Azonosítsa az egyes osztályokat a szerelvényben.
<clrClass>
Az elem használatával egyedileg azonosíthatja a felügyelt szerelvény minden osztályát. Az elem, amely az<assembly>
elem aleleme, az alábbi táblázatban leírt attribútumokkal rendelkezik.Attribútum Leírás Kötelező clsid
Az aktiválandó osztályt meghatározó azonosító. Igen description
Egy sztring, amely tájékoztatja a felhasználót az összetevőről. Az alapértelmezett érték egy üres sztring. Nem name
A felügyelt osztályt jelképező sztring. Igen progid
A késői kötésű aktiváláshoz használandó azonosító. Nem threadingModel
A COM szálmodell. A "Mindkettő" az alapértelmezett érték. Nem runtimeVersion
A használni kívánt közös nyelvi futtatókörnyezet (CLR) verzióját adja meg. Ha nem adja meg ezt az attribútumot, és a CLR még nincs betöltve, az összetevő a legújabb telepített CLR-vel van betöltve a CLR 4-es verziója előtt. Ha 1.0.3705-ös, 1.1.4322-es vagy 2.0.50727-es verziót ad meg, a verzió automatikusan a legújabb telepített CLR-verzióra kerül a CLR 4-es verziója előtt (általában 2.0.50727-es verzió). Ha a CLR egy másik verziója már be van töltve, és a megadott verzió egymás mellett tölthető be a folyamatban, a megadott verzió betöltődik; ellenkező esetben a rendszer a betöltött CLR-t használja. Ez terhelési hibát okozhat. Nem tlbid
Annak a típustárnak az azonosítója, amely az osztály típusadatait tartalmazza. Nem Minden attribútumcímke megkülönbözteti a kis- és nagybetűket. A CLSID-k, progID-k, szálmodellek és futtatókörnyezeti verzió beszerzéséhez tekintse meg az SZERELVÉNY exportált típustárát az OLE/COM ObjectViewerrel (Oleview.exe).
Az alábbi összetevő-jegyzék két osztályt
testClass1
éstestClass2
.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="myOrganization.myDivision.myManagedComp" version="1.2.3.4" publicKeyToken="8275b28176rcbbef" /> <clrClass clsid="{65722BE6-3449-4628-ABD3-74B6864F9739}" progid="myManagedComp.testClass1" threadingModel="Both" name="myManagedComp.testClass1" runtimeVersion="v1.0.3705"> </clrClass> <clrClass clsid="{367221D6-3559-3328-ABD3-45B6825F9732}" progid="myManagedComp.testClass2" threadingModel="Both" name="myManagedComp.testClass2" runtimeVersion="v1.0.3705"> </clrClass> <file name="MyManagedComp.dll"> </file> </assembly>
Mentse és nevezze el a jegyzékfájlt. Az összetevő-jegyzék neve a szerelvénytár neve, amelyet a .manifest kiterjesztés követ. A myManagedComp.dll például a myManagedComp.manifest.
Az összetevő-jegyzékfájlt erőforrásként kell beágyaznia a szerelvénybe.
Összetevőjegyzék beágyazása felügyelt szerelvénybe
Hozzon létre egy erőforrásszkriptet, amely a következő utasítást tartalmazza:
1 RT_MANIFEST myManagedComp.manifest
Ebben az utasításban
myManagedComp.manifest
a beágyazott összetevőjegyzék neve. Ebben a példában a szkriptfájl neve .myresource.rc
Állítsa össze a szkriptet a Microsoft Windows Resource Compiler (Rc.exe) használatával. Írja be a következő parancsot a parancssorba:
rc myresource.rc
Rc.exe hozza létre az erőforrásfájlt
myresource.res
.Fordítsa le újra a szerelvény forrásfájlját, és adja meg az erőforrásfájlt a /win32res beállítással:
/win32res:myresource.res
myresource.res
Ismét a beágyazott erőforrásokat tartalmazó erőforrásfájl neve.