52 votes

Que signifie "référence à l'assemblage d'interopérabilité incorporé"?

Je reçois le message d'avertissement suivant:

Une référence a été créée pour embedded assembly interop c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Accessibility.dll en raison d'une référence indirecte à l'assemblée créé par l'assemblée c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Windows.Forms.dll. Pensez à changer le " Embed Interop Types de propriété sur l'assemblée.`

Mon montage contient une référence à la fois Accessibility.dll et System.Windows.Forms.dll. Pourquoi ai-je reçu cet avertissement?

Btw, le Accessibility.dll a 'Incorporer les Types Interop=true" alors que System.Windows.Forms.dll a la valeur false.

60voto

KreepN Points 5025

Par la MSDN:

"Vous avez ajouté une référence à un assembly (assembly1) qui a l'Incorporer les Types Interop propriété est définie sur True. Cela indique au compilateur d'intégrer l'interopérabilité des informations de type de celle de l'assemblée. Cependant, le compilateur ne peut pas incorporer de l'interopérabilité des informations de type de cette assemblée, parce qu'une autre assemblée que vous avez référencé (assembly2) fait aussi référence à cette assemblée (assembly1) et a l'Incorporer les Types Interop propriété est définie sur False."

Pour répondre à cette alerte

Pour intégrer l'interopérabilité des informations de type pour les deux assemblées, définissez les Incorporer Interop Types de propriété sur toutes les références à assembly1 de Vrai.

Cela signifie que vous devez modifier 'Incorporer les Types Interop=true' sur System.Windows.Forms.dll

ou

Pour supprimer l'avertissement, vous pouvez définir les Incorporer Interop Types de propriété de assembly1 à False. Dans ce cas, l'interopérabilité des informations de type est fourni par un PIA (primary interop assembly).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X