NMaven and COM Interop
When Visual Studio compiles code that uses a COM object, it creates a wrapper dll. For example, compiling code in MyProject that uses Shell32.dll will result in both MyProject.dll and Interop.Shell32.dll being created.
This also needs to happen if there is a transitive dependency-- if OtherProject depends on MyProject, and MyProject uses Shell32.dll, then Interop.Shell32.dll also needs to be available when building OtherProject.
Requirements
- ActiveX/COM objects must be pre-installed on the build system. NMaven will not do the installation.
- Adding ActiveX/COM from VS "Add Reference" should update the POM information with a <dependency> with <type>com_reference</type>.
- Deleting ActiveX/COM reference should remove the com_reference dependency from the POM.
- Adding ActiveX/COM from "Add Maven Artifact" local or remote is not allowed and should prompt a meaningful error message.
- Building a project with ActiveX/COM references should successfully build if the referenced ActiveX is pre-installed in the system.
- Building a project with ActiveX/COM references but the actual ActiveX/COM is not in the system should prompt a meaningful error message.
Questions
Should Interop.Shell32.dll be generated at build time every time?
Or should it be stored in the repository alongside MyProject?
References
Labels
