Project 2000. Windows Installer, страница 8

n  MSIINST then opens the package containing the included database(s). It looks for an appropriate language transform (.MST) for the user's system.

n  It first tries the User's default language, then the system, then English.

n  If there is a transform available, it will be applied when MSIEXEC.EXE is run.

n  If the operating system of the computer is Microsoft® Windows® 95/Microsoft® Windows® 98, MSIINST will use the decompressed files to run the install. If the operating system of the computer is Microsoft® Windows NT® or Microsoft® Windows® 2000, the following are true:

n  If the user is not an administrator on the machine and Project setup has been run with the /jm switches: MSIINST looks for an existing install of the installer with which to run. This allows non-administrators to upgrade to newer versions of the installer if the product code has been assigned to them. (Product codes can be assigned in Windows 2000)

n  If a previous version of the installer cannot be found, or the user is an administrator on the machine, MSIINST attempts to register the decompressed files as the installer service. These files will be used to run the install. MSIINST then calls MSIEXEC.EXE against the included database(s). The default database is named INSTALL.MSI for Microsoft Project 2000. It is called with a basic logging /lv switch, which overrides any policy settings. The log file is created in the temporary directory along with the other decompressed files. You must retrieve the log file before completing the installation or it will be deleted. You can override the default command line to generate a full log elsewhere. The basic command line (currently) for a normal install is:

msiexec /I instmsi.msi /lv instmsi.log /qb+

To override this, you can run the following:

msiexec /I instmsi.msi /lv c:\instmsi.log /qb+

Or the suggested:

msiexec /I instmsi.msi /lv* c:\intmsi.log /qb+

Note

In the example above, the command line switches are passed directly to MSIEXEC.EXE. The same functionality happens when including these switches on the SETUP.EXE command line.

1.  The included database copies files as needed, based on file versions. COPYMSI will always copy MSI.DLL, MSIHND.DLL, and MSIEXEC.EXE regardless of file versions. This allows you to install older versions of the installer over your existing copy. COPYMSI is not included with Office 2000.

2.  Next extension and OLE information is registered.

a.  On Windows 95/98, this is accomplished via the following commands: MSIEXEC /d is called to register the extension .msi and .msp. MSIEXEC /y msi.dll is called to register other OLE information. These steps are performed via custom actions to prevent the installer descriptors from being created. The bootstrapping process for the installer necessitates these steps, which would normally not be acceptable for a fully functional application using the installer.

b.  On Windows NT, the special command line switch MSIEXEC /regserverCA is called to perform the basic OLE, Service, and extension registration. Unlike MSIEXEC /regserver, the service is not stopped by this call. This, again, is necessary because it is called from within the running service.

3.  The verbs for the Windows Installer are then registered from the registry table in the installer database. Again, these cannot be written from the verb or extension table because of the procedure the installer uses for installing.

4.  If a reboot is detected as necessary, and the installation was run in a mode that did not suppress reboots (msiexec /q) the installer will prompt you to reboot. Note that versions of Internet Explorer 4.01 and later will use the MSI.DLL when available, and this will generally require a reboot to completely release files in use. Windows installer version 1.1 will probably attempt to force these applications to close and restart.