0

I am trying to regasm ADODB.dll in a docker container however whenever I run the command, the PrimaryInteropAssemblyName gets added to the "wrong" registry key (I say the "wrong" key but I am currently trying to learn how this witchcraft actually works).

Checking my own development PC, the PrimaryInteropAssembly name is added to: HKEY_CLASSES_ROOT\TypeLib{2A75196C-D9EB-4129-B803-931327F72D5C}\2.8

However in the docker container the PrimaryInteropAssembly name is added to: HKEY_CLASSES_ROOT\TypeLib{EF53050B-882E-4776-B643-EDA472E8E3F2}\2.7

The CLSID for v2.8 does exist, but the PIA Name value isn't added.

Can anyone shed any light on this?

Jonathan Smith
  • 2,390
  • 1
  • 34
  • 60
  • Where did adodb.dll come from? It used to be put in the GAC by the .NET Framework installer, but not anymore since v4.5. There is still a copy of it available in C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies, but that should only be used if you actually have a dependency on 2.7. Instead use the one that's generated in your build directory, its name is Interop.ADODB.dll. Setting the COM Reference's "Embed Interop Types" property to True is by far the best way, no need to deploy it at all. – Hans Passant Jan 08 '22 at 09:35
  • Tried regasm'ing the Interop.ADODB.dll but the PIA name still didnt get added to the registry key for v2.8 of the component and when i try to build in the container I still get: "MSB3283: Cannot find wrapper assembly for type library "ADODB"" – Jonathan Smith Jan 08 '22 at 17:32

0 Answers0