Visual Studio Serviceability Guidelines

As a distributor of a Microsoft Visual Studio 2008 Shell (integrated mode) application, you must support the ability to provide software updates for your application after it is deployed. To do this, you must have deployed your application as a Microsoft Installer (MSI) file. Such deployment enables software updates provided by Microsoft to be redistributed by Web download and consumed by your customers without custom intervention.

Serviceability Requirements

The concept of serviceability for integrated Shell-based applications highlights three key issues.

Redistribute by Using an MSI

You must use an MSI to redistribute your application because an MSI preserves product identity and makes sure that the physical location of the application bits on the client computer. Merge modules (.msm files), on the other hand, do not provide such assurances and should not be used.

Accounting for Custom Actions

Custom actions are nonstandard installation directives in an installer program. Custom actions change parameters such as file locations, registry settings, user settings, or other installation items. Additionally, custom actions might manipulate data at installation time. Following are issues to consider when you provide custom actions:

  • Every install-time custom action must have a corresponding custom action to undo the action when the user uninstalls the application. Failing to provide corresponding uninstall custom actions causes a user's computer to only partially uninstall the application.

  • A custom action that relies on a specific version of a file or hash values will fail when software updates change these versions or hash values. If your deployment includes such a scenario, you must manually update these values. An additional problem occurs if versions of a file or hash values are shared between product versions. Avoid this dependency whenever possible.

Accounting for Shared Files

Shared files have the same names and are installed to the same location by multiple products. These products may differ in version, Stock Keeping Unit (SKU), or both, and the products can co-exist on a customer's computer. However, shared files create serviceability problems for several reasons:

  • Servicing shared files is problematic because more than one product uses the shared filed. Therefore, updating shared files can cause application compatibility issues.

  • Installers for products that share files count references to the shared files. Therefore, uninstalling a product does not affect shared files beyond decrementing the count of installed instances.

  • The Quick Fix Engineering (QFE) installer reverts versions of files to the versions of the products that the QFE installer serviced. This process potentially breaks an application that had delivered an updated shared file.

For more information, see Patch Management, Understanding Patch and Update Management: Microsoft’s Software Update Strategy, How To: Implement Patch Management, and Choosing a Software Update Management Solution on the Web.

See Also

Concepts

Visual Studio Shell (Integrated Mode) Setup Guide