Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Registreringsfri aktivering för .NET Framework-baserade komponenter är bara något mer komplicerad än för COM-komponenter. Konfigurationen kräver två manifest:
COM-program måste ha ett win32-liknande programmanifest för att identifiera den hanterade komponenten.
.NET Framework-baserade komponenter måste ha ett komponentmanifest för aktiveringsinformation som behövs vid körning.
Det här avsnittet beskriver hur du associerar ett programmanifest med ett program. associera ett komponentmanifest med en komponent. och bädda in ett komponentmanifest i en sammansättning.
Skapa ett programmanifest
Använd en XML-redigerare, skapa (eller ändra) programmanifestet som ägs av COM-programmet som samverkar med en eller flera hanterade komponenter.
Infoga följande standardrubrik i början av filen:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>Information om manifestelement och deras attribut finns i Programmanifest.
Identifiera ägaren av manifestet. I följande exempel
myComAppäger version 1 manifestfilen.<?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>Identifiera beroende sammansättningar. I följande exempel
myComAppberor på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>Spara och namnge manifestfilen. Namnet på ett programmanifest är namnet på den körbara sammansättningen följt av manifesttillägget .. Till exempel är programmanifestets filnamn för myComApp.exe myComApp.exe.manifest.
Du kan installera ett programmanifest i samma katalog som COM-programmet. Du kan också lägga till den som en resurs i programmets .exe-fil. Mer information finns i Om sammansättningar sida vid sida.
Skapa ett komponentmanifest
Använd en XML-redigerare och skapa ett komponentmanifest för att beskriva den hanterade sammansättningen.
Infoga följande standardrubrik i början av filen:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>Identifiera filens ägare. Elementet
<assemblyIdentity>i -elementet<dependentAssembly>i programmanifestfilen måste matcha det i komponentmanifestet. I följande exempelmyManagedCompäger version 1.2.3.4 manifestfilen.<?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>Identifiera varje klass i sammansättningen. Använd elementet
<clrClass>för att unikt identifiera varje klass i den hanterade sammansättningen. Elementet, som är ett underelement i elementet<assembly>, har attributen som beskrivs i följande tabell.Attribut beskrivning Obligatoriskt clsidIdentifieraren som anger vilken klass som ska aktiveras. Ja descriptionEn sträng som informerar användaren om komponenten. En tom sträng är standard. Nej nameEn sträng som representerar den hanterade klassen. Ja progidIdentifieraren som ska användas för sen aktivering. Nej threadingModelCOM-trådningsmodellen. "Båda" är standardvärdet. Nej runtimeVersionAnger den clr-version (common language runtime) som ska användas. Om du inte anger det här attributet och CLR inte redan har lästs in läses komponenten in med den senaste installerade CLR:en före CLR version 4. Om du anger v1.0.3705, v1.1.4322 eller v2.0.50727, återställs versionen automatiskt till den senaste installerade CLR-versionen före CLR version 4 (vanligtvis v2.0.50727). Om en annan version av CLR redan har lästs in och den angivna versionen kan läsas in sida vid sida läses den angivna versionen in. annars används den inlästa CLR:en. Detta kan orsaka ett belastningsfel. Nej tlbidIdentifieraren för typbiblioteket som innehåller typinformation om klassen. Nej Alla attributtaggar är skiftlägeskänsliga. Du kan hämta CLSID:er, ProgID:er, trådmodeller och körningsversionen genom att visa det exporterade typbiblioteket för sammansättningen med OLE/COM ObjectViewer (Oleview.exe).
Följande komponentmanifest identifierar två klasser och
testClass1testClass2.<?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>Spara och namnge manifestfilen. Namnet på ett komponentmanifest är namnet på sammansättningsbiblioteket följt av manifesttillägget .. Till exempel är myManagedComp.dll myManagedComp.manifest.
Du måste bädda in komponentmanifestet som en resurs i sammansättningen.
Bädda in ett komponentmanifest i en hanterad sammansättning
Skapa ett resursskript som innehåller följande instruktion:
1 RT_MANIFEST myManagedComp.manifestI den här instruktionen
myManagedComp.manifestär namnet på komponentmanifestet som bäddas in. I det här exemplet ärmyresource.rcskriptfilens namn .Kompilera skriptet med hjälp av Microsoft Windows Resource Compiler (Rc.exe). Skriv följande kommando i kommandotolken:
rc myresource.rcRc.exe skapar
myresource.resresursfilen.Kompilera sammansättningens källfil igen och ange resursfilen med alternativet /win32res :
/win32res:myresource.resmyresource.resÅterigen är namnet på resursfilen som innehåller inbäddade resurser.