No announcement yet.

Error registering DLL file

  • Filter
  • Time
  • Show
Clear All
new posts

  • Error registering DLL file


    I'm having trouble figuring out why a certain DLL won't register via SF9. Full disclosure, I'm using version If this is determined to be a bug that has been fixed, I will consider upgrading.

    The DLL in question is msxml4.dll - Microsoft's XML Core Services 4.0. It is set to auto-register. There is an accompanying file msxml4r.dll (non-registerable), but no other dependencies, certainly none that I am installing. The setup and DLLs are 32-bit, the host and target OS is Win10 64-bit. The setup copies both files fine - directed to %SystemFolder%, they both end up in SysWOW64 as expected. However, it errors when registering msxml4.dll (see screenshot 1). I can confirm that at the time of the error, both files are in SysWOW64.

    Note that the path in the error is system32.
    - If I use regsvr32.exe from system32 pointing to the DLL in system32, it fails.
    - If I point it to the DLL in SysWOW64, it works.
    - If I use regsvr32.exe from SysWOW64, it works, pointing to the DLL in either system32 or SysWOW64 (see screenshot 2).

    Strangely enough, all the other DLLs & OCXs in the project register fine. I don't know what is unique about this file, or how SF9 calls out to register a file, but it not appear to work correctly in this case. Registering manually immediately after the failure using one of the above methods works fine. Running the setup as Admin doesn't seem to have any effect.

    I appreciate any input!


  • #2
    Many Microsoft technologies aren't designed to be distributed as individual files, instead it is recommended that the MSXML4 Windows Installer package is bundled (via Primer Files) and executed as part of your setup. Windows Installer will check if the file needs to be deployed, registered, etc. on the target system.



    • #3
      i face same problem when create 64Bit.exe, .dll Can't Register with 64Bit.exe
      but Solution is
      1. i makes a 32Bit.exe for Register .dll without wizard
      2. import 32Bit exe in 64Bit.exe Primer Files & Makes Shell On Startup


      • #4
        Thanks Ulrich! That definitely works. I guess I was more curious why SF9 couldn't register it when I could manually. But the workaround addresses the problem, so no worries!