Share via


Procedure: Primaire interop-assembly's genereren met behulp van Tlbimp.exe

Er zijn twee manieren om een primaire interoperabiliteitsassembly te genereren:

  • Gebruik de Type Library Importer (Tlbimp.exe) die wordt geleverd door de Windows SDK.

    De eenvoudigste manier om primaire interopassembly's te produceren, is door de Tlbimp.exe (Type Library Importer) te gebruiken. Tlbimp.exe biedt de volgende beveiligingsmaatregelen:

    • Controleert op andere geregistreerde primaire interopassembly's voordat nieuwe interop-assembly's worden gemaakt voor geneste typebibliotheekverwijzingen.

    • Kan de primaire interop-assembly niet verzenden als u de container of bestandsnaam niet opgeeft om de primaire interop-assembly een sterke naam te geven.

    • Kan geen primaire interop-assembly verzenden als u verwijzingen naar afhankelijke assembly's weglaat.

    • Kan geen primaire interop-assembly verzenden als u verwijzingen toevoegt naar afhankelijke assembly's die geen primaire interop-assembly's zijn.

  • Het handmatig maken van primaire assembly's in broncode met behulp van een taal die voldoet aan de Common Language Specification (CLS), zoals C#. Deze methode is handig wanneer een typebibliotheek niet beschikbaar is.

U moet een cryptografisch sleutelpaar hebben om de assembly te ondertekenen met een sterke naam. Zie Een sleutelpaar maken voor meer informatie.

Een primaire interoperabiliteitsassembly genereren met behulp van Tlbimp.exe

  1. Typ bij de opdrachtprompt:

    tlbimptlbfile/primary /keyfile:bestandsnaam/out:assemblyname

    In deze opdracht is tlbfile het bestand met de COM-typebibliotheek, bestandsnaam is de naam van de container of het bestand dat het sleutelpaar bevat en assemblynaam de naam van de assembly die moet worden ondertekend met een sterke naam.

Primaire interop-assembly's kunnen alleen verwijzen naar andere primaire interop-assembly's. Als uw assembly verwijst naar typen van een com-typebibliotheek van derden, moet u een primaire interoperabiliteitsassembly van de uitgever verkrijgen voordat u de primaire interop-assembly kunt genereren. Als u de uitgever bent, moet u een primaire interoperabiliteitsassembly genereren voor de afhankelijke typebibliotheek voordat u de verwijzing naar de primaire interop-assembly genereert.

Een afhankelijke primaire interoperabiliteitsassembly met een versienummer dat verschilt van die van de oorspronkelijke typebibliotheek kan niet worden gedetecteerd wanneer deze is geïnstalleerd in de huidige map. U moet de afhankelijke primaire interop-assembly registreren in het Windows-register of de optie /reference gebruiken om ervoor te zorgen dat Tlbimp.exe de afhankelijke DLL vindt.

U kunt ook meerdere versies van een typebibliotheek verpakken. Zie Procedure: Meerdere versies van typebibliotheken verpakken voor instructies.

Opmerking

In het volgende voorbeeld wordt de COM-typebibliotheek LibUtil.tlb geïmporteerd en de assembly LibUtil.dll ondertekend met een sterke naam met behulp van het sleutelbestand CompanyA.snk. Door een specifieke naamruimtenaam weg te laten, produceert dit voorbeeld de standaardnaamruimte. LibUtil

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /out:LibUtil.dll

Voor een meer beschrijvende naam (met behulp van VendorName.Naamgevingsrichtlijn libraryname), in het volgende voorbeeld wordt de standaardnaam en naamruimtenaam van het assemblybestand overschreven.

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /namespace:CompanyA.LibUtil /out:CompanyA.LibUtil.dll

In het volgende voorbeeld wordt MyLib.tlbde assembly geïmporteerd die verwijst naar CompanyA.LibUtil.dllen de assembly CompanyB.MyLib.dll ondertekent met een sterke naam met behulp van het sleutelbestand CompanyB.snk. De naamruimte, CompanyB.MyLiboverschrijft de standaardnaamruimtenaam.

tlbimp MyLib.tlb /primary /keyfile:CompanyB.snk /namespace:CompanyB.MyLib /reference:CompanyA.LibUtil.dll /out:CompanyB.MyLib.dll

Zie ook