C# COM DLL: do I use Regasm, or Regsvr32?

46,992

Solution 1

You need to use regasm.exe to register both the 32 bit and 64 bit interfaces I believe you need to run each of the regasm.exe's in:

C:\Windows\Microsoft.NET\Framework\v2.0.50727

and

C:\Windows\Microsoft.NET\Framework64\v2.0.50727

So... in your case you need to run the regasm.exe in the Framework64\v2.0.50727 folder.

Here's an example we use to register a COM interop DLL for one of our legacy ASP apps:

regasm.exe Hosting.DeviceManager.Power.dll /register /codebase /tlb

Solution 2

If the DLL is build in format of "Any CPU", no matter if you choose regasm in

C:\Windows\Microsoft.NET\Framework\v2.0.50727

or

C:\Windows\Microsoft.NET\Framework64\v2.0.50727

DLL would be registered as 32-bit.

Share:
46,992
Jason
Author by

Jason

Updated on August 09, 2022

Comments

  • Jason
    Jason almost 2 years

    I am building a C# ActiveX DLL... do I use REGASM or REGSVR32 to register it?

    How do I register the 64-bit interface vs the 32-bit interface?