Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.5.0-incubating
-
None
-
None
Description
Visual studio makes available when compiling a .NetFramework 4 module, for references that are Interop/com a new option "Embed Interop Types".
This option swaps between using /reference to /link and also manages Copy Local where an embedded /link[ed] item doesn't need to be copied to the output location.
About embedded Interop types Vs Primary Interop Assemblies (PIA)
Where MS suggest
- a preference for embedded as it is more flexible for multiple versions of an interface
- Interop that is not embedded, should ideally be signed and identified as primary for security.
http://msdn.microsoft.com/en-us/library/vstudio/3y76b69k%28v=vs.100%29.aspx
http://msdn.microsoft.com/en-us/library/dd997297(v=vs.100).aspx
About compilation
http://msdn.microsoft.com/en-us/library/538aes2a%28v=vs.110%29.aspx
http://msdn.microsoft.com/en-us/library/dd264728(v=vs.110).aspx
My understanding is that these Interop modules are not attached/kept as output for maven, rather rebuilt in downstream as necessary.
It seems that if not embedding, then it is more appropriate to have the Interop as a seperate module. Makes me wonder if COM_REFERENCE is an appropriate dependency if not embedding, could COM_REFERENCE imply embedding?