Megosztás a következőn keresztül:


Ú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

  1. 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.

  2. 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.

  3. 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>
    
  4. A függő szerelvények azonosítása. Az alábbi példában myComApp a függvény a következőtől myManagedCompfü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>
    
  5. 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

  1. XML-szerkesztő használatával hozzon létre egy összetevőjegyzéket a felügyelt szerelvény leírásához.

  2. 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>
    
  3. 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ában myManagedComp 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>
    
  4. 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 és testClass2.

    <?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>
    
  5. 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

  1. 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

  2. Á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 .

  3. 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.

Lásd még