User Experience - Uninstall
Required:
The product must provide a fully automated uninstaller that removes the program files, folders, and Registry entries for the 32-bit Microsoft Windows 95 and Windows NT operating systems.
[HKEY_LOCAL_MACHINE]\SOFTWARE\Microsoft\Windows\Current Version\Uninstall\YourProductName
DisplayName=REG_SZ:<your product name and version number>
UninstallString=REG_SZ: c:\apps\myapp\uninstll.log /h
Required:
All files and folders copied onto the hard disk must be removed, with certain exceptions.
Exception:
User data files including the following should remain on the hard disk:
Tip: Remember to remove .gid files created by your Help. Create a zero-length (0) file with the same name at install time.
Required:
The uninstaller must remove all advertisements and shortcuts placed anywhere in the Start Menus by its installer that are associated with the component that is being removed.
Recommended:
On Windows NT a user must not be able to uninstall an application if that user does not have adequate security permissions to complete the uninstall. In this situation the application must provide an appropriate error message such as "You do not have adequate security permissions to successfully uninstall this application. Please contact your system administrator." A system administrator should be able to uninstall all applications that were installed (by a user or administrator) using the default installation.
Registry, System & Shared Components - Uninstall
Required:
The uninstaller must remove all Registry entries (with the exception of keys that might be shared by other programs).
Required:
The uninstaller must not decrement or remove any core component, in particular Microsoft Foundation Class Library (MFC) DLLs, as well as ODBC & DAO DLLs. Please see http://www.microsoft.com/windows/thirdparty/winlogo/ for the most up-to-date and complete listing of all Windows NT and Windows 95 core components. The core component list is updated regularly. It is the vendor's responsibility to check the web for the most up to date list.
Required:
The uninstaller must accurately decrement the count on all components your application uses that are installed as shared components.
Required:
If the Reference Count is at zero (0) and you will not be removing the component, you must leave the Reference Count at 0. This requirement prevents installers from inaccurately incrementing the Shared Count if the component was on the system, but was not registered.
Recommended:
If your installer finds a shared component already on the system and not registered, the SharedDLL (see section 6.2.2) count should be incremented by 1 plus the number of clients being installed. For example, if you install your application with 3 clients using a shared component, your installer will bump the SharedDLL count by 3. But if the shared component was already on the system and no SharedDLL exists for it (that is, the previous installer did not create the refcount), then set the SharedDLL count to 4. That way, when your application is uninstalled, it leaves the shared component on the system with a refcount of 1.
Required:
The uninstaller must remove itself
Uninstall Support of a Networked or Managed environment
Recommended:
Administrators should be able to uninstall and unadvertise (remove shortcuts) the application by means of a centrally managed Group Policy Template or through changes to user Profiles. Refer to section 6.2.5 for more information on the use of Policy & Policy Templates.
Managed Installation Service - coming with NT 5.0
Microsoft is working on new technologies to greatly simplify installation and uninstallation processes by the use of an operating system installation manager. This new installation manager will act as a gateway to the registry, handling all ref counting, component tracking, installation and uninstallation. Microsoft is working with major installation vendors to release tools to enable vendors to create install packages to work with this new system. Use of this technology will become a requirement in the NT 5.0 timeframe. Today's installation requirements and the recommended changes in registry usage reflect incremental steps towards a model in which registry entries will be managed by a central OS service.
Applications that are developed using the OS-provided installation service will be compliant by default with the majority of the Logo installation & uninstallation requirements.
Recommended:
The application should make appropriate use of user Profiles. In the NT 5.0 timeframe this means: