Instrukcje: generowanie podstawowych zestawów międzyoperacyjnych przy użyciu Tlbimp.exe

Uwaga / Notatka

Te wskazówki są specyficzne dla platformy .NET Framework. Do nowoczesnego współdziałania .NET z modelem COM użyj współdziałania COM generowanego ze źródła lub interfejsu API System.Runtime.InteropServices.ComWrappers. Aby uzyskać więcej informacji, zobacz Omówienie międzyoperacjności modelu COM i generowanie źródła MODELU COM.

Istnieją dwa sposoby na wygenerowanie podstawowego zestawu międzyoperacyjnego:

  • Za pomocą importera biblioteki typów (Tlbimp.exe) dostarczonego przez zestaw WINDOWS SDK.

    Najprostszym sposobem tworzenia podstawowych zestawów międzyoperacyjnych jest użycie Tlbimp.exe (Importer biblioteki typów). Tlbimp.exe zapewnia następujące zabezpieczenia:

    • Sprawdza, czy istnieją inne zarejestrowane podstawowe zestawy międzyoperacyjne przed utworzeniem nowych zestawów międzyoperacyjnych dla wszystkich odwołań do zagnieżdżonych bibliotek typów.
    • Nie można wygenerować podstawowego zestawu interop, jeśli nie określisz ani kontenera, ani nazwy pliku, aby nadać podstawowemu zestawowi interop mocną nazwę.
    • Nie można wygenerować podstawowego zestawu międzyoperacyjnego, jeśli pominie się odwołania do zestawów zależnych.
    • Nie można wygenerować podstawowego zestawu interop, jeśli dodasz odwołania do zestawów zależnych, które nie są podstawowymi zestawami interop.
  • Ręczne tworzenie podstawowych zestawów międzyoperacyjnych w kodzie źródłowym przy użyciu języka zgodnego ze specyfikacją języka wspólnego (CLS), takim jak C#. Takie podejście jest przydatne, gdy biblioteka typów jest niedostępna.

Aby podpisać zestaw o silnej nazwie, musisz mieć parę kluczy kryptograficznych. Aby uzyskać szczegółowe informacje, zobacz Tworzenie pary kluczy.

Wygeneruj podstawowy zestaw międzyoperacyjny za pomocą programu Tlbimp.exe

  1. W wierszu polecenia wpisz:

    tlbimptlbfile/primary /keyfile:nazwa pliku/out:nazwa zestawu

    W tym poleceniu tlbfile jest plikiem zawierającym bibliotekę typów COM, nazwa pliku jest nazwą kontenera lub pliku zawierającego parę kluczy, a nazwa zestawu jest nazwą zestawu do podpisania za pomocą silnej nazwy.

Podstawowe zestawy międzyoperacyjne mogą odwoływać się tylko do innych podstawowych zestawów międzyoperacyjnych. Jeśli ta asemblacja odwołuje się do typów z biblioteki typów COM innej firmy, przed wygenerowaniem własnej podstawowej biblioteki międzyoperacyjnej należy uzyskać od producenta podstawową bibliotekę międzyoperacyjną. Jeśli jesteś wydawcą, musisz wygenerować podstawowy zestaw międzyoperacyjny dla zależnej biblioteki typów przed wygenerowaniem podstawowego zestawu międzyoperacyjnego, który się do niej odwołuje.

Zależny podstawowy zestaw międzyoperacyjny o numerze wersji innym niż numer wersji oryginalnej biblioteki typów nie jest wykrywany, gdy jest zainstalowany w bieżącym katalogu. Musisz zarejestrować zależny główny zestaw międzyoperacyjny w rejestrze systemu Windows lub użyć opcji /reference, aby mieć pewność, że program Tlbimp.exe odnajdzie zależną bibliotekę DLL.

Można również opakowować wiele wersji biblioteki typów. Aby uzyskać instrukcje, zobacz Instrukcje: opakowywanie wielu wersji bibliotek typów.

Przykład

Poniższy przykład importuje bibliotekę typów COM LibUtil.tlb i podpisuje zestaw LibUtil.dll silną nazwą przy użyciu pliku klucza CompanyA.snk. Pomijając określoną nazwę przestrzeni nazw, w tym przykładzie zostanie utworzona domyślna przestrzeń nazw. LibUtil

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

Aby uzyskać bardziej opisową nazwę (zgodnie z konwencją nazewnictwa VendorName.LibraryName), poniższy przykład zastępuje domyślną nazwę pliku zestawu i nazwę przestrzeni nazw.

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

Poniższy przykład importuje MyLib.tlb, który odwołuje się do CompanyA.LibUtil.dll, i podpisuje asemblację CompanyB.MyLib.dll silną nazwą przy użyciu pliku klucza CompanyB.snk. Przestrzeń nazw CompanyB.MyLib, , zastępuje domyślną nazwę przestrzeni nazw.

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

Zobacz też