A primary interop assembly contains type definitions (as metadata) of types implemented with COM.
Only a single Primary Interop Assembly can exist, which needs to be signed with a strong name by the publisher of the COM type library.
One Primary Interop Assembly can wrap multiple versions of the same type library.
A COM type library imported as an assembly can be a Primary Interop Assembly only if it has been signed and published by the same publisher.
Therefore, only the publisher of a type library can produce a true Primary Interop Assembly, that can be considered as the unit of an official type definition for interoperating with the underlying COM types.
Only a single Primary Interop Assembly can exist, which needs to be signed with a strong name by the publisher of the COM type library.
One Primary Interop Assembly can wrap multiple versions of the same type library.
A COM type library imported as an assembly can be a Primary Interop Assembly only if it has been signed and published by the same publisher.
Therefore, only the publisher of a type library can produce a true Primary Interop Assembly, that can be considered as the unit of an official type definition for interoperating with the underlying COM types.