Partager via


Comment : créer manuellement des assemblys PIA

Mise à jour : novembre 2007

Même si cette approche est moins fréquente pour générer une bibliothèque de types, vous pouvez créer un assembly PIA (Primary Interop Assembly) manuellement dans du code source en utilisant un langage conforme CLS (Common Language Specification), tel que C#. Cette approche est utile lorsqu'une bibliothèque de types n'est pas disponible.

Pour générer un assembly PIA dans du code source

  1. Créez un assembly d'interopérabilité dans du code source. Pour obtenir des instructions, consultez Création manuelle d'un wrapper. Remarquez que vous devez inclure tous les types COM de la bibliothèque de types d'origines lorsque vous créez un assembly PIA manuellement.

  2. Au niveau de l'assembly, appliquez les attributs suivants :

    1. AssemblyKeyFileAttribute ou AssemblyKeyNameAttribute, pour spécifier le nom du fichier ou du conteneur qui contient la paire de clés à utiliser lors de la signature de l'assembly avec un nom fort.

    2. GuidAttribute, pour spécifier l'identificateur de bibliothèque (LIBID) de la bibliothèque de types cible.

    3. PrimaryInteropAssemblyAttribute, pour identifier l'assembly en tant qu'assembly PIA (Primary Interop Assembly).

      Remarque :

      Vous pouvez également temporiser la signature d'un assembly lors de la compilation. Pour plus d'informations, consultez Temporisation de signature d'un assembly.

    L'exemple de code suivant applique AssemblyKeyFileAttribute avec un fichier de clé appelé CompanyA.snk et spécifie que cet assembly est un assembly PIA prenant en charge les versions 4.2 et 5.2 de la bibliothèque de types correspondante. Comme le montre l'exemple, vous pouvez envelopper plusieurs versions d'une bibliothèque de types en appliquant des attributs de niveau assembly supplémentaires.

    [assembly:AssemblyKeyFile(@"..\..\CompanyA.snk")]
    [assembly:Guid("97d25db0-0363-1cf-abc4-02608 c9e7553"]
    [assembly:PrimaryInteropAssembly(4, 2)]
    [assembly:PrimaryInteropAssembly(5, 2)]
    

Voir aussi

Tâches

Comment : générer des assemblys PIA à l'aide de Tlbimp.exe

Comment : encapsuler plusieurs versions de bibliothèques de types

Concepts

Génération d'assemblys PIA

Génération d'assemblys PIA (Primary Interop Assembly)