Maintaining a Microsoft Project 2000 Installation, страница 2

These changes address problems in earlier versions of Office with registry bloat, resiliency and management of registry values.

Where Default Values are Stored

As mentioned earlier, default values are stored within each application in either the application executable (.EXE) or in MSO9.DLL. Storing the default values in the application minimizes hard disk usage and speeds up registry access.

Setup /y no longer works to restore the user registry settings. However, you can use the Office Profile Wizard from the Microsoft Project 2000 Resource Kit to reset your user registry values back to default settings.

ORAPI Does Not Control All Office Registry Values

It is very important to note that not all Microsoft Project registry values are stored within the application and controlled via ORAPI. Only Hkey_Current_User (HKCU) registry values are controlled via ORAPI. All other registry values are written at setup and are located in the MSI registry table, or they are registry values that are directly written by the application at run-time.

To ensure that all user data is written for each user that logs onto a computer, all HKCU registry data that is currently being written at setup, is stored and sorted in the MSI registry table.

Microsoft Project does not provide any resiliency for the MSI registry values or the registry values that do not use ORAPI as they use the Win32 registry API.

The Microsoft Project 2000 Resource Kit contains an Excel workbook called REGKEY.XLS that contains a list of the ORAPI registry values. The ORAPI workbook contains the defaults for each registry setting along with the location of the setting within the registry.


How Does the Office Registry API Work?

In general, when Microsoft Project 2000 needs a value, the following events occur.

1.  Microsoft Project calls ORAPI to read a value.

2.  ORAPI searches for the value in the registry.

3.  If the value exists in the registry, ORAPI returns the value to the application. If the value does not exist, ORAPI locates the default value, found in either Winproj.exe or Mso9.dll, and returns the default value to the application.

The above steps were specific to reading a value from the registry. ORAPI registry values only are written to the registry if the following occurs:

n  The application needs to write a value that is different from the default.

-ORn  The user changed the feature that uses the registry value from the default to a non-default. Therefore, all ORAPI registry values are missing if the registry value was not modified by the application or by the user.

System policies always take precedence when the ORAPI reads or writes a value in the Windows registry. As a first step, ORAPI always checks to see whether a system policy has been set for the entry. If a policy has been set, ORAPI uses the policy value.


File Resiliency

Microsoft Project 2000 improves resiliency by preventing the following common errors.

n  Loading a missing DLL

n  Opening a missing data file (not a user-created data file, but a non-program file needed by Microsoft Project)

n  Finding a valid source

Source Lists

One of the most important items that file resiliency depends on is the source list. Source lists provide the location information necessary for Windows Installer to find original copies of the Microsoft Project 2000 files. Because of its importance, let’s take a look at it before looking at resiliency in more depth.

Source Lists for Microsoft Project 2000 Installation Locations

Applications that rely heavily on network resources for on-demand installation and resiliency are susceptible to source failures if the source location should change for any reason or become damaged. The Windows Installer provides source resiliency for features that are installed on-demand in the form of the source list.

What is a Source List?