Sie sind hier: Wissen
Begriff Primary Interop Assembly
Abkürzung PIA
Eintrag zuletzt aktualisiert am 11.10.2010

 Zur Stichwortliste unseres Lexikons

Was ist Primary Interop Assembly ?

Primary Interop Assembly (PIA) ist ein RCW von einem Hersteller. Er muss vom Hersteller signiert sein.
Somit ist eine PIA ein „Offizieller“ RCW. Eine PIA ist mit mit [PrimaryInteropAssemblyAttribute] annotiert

Hersteller: tlbimp tlbfile /primary /keyfile:filename /out:assemblyname
Nutzer: Registrierung mit regasm xy.dll bzw. setzen einer Referenz in Visual Studio
Visual Studio sucht beim referenzieren von COM-Komponenten erst nach der PIA

Details: Interoperabilität zu COM

.NET-Komponenten können COM-Komponenten nutzen. Andersherum kann eine .NET-Anwendung auch als COM-Komponente aufgerufen werden. Die Vermittlung zwischen COM und .NET ist gelöst durch Proxy-Objekte. COM-Komponenten werden von .NET aus über einen sogenannten Runtime Callable Wrapper (RCW) angesprochen. Der RCW setzt die COM-Schnittstellen in .NET-kompatible Schnittstellen um. Wenn ein Hersteller für eine COM-Komponente einen RCW mitliefert, dann spricht man von einer Primary Interop Assembly (PIA).
Ein RCW kann erstellt werden mit dem Kommandozeilenwerkzeug tlbimp.exe aus dem .NET Framework SDK oder durch Generierung einer Referenz auf eine COM-Komponente in einem Visual Studio-Projekt. Eingabe für tlbimp.exe kann eine COM-DLL / -EXE mit integrierter Typbibliothek oder eine eigenständige COM-Typbibliothek (.tlb-Datei) sein.
.NET-Komponenten werden von COM-Clients über einen COM Callable Wrapper (CCW) angesprochen. Normalerweise stellen die .NET-Entwicklungswerkzeuge einen CCW automatisch zur Verfügung. Ein CCW kann aber auch selbst entwickelt werden. Ein CCW kann mit tlbexp.exe erstellt werden.
Die Interoperabilität zu COM wurde mit .NET 2.0 verbessert durch den vereinfachten Umfang mit Funk¬tionszeigern und Arrays.

“NoPIA”

Neu ist .NET 4.0 ist, dass man den RCW-Code direkt in die aufrufende Assembly integrieren. Wrapper-Assemblies bzw. PIAs entfallen dann. Visual Studio 2010 standardmäßig die benötigen Informationen über die referenzierte COM-Bibliothek direkt in die aktuelle Assembly, wobei dabei eine Beschränkung auf jene Aspekte, welche von dieser auch wirklich verwendet werden, stattfindet. Um dies zu verhindern und somit die Erstellung von PIAs zu veranlassen, ist die Eigenschaft Embed Interop Types bei den hinzugefügten COM- Bibliotheken auf false zu setzen. Microsoft nennt diese neue Funktion „Embedded Types“ oder “NoPIA”.

Beratung & Support

Schulungen zu diesem Thema

 Anfrage für eine individuelle Schulung zum Thema Primary Interop Assembly PIA  Gesamter Schulungsthemenkatalog