Que signifie «référence a été créé pour l’assemblage interopérable intégré»?

Je reçois l’avertissement suivant:

Une référence a été créée pour l’assembly d’interopérabilité incorporé c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Accessibility.dll raison d’une référence indirecte à cet assembly créé par assembly c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Windows.Forms.dll . Envisagez de modifier la propriété “Embed Interop Types” sur l’un des assemblages .`

Mon assembly contient une référence à la fois à Accessibility.dll et à System.Windows.Forms.dll. Pourquoi est-ce que je reçois cet avertissement?

Par ailleurs, Accessibility.dll a «Embed Interop Types = true», tandis que System.Windows.Forms.dll est défini sur false.

Par MSDN:

“Vous avez ajouté une référence à un assembly (assembly1) dont la propriété Embed Interop Types est définie sur True. Cela indique au compilateur d’incorporer les informations de type interop à partir de cet assembly. Toutefois, le compilateur ne peut incorporer des informations de type l’assembly référencé (assembly2) fait également référence à cet assembly (assembly1) et la propriété Embed Interop Types est définie sur False. ”

Pour répondre à cet avertissement

Pour incorporer des informations de type interop pour les deux assemblys, définissez la propriété Embed Interop Types sur toutes les références à assembly1 sur True.

Cela signifie que vous devez modifier “Incorporer les types d’interopérabilité = true” dans System.Windows.Forms.dll

ou

Pour supprimer l’avertissement, vous pouvez définir la propriété Embed Interop Types de assembly1 sur False. Dans ce cas, les informations de type d’interopérabilité sont fournies par un assemblage d’interopérabilité primaire (PIA).