What does "reference was created to embedded interop assembly" mean?
I am getting the following warning:
A reference was created to embedded interop assembly
c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Accessibility.dll
because of an indirect reference to that assembly created by assemblyc:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Windows.Forms.dll
. Consider changing the 'Embed Interop Types' property on either assembly.`
My assembly contains a reference to both Accessibility.dll and System.Windows.Forms.dll. Why am I getting this warning?
Btw, the Accessibility.dll has 'Embed Interop Types=true' while System.Windows.Forms.dll has it set to false.
Per the MSDN:
"You have added a reference to an assembly (assembly1) that has the Embed Interop Types property set to True. This instructs the compiler to embed interop type information from that assembly. However, the compiler cannot embed interop type information from that assembly because another assembly that you have referenced (assembly2) also references that assembly (assembly1) and has the Embed Interop Types property set to False."
To address this warning
To embed interop type information for both assemblies, set the Embed Interop Types property on all references to assembly1 to True.
This means you must change 'Embed Interop Types=true' on System.Windows.Forms.dll
or
To remove the warning, you can set the Embed Interop Types property of assembly1 to False. In this case, interop type information is provided by a primary interop assembly (PIA).