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

2019-01-13 06:35发布

问题:

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?

回答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


回答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.