This article pertains to versions 7.2 and 8.0 of DevPartner Studio Professional Edition and BoundsChecker.
Evidence suggests this error is caused by inadequate registry permissions on the installation machine. The user installing DPS usually has administrative rights, for some reason registry branches that the installation needs to modify have been altered to exclude certain groups or users. Because of this, when attempting to register certain dlls and/or regsvr32 fails, the user sees 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.
1. Identify which dll failed to register. During the installation, a message box will popup alerting the user 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.
2. Use regdrop.exe to register the dll. Regdrop is s freeware utility from Addison Software
a. Using Windows Explorer, locate the dll in question.
b. Drag the dll onto the Regdrop.exe icon. This will register the dll.
c. If the registration succeeds, proceed to step 5.
d. If the registration fails, proceed to step 3.
3. Isolate which registry branches are causing the problem. This can be done with regmon.exe from Sysinternals
a. Open regmon.exe
b. Go to Options -> Filter/Highlight. Remove the '*' and replace it with 'regsvr32.exe'.
c. Go to Edit -> Clear Display
d. From 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 the regmon "Result" column.
e. Go back to regmon and File -> Save.
4. Adjust the registry permissions.On Windows XP
a. Using the regmon "Find" feature, find the first/next occurrence of "ACCDENIED".
b. Use Edit -> Reg Jump to open up regedit.exe to the branch in question.
c. Right click on the registry branch and select "Permissions".
d. Set the permissions to allow the user to modify that particular branch.
e. Repeat steps 1 through 4 for each occurrence of ACCDENIED.
On Windows 2000
a. Run regedt32.exe (regedit.exe on Windows 2000 does not allow changing registry permissions so regedt32 must be used)
b. Using the regmon "Find" feature, find the first/next occurrence of "ACCDENIED".
c. Open the affected branch.
d. From regedt32's Security menu item to set the branch's permissions to allow the user to modify that particular branch.
e. Repeat steps 1. through 4. for each occurrence of ACCDENIED.
5. 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.