Jump to content

This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.

Run Time Error

1 reply to this topic

Donald Bristol

Donald Bristol
  • Members
  • 35 posts

Posted 09 July 2001 - 19:26

Can anyone offer a work-around to this error message?
I receive the following error when my installation tries to replace this DLL with a later version.
The component property is: Never Overwrite =No.
My understanding of this property is, set the Never Overwrite property to Yes so that you don't replace a current version of a file with the new version that you are installing. Set this property to No to always have the file overwritten during installation.

Error 1931.  The windows Installer Service cannot update the system file c:\winnt\system32\scrrun.dll because the file is protected by windows. You may need to update your operating system for this program to work correctly.


  • Members
  • 3 posts

Posted 13 July 2001 - 20:53

Is the installation running on a Windows 2000 machine? or maybe ME?

Windows 2000 introduced a new feature called "system file protection".  Certain files that are deemed by Microsoft to be core operating system files are given a special attribute.  Windows will not permit you to replace these files.  The only way to update them is to apply an operating system service pack.  (obviously, if MS can write an exe to do it, so can we, but as far as I know, they haven't told anyone how to unprotect a system file)

This file exists with Windows 2000, I have encountered it when trying to update ADO (I was distributing MDAC 2.5, which is included with w2k, but I had to write a condition to preclude MDAC on w2k mcahines because I had this same problem).  Windows ME might have this feature as well, I'm not sure.  

The best advice that I can give you:
If your app cannot run with the older file, identify an operating system update for 2000 that includes it, and make it a requirement.
- or-
If your app will run with the older dll, add a condition to your component to prevent it from being installed on a w2k machine.

-- Jeremy