Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Activering zonder registratie voor onderdelen op basis van .NET Framework is slechts iets ingewikkelder dan voor COM-onderdelen. Voor de installatie zijn twee manifesten vereist:
COM-toepassingen moeten een Win32-toepassingsmanifest hebben om het beheerde onderdeel te identificeren.
Onderdelen op basis van .NET Framework moeten een onderdeelmanifest hebben voor activeringsgegevens die tijdens runtime nodig zijn.
In dit onderwerp wordt beschreven hoe u een toepassingsmanifest koppelt aan een toepassing; een onderdeelmanifest koppelen aan een onderdeel; en sluit een onderdeelmanifest in een assembly in.
Een toepassingsmanifest maken
Maak (of wijzig) met behulp van een XML-editor het toepassingsmanifest dat eigendom is van de COM-toepassing die met een of meer beheerde onderdelen werkt.
Voeg de volgende standaardkoptekst toe aan het begin van het bestand:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>Zie Toepassingsmanifesten voor informatie over manifestelementen en hun kenmerken.
Identificeer de eigenaar van het manifest. In het volgende voorbeeld
myComAppis versie 1 eigenaar van het manifestbestand.<?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>Afhankelijke assemblies identificeren. In het volgende voorbeeld is
myComAppafhankelijk vanmyManagedComp.<?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>Sla het manifestbestand op en geef het een naam. De naam van een toepassingsmanifest is de naam van het uitvoerbare assemblybestand, gevolgd door de extensie .manifest. De naam van het manifestbestand van de toepassing voor myComApp.exe is bijvoorbeeld myComApp.exe.manifest.
U kunt een toepassingsmanifest installeren in dezelfde map als de COM-toepassing. U kunt deze ook toevoegen als een resource aan het .exe-bestand van de toepassing. Zie Over side-by-side assemblies voor meer informatie.
Een onderdeelmanifest maken
Maak met behulp van een XML-editor een onderdeelmanifest om de beheerde assembly te beschrijven.
Voeg de volgende standaardkoptekst toe aan het begin van het bestand:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>Identificeer de eigenaar van het bestand. Het
<assemblyIdentity>-element van het<dependentAssembly>-element in het toepassingsmanifestbestand moet overeenkomen met het element in het componentmanifest. In het volgende voorbeeldmyManagedCompis versie 1.2.3.4 eigenaar van het manifestbestand.<?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>Identificeer elke klasse in de assembly. Gebruik het
<clrClass>element om elke klasse in de beheerde assembly uniek te identificeren. Het element, een subelement van het<assembly>element, bevat de kenmerken die in de volgende tabel worden beschreven.Attribute Description Verplicht clsidDe id waarmee de klasse wordt opgegeven die moet worden geactiveerd. Yes descriptionEen tekenreeks die de gebruiker informeert over het onderdeel. Een lege tekenreeks is de standaard. Nee. nameEen tekenreeks die de beheerde klasse vertegenwoordigt. Yes progidDe identifier die moet worden gebruikt voor late-bound activering. Nee. threadingModelHet COM-threadingmodel. 'Beide' is de standaardwaarde. Nee. runtimeVersionHiermee geeft u de CLR-versie (Common Language Runtime) op die moet worden gebruikt. Als u dit kenmerk niet opgeeft en de CLR nog niet is geladen, wordt het onderdeel geladen met de meest recente geïnstalleerde CLR vóór CLR versie 4. Als u v1.0.3705, v1.1.4322 of v2.0.50727 opgeeft, wordt de versie automatisch doorgestuurd naar de meest recente geïnstalleerde CLR-versie vóór CLR versie 4 (meestal v2.0.50727). Als er al een andere versie van de CLR is geladen en de opgegeven versie naast elkaar kan worden geladen, wordt de opgegeven versie geladen; anders wordt de geladen CLR gebruikt. Dit kan leiden tot een laadfout. Nee. tlbidDe identificator van de typebibliotheek die type-informatie over de klasse bevat. Nee. Alle kenmerktags zijn hoofdlettergevoelig. U kunt CLSID's, ProgID's, threadingmodellen en de runtimeversie verkrijgen door de geëxporteerde typebibliotheek voor de assembly te bekijken met de OLE/COM ObjectViewer (Oleview.exe).
Het volgende componentmanifest identificeert twee klassen,
testClass1entestClass2.<?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>Sla het manifestbestand op en geef het een naam. De naam van een onderdeelmanifest is de naam van de assemblagebibliotheek, gevolgd door de extensie .manifest. De myManagedComp.dll is bijvoorbeeld myManagedComp.manifest.
U moet het manifest van het component als een resource insluiten in de assembly.
Een onderdeelmanifest insluiten in een beheerde assembly
Maak een resourcescript met de volgende instructie:
1 RT_MANIFEST myManagedComp.manifestIn deze instructie
myManagedComp.manifestis de naam van het onderdeelmanifest dat wordt ingesloten. In dit voorbeeld ismyresource.rcde bestandsnaam van het script.Compileer het script met behulp van de Microsoft Windows Resource Compiler (Rc.exe). Typ bij de opdrachtprompt de volgende opdracht:
rc myresource.rcRc.exe produceert het
myresource.resresourcebestand.Compileer het bronbestand van de assembly opnieuw en geef het resourcebestand op met behulp van de optie /win32res :
/win32res:myresource.resNogmaals,
myresource.resis de naam van het resourcebestand met ingesloten resources.