24
votes

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?

2

2 Answers

34
votes

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
2
votes

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.