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
Pomocí editoru XML vytvořte (nebo upravte) manifest aplikace vlastněný aplikací COM, která spolupracuje s jednou nebo více spravovanými komponentami.
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.
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>
Identifikace závislých sestavení V následujícím příkladu
myComApp
závisí namyManagedComp
.<?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>
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
Pomocí editoru XML vytvořte manifest komponenty, který popisuje spravované sestavení.
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>
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říkladumyManagedComp
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>
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
atestClass2
.<?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>
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í
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 jemyresource.rc
název souboru skriptu .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ů.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.