msxml.dll won't register on 64 bit Windows.


  • When I try to register msxml.dll on a 64 bit OS (e.g., Win7), I get the module "failed to load" error. When I run depends on the dll, depends shows no errors. Copying the DLL to a 32 XP system and registering it succeeds.

    So how do I register this DLL on a 64 bit OS? I tried copying it to the sysWow64 dir and registering it and still it fails. This DLL is needed by 32 bit apps for which there is no 64 bit version and this is keeping clients from upgrading to 64 bit systems. They are stuck on 32 bit XP! But they need to upgrade to our 64 bit application and Windows7 64 bit OS. Unless they can get other 32 bit apps that depend on msxml.dll to work, they cannot upgrade.

    R.D. Holland
    Wednesday, April 13, 2011 2:22 PM

All replies

  • Hi RD,


    Thanks for posting in the MSDN Forum.


    Would you tell me you register you dll via which sort of tool? Is it regasm.exe or regsvr32.exe?


    Have a good day,



    Tom Xu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Friday, April 15, 2011 5:37 AM
  • Hi,

    We are having the same problem with one of our new computers which is 64 bit. The custom inhouse software we use runs off 32 bits, and we need the msxml5.dll. But whenever we try and register it with the regsvr32.exe in the SysWow64 directory. Still no luck


    Any help will be great thanks


    Tuesday, May 17, 2011 9:01 AM
  • I ran into the same error when trying to register MSXML.DLL on Windows 2008 R2 using SYSWOW64\Regsvr32.exe.  "The module msxml.dll failed to load" Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependednt .DLL files. Adynamic link library(DLL) inititialization routine failed.

    Same error with msxml2.dll aswell.

    msxml.dll - file version 8.0.7002.0

    msxml2.dll - file version 8.30.9529.0

    Trying to support a legacy application that uses XML core. Any help would be highly appreciated.

    Wednesday, June 8, 2011 12:39 AM
  • Tom_xu,

    Sorry I did not see your reply earlier. Sometimes I get notified and sometimes not. Perhaps the reply sometimes is marked as spam.

    In any case I used regsvr32.exe. I even tried the version in the wow. The actual customer has a setup.exe that runs. It works on 64 bit XP but not Vista or Win7. I assume that the installer based setup uses self-registration on the dll. I tried registering it manually using regsvr32 to no avail.

    R.D. Holland
    Wednesday, July 20, 2011 2:37 PM
  • Hi R.D. Holland,


    It’s based on my experience you only type “regsvr32” in console, please type “ C:\Windows\sysWOW64\ regsvr32.exe.” in the console to see whether it work. If you only type regsvr32 in the console it will point to “C:\Windows\system32\ regsvr32.exe” as default due to it has been set in the Global variable “PATH”


    If you has any questions, please feel free to let me know.


    Have a good day,



    Tom Xu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Thursday, July 21, 2011 1:35 AM
  • Is there any answer to this problem of trying to register msxml.dll in 64 Bit Windows 7?  I also have legacy software (discontinued Microsoft FRx) that needs to use this.


    Sorry Tom, you did not seem to answer this question.  regsvr32.exe (either version) returns a cannot load dll error.


    Any other ideas?



    Monday, August 8, 2011 3:07 PM
  • Same problem. Tried regsvr32.exe and C:\Windows\sysWOW64\ regsvr32.exe, nothing works on Windows 7.

    Someone plese help !

    Tuesday, May 15, 2012 8:57 PM
  • I was having the same problem with msxml2.dll.  What I ended up doing is copying msxml2.dll and msxml2r.dll from a working Windows XP system from the directory C:\Windows\System32 to my Windows 7 system into the directory C:\Windows\SysWOW64.  I then did the regsrv32 on C:\Windows\SysWOW64\msxml2.dll.

    I am assuming that it might have worked to download a good install from the internet, but all I know is the version that was originally in the SysWOW64 folder was not happy.  I could not register it.

    I hope this helps someone else!

    Thursday, September 6, 2012 3:33 PM
  • Hi RD Holland,

    In 64 bit machine,  "C:\windows\system32\" path is used for 64 bit application,When you run Regsvr32 to register a DLL, you are using the 64-bit version by default.

    you can try following commands  to register the dll:

    cd \windows\syswow64
    regsvr32 c:\filename.dll

    for more information, you can see the following link:

    How do I register a DLL on Windows 7 64-bit?

    Could not register a 32 bit dll in Windows 7 64 bit

    Register a  32 bit dll on windows 7 64 bit

    If you have any question, please contact to me.


    Monday, December 24, 2012 4:18 PM
  • Leaning Hard,

    In windows the path is always your current directory and then %Path% is used if the item is not resolved in the current path. You can verify this by going to the syswow6432 directory and doing the following:

    where regsvr32.exe

    You will see what I just saw:



    Hence when I went to that dir and tried to register the dll, the OS will run the first regsvr32.exe it incounters in the path - the one in syswow64.

    This behavior by the OS allows you to do things such as write a bat file where you can use "cd" to go to a directory and then execute command lines in the context of that directory.

    R.D. Holland

    Monday, December 24, 2012 5:44 PM