How to do RegAsm so that it cover 32-bit and 64-bit?
Asked Answered
B

3

23

I have a DLL file prepared by C# and my system is Windows 7 64-bit. When i apply the RegAsm its not adding the registry to 64-bit path but only adding it to 32-bit path.

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /register /codebase "C:\o.dll"

then if i check my GUID in regedit.exe i see that i have it only in 32-bit registry path: HKEY_CLASSES_ROOT\CLSID\{... my guid is found here ....}

instead of HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{... not found my guid ...}

As a result i have other issues for this. Can anyone please suggest what is going on and why its not making 32-bit and 64-bit registry entries?"

Bloodred answered 27/6, 2014 at 12:25 Comment(1)
Is the parameter /register still valid? I found nothing here in the docs learn.microsoft.com/en-US/dotnet/framework/tools/…Weissmann
F
28

You have it backwards. The Wow6432Node is where the 32-bit specific data goes. Use the 32-bit regasm (from the Framework directory, not the Framework64 directory) to have your component registered in the Wow6432Node.

Flews answered 27/6, 2014 at 12:52 Comment(0)
F
15

also, you probably compiled your dll with AllCPU option try to compile with x64 and/or x86 option and register like you do

  • for x64 - "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /register /codebase "C:\x64\o.dll"
  • for x86 - "C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /register /codebase "C:\x86\o.dll"

P.S. its 5yo question, but may be help to other peoples

Flap answered 26/7, 2019 at 13:30 Comment(0)
E
-1

On my 2016 windows server it was the opposite, it was an old dll that needed to be registered using the "Framework" folder, not the "Framework64" folder: "C:\windows\Microsoft.net\Framework\v4.0.30319\regasm" /register /codebase "full path to dll here"

Epoch answered 18/2, 2020 at 19:34 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.