Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

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

  • No labels