Sdílet prostřednictvím


Jak na to: Konfigurace na .NET Frameworku založených komponent modelu COM pro aktivaci bez registrace

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žit manifest komponenty ke komponentě; a vložit 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. Identifikujte závislé sestavy 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 COM aplikace. Alternativně ho můžete přidat jako zdroj 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 verze 1.2.3.4 vlastní soubor manifestu myManagedComp.

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

    Vlastnost Description Povinné
    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. Ne
    name Řetězec, který reprezentuje spravovanou třídu. Ano
    progid Identifikátor, který se má použít pro opožděnou aktivaci. Ne
    threadingModel Model vláken COM "Obě" je výchozí hodnota. Ne
    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ší nainstalovanou verzí CLR před verzí 4 CLR. 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í. Ne
    tlbid Identifikátor knihovny typů, která obsahuje informace o typu třídy. Ne

    U všech značek atributů se rozlišují malá a velká písmena. Můžete získat CLSIDy, ProgIDy, modely vláken a verzi prostředí runtime zobrazením knihovny exportovaných typů pro sestavení pomocí nástroje OLE/COM Object Viewer (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í kompilátoru prostředků systému Microsoft Windows (Rc.exe). Na příkazovém řá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 myresource.res název souboru prostředků, který obsahuje vložené prostředky.

Viz také