Installation Error 1904 .dll failed to register

0 Likes

Problem:

DPS installation fails with: Error 1904 specifying a particular DLL can not be registered.

Resolution:

Identify which dll failed to register. During the installation, a message box will popup alerting you and detailing the error and offending file is shown. However, to be safe, you may want to generate an MSI log for support to analyze in the event that other errors have occurred in the installation.

DAMTSHelp.dll

TXCOM.dll

NMISAPI.dll

NMScriptDbg.dll

Usually, this error is caused by inadequate registry permissions on the installation machine. Though you have administrative rights, for some reason registry branches that our installation needs to modify have been altered to exclude certain groups or users. Because of this, when we attempt to register certain dlls, regsvr32 fails and you see the 1904 error. It is uncertain as to why permissions are being altered though it must be noted that our inability to install is a symptom of the problem not the cause; software from other vendors may exhibit similar behavior.

The Solution:


  1. Use regdrop.exe to register the problem dll. Regdrop is freeware utility from http://www.addisonsw.com/ >
  2. Using Windows Explorer, locate the dll in question.
  3. Drag the dll onto the Regdrop.exe icon. This will register the dll.
  4. If the registration succeeds, proceed to step 4.
  5. If the registration fails, proceed to step 2.
  6. Isolate which registry branches are causing the problem. This can be done with regmon.exe from http://www.sysinternals.com/
  7. Open regmon.exe.
  8. Go to Options -> Filter/Highlight. Remove the '*' and replace it with 'regsvr32.exe'.
  9. Go to Edit -> Clear Display
  10. From either the command line or Start -> Run, use regsvr32.exe to register the dll. The regmon window will be populated with all of the registry entries that regsvr32 is performing, including any that fail. Operations that fail to open/modify registry branches will show 'ACCDENIED' in regmon's 'Result' column.
  11. Go back to regmon and File -> Save.
  12. Adjust the registry permissions. On Windows XP Using regmon's 'Find' feature, find the first/next occurrence of 'ACCDENIED'.
  13. Use Edit -> Reg Jump to open up regedit.exe to the branch in question.
  14. Right click on the registry branch and select 'Permissions'.
  15. Set the permissions to allow the user to modify that particular branch.
  16. Repeat steps i. through iv. for each occurrence of ACCDENIED.

  • On Windows 2000 Run regedt32.exe (regedit.exe on Windows 2000 does not allow changing registry permissions so regedt32 must be used)
  • Using regmon's 'Find' feature, find the first/next occurrence of 'ACCDENIED'.
  • Open the affected branch.
  • From regedt32's Security menu item to set the branch's permissions to allow the user to modify that particular branch.
  • Repeat steps i. through iv. for each occurrence of ACCDENIED.

Finish the Installation. Depending on the state of the install, merely registering the dll may have made the product fully functional. Unfortunately, this is not always the case and they may have to choose a 'Repair' install from Add/Remove programs or even fully reinstall the product.

Old KB# 11089
Comment List
Anonymous
Related Discussions
Recommended