View Full Version : scrrun.dll (any reasonable workaround??)

03-08-2004, 08:10 PM
I'm looking to see if anyone can offer some advice as to how I might deal with a problem I'm having. The issue is that we are distributing an application that uses the dll scrrun.dll. In some instances we are encountering this already installed on some machines with a version lower then the one we are distributing. On Windows2000 and XP units this is a Windows Protected File (WPF). So when we try to update it to a newer version we get the error message 1931. Error 1931 is a Windows Installer error that prevents a user from overwriting system files. This is because Microsoft has a list of about 2600 files that are protected by the operating system. The files can be updated only using Microsoft service packs, hot fixes, upgrades or Windows Updates.

What we are seeing is that this dll is not always there (installed) so we need to install it. But even when the option to never overwrite is chosen from the advanced features it the error message still is generated. We are distributing version yet even on new versions of XP we see a version Once the 1931 error is encountered it seems the Installer does not finish out the install and the application won't work correctly.

In each case the people reporting this problem say they have applied all the patches, hot fixes, Service packs etc. The only way we have gotten around this is talking them through a manual delete, Unregister and re-registration of the new version. Naturally this not practical for the number of users we are selling to and now seeing this issue on their units (between 5 - 10 %) of all new installs.

The reported fix indicates methods that have not worked. I think if I deselect W2000 and XP as the target systems for this dll it won't install it when needed. It seems that this problem may be the result of a legacy system or option that installs an older version of scrrun.dll.

We are using InstallShield Express v5

Any help are suggestions will be greatly appreciated.

03-10-2004, 01:47 AM
May it help, if you use a requirement, which checks, if there is the file installed, and only, if there is NO FILE or an older File on the System, then you install the file...

This shoult prevent IE from installing the File, if it exists, and the Setup-Process will not be interupted.


11-10-2004, 08:23 AM
As a quick solution, you can include the latest version of the SCRRUN.DLL in your own merge module with the following condition for the SCRRUN component:

"Version9X=400 OR Version9X=410 OR Version9X=490 OR VersionNT=400"

The condition will install the merge module on non-NT5 platforms (ie. any platform below and including NT4)

The best approach is to install the platform-dependent Windows Script Host package that is issued by Microsoft: "http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp"

This way, the WSCRIPT.EXE will match with the correct version of the SCRRUN.DLL component.