Postupy: Konfigurace bezregistrační aktivace komponent využívajících rozhraní .NET Framework

Aktivace bez registrace pro komponenty založené na rozhraní .NET Framework je pouze o něco složitější, než je u komponent modelu COM. Nastavení vyžaduje dva manifesty:

  • Aplikace modelu COM musí mít manifest aplikace ve stylu Win32, aby bylo možné identifikovat spravovanou komponentu.

  • Komponenty založené na rozhraní .NET Framework musí mít manifest komponenty pro informace o aktivaci potřebné za běhu.

Toto téma popisuje, jak přidružit manifest aplikace k aplikaci; přidružení manifestu komponenty ke komponentě; a vložte manifest komponenty do sestavení.

Vytvoření manifestu aplikace

  1. Pomocí editoru XML vytvořte (nebo upravte) manifest aplikace vlastněný aplikací COM, která spolupracuje s jednou nebo více spravovanými komponentami.

  2. Na začátek souboru vložte následující standardní hlavičku:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    </assembly>
    

    Informace o prvcích manifestu a jejich atributech naleznete v tématu Manifesty aplikace.

  3. Identifikujte vlastníka manifestu. V následujícím příkladu myComApp verze 1 vlastní soubor manifestu.

    <?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. Identifikace závislých sestavení V následujícím příkladu myComApp závisí na myManagedComp.

    <?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. Uložte a pojmenujte soubor manifestu. Název manifestu aplikace je název spustitelného souboru sestavení následovaného příponou .manifest. Například název souboru manifestu aplikace pro myComApp.exe je myComApp.exe.manifest.

Manifest aplikace můžete nainstalovat do stejného adresáře jako aplikace MODELU COM. Alternativně ho můžete přidat jako prostředek do souboru .exe aplikace. Další informace naleznete v tématu O souběžných sestaveních.

Vytvoření manifestu komponenty

  1. Pomocí editoru XML vytvořte manifest komponenty, který popisuje spravované sestavení.

  2. Na začátek souboru vložte následující standardní hlavičku:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    </assembly>
    
  3. Identifikujte vlastníka souboru. Prvek <assemblyIdentity> elementu <dependentAssembly> v souboru manifestu aplikace musí odpovídat prvku v manifestu komponenty. V následujícím příkladu myManagedComp vlastní soubor manifestu verze 1.2.3.4.

    <?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. Identifikujte každou třídu v sestavení. Pomocí elementu <clrClass> jednoznačně identifikujte každou třídu ve spravovaném sestavení. Element, který je dílčím prvkem elementu <assembly> , má atributy popsané v následující tabulce.

    Atribut Popis Povinní účastníci
    clsid Identifikátor, který určuje třídu, která se má aktivovat. Ano
    description Řetězec, který uživatele informuje o komponentě. Výchozí hodnota je prázdný řetězec. No
    name Řetězec, který představuje spravovanou třídu. Ano
    progid Identifikátor, který se má použít pro opožděnou aktivaci. No
    threadingModel Model s vlákny modelu COM. "Obě" je výchozí hodnota. No
    runtimeVersion Určuje verzi modulu CLR (Common Language Runtime), která se má použít. Pokud tento atribut nezadáte a modul CLR ještě není načten, komponenta se načte s nejnovějším nainstalovaným clr před CLR verze 4. Pokud zadáte verzi v1.0.3705, v1.1.4322 nebo v2.0.50727, verze se automaticky přepojí na nejnovější nainstalovanou verzi CLR před CLR verze 4 (obvykle v2.0.50727). Pokud je již načtena jiná verze CLR a zadaná verze se dá načíst souběžně v procesu, načte se zadaná verze; v opačném případě se použije načtený modul CLR. To může způsobit selhání zatížení. No
    tlbid Identifikátor knihovny typů, která obsahuje informace o typu třídy. No

    U všech značek atributů se rozlišují malá a velká písmena. Moduly CLSIDs, ProgIDs, modely vláken a verzi modulu runtime můžete získat zobrazením knihovny exportovaných typů pro sestavení pomocí objektu OLE/COM ObjectViewer (Oleview.exe).

    Následující manifest komponenty identifikuje dvě třídy testClass1 a 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. Uložte a pojmenujte soubor manifestu. Název manifestu komponenty je název knihovny sestavení následovaný příponou .manifest. Například myManagedComp.dll je myManagedComp.manifest.

Manifest komponenty je nutné vložit jako prostředek do sestavení.

Vložení manifestu komponenty do spravovaného sestavení

  1. Vytvořte skript prostředku, který obsahuje následující příkaz:

    1 RT_MANIFEST myManagedComp.manifest

    V tomto příkazu myManagedComp.manifest je název vloženého manifestu komponenty. V tomto příkladu je myresource.rcnázev souboru skriptu .

  2. Zkompilujte skript pomocí nástroje Microsoft Windows Resource Compiler (Rc.exe). Do příkazového řádku zadejte následující příkaz:

    rc myresource.rc

    Rc.exe vytvoří myresource.res soubor prostředků.

  3. Zkompilujte zdrojový soubor sestavení znovu a zadejte soubor prostředku pomocí možnosti /win32res :

    /win32res:myresource.res

    Opět je název souboru prostředků obsahujícího myresource.res vložené prostředky.

Viz také