What are the Wise custom Actions and what do they do?

Article:HOWTO8405  |  Created: 2007-12-18  |  Updated: 2009-01-06  |  Article URL http://www.symantec.com/docs/HOWTO8405
Article Type
How To




Question
What are the Wise custom actions and what do they do?

Answer

Wise Custom Actions

Windows Installer Editor uses custom actions to add functionality that is not available with Windows Installer's standard actions. When you use certain features, such as custom actions that call a .dll, Wise custom actions are added to the installation.

Caution

Removing Wise custom actions might cause problems with the installation.

The Windows* Vista Logo Program requires you to document every custom action in an installation. This applies to the Wise custom actions as well as the ones you add. If you plan to certify an installation for Vista, use the information in the following table to document the Wise custom actions.

You document the custom actions on the Description tab that appears on the details dialog for all custom actions.

Wise Custom Actions

Custom Action

Purpose

ClearDisableUAP

Checks the version of Windows on the destination computer. If it is less than six (earlier than Windows Vista), then it clears the DisableUAP property.

When User Account Control is disabled, the option to install for all users or for the current user on the installation's User Information dialog is hidden. If the installation has User Account Control disabled, but is run on a version of Windows Installer earlier than 4.0, then that option on the User Information dialog is shown. This is the default behavior for earlier versions of Windows Installer.

ConfigureWebUI

  • Inspects the destination computer to see if the Web installation can be installed.
  • Loads all the information out of the tables and configures the properties needed to properly display the Web dialogs based on the destination computer.
  • Populates the list of existing Web sites that appears in the Web dialogs when installing to an existing site.
  • Checks for WISE_CONFIG_INPUT_PATH and WISE_CONFIG_OUTPUT_PATH to determine if Windows Installer Editor should generate or read in settings to or from a configuration file.

DiagnosticAppSearch

Enumerates the entries in the AppSearch table and evaluates the expressions using the MSIEvaluate Property function. It then retrieves the value of the property and reports the results.

DiagnosticCheckDiskSpace

Evaluates the disk costing and identifies computers that don't meet the requirements. The MsiVerifyDiskSpace function calculates the costing and validates the amount of disk space. The following properties are used to display the amount of disk space required and available on the destination computer:

  • PrimaryVolumePath
  • PrimaryVolumeSpaceAvailable
  • PrimaryVolumeSpaceRequired
  • PrimaryVolumeSpaceRemaining

DiagnosticCheckDotNet

Determines if .NET is required by this installation.

The Preflight Instrumentation determines if this check is required by checking the MsiAssembly table for entries with 0 in the Attributes column. If the check is not required, the Preflight Instrumentation does not insert this check.

The test first ensures that there is a .NET assembly in the package. It then retrieves from the registry the versions of .NET that are installed. If a version of .NET is installed, it returns success and lists the versions installed. If no version is installed the test fails. This check is inserted after the launch condition check.

DiagnosticCheckExecuteLocally

Evaluates type 34 or type 50 custom actions, which launch a file that is expected to exist on the destination computer. Once the test obtains the application path and ensures that it is valid, it calls the load library to ensure the application can be loaded and returns success if the application succeeded, failure if not.

DiagnosticCheckInUseFiles

Tells the user how many files in the preflight installation are in use. The message it returns is: Checked x files (OCX, EXE, and DLL files only), y are in use.

DiagnosticCheckLaunchCondition

Determines which launch conditions succeed and which fail. It enumerates the LaunchCondition table and evaluates the condition using the MsiEvaluateCondition API function.

During preflight instrumentation, Windows Installer Editor determines if any actions were removed in the InstallExecuteSequence before the LaunchCondition action. If actions were removed, Windows Installer Editor cannot determine if the launch condition failed because of the removed action or because of the condition. Preflight instrumentation sets the property WISEDIAGLAUNCHWARN to 1 to indicate that Windows Installer Editor cannot determine the reason the launch condition failed.

DiagnosticCheckPatchExistence

Based on the patch GUID, checks if the patch is already installed. If it is, it returns a failure; otherwise, the test passes.

DiagnosticFileAssociationConflict

Processes the Extension table and checks the registry for support for each extension. This test opens the registry key for the extension. If the key exists, then the extension is already registered. The existing value of the key is compared with the ProgId to be registered; if they match, the same application re-registers the same extension. If they do not match, the application being installed overwrites the existing extension. If the key is empty, the extension is registered but no application is associated with it.

DiagnosticLaunchWeb

During Preflight Instrumentation, extracts URLs from the DisplayURL, DownloadFile, and PostToHttp custom actions. It puts them in a table, WiseUrlDiag, which is processed on the destination computer.

First, the test ensures that the connection can be opened to the specified URL; then, the content is downloaded. The test then translates the result into text.

DiagnosticManagedFileCheck

Ensures that files that have been distributed throughout the environment are known and tested. This test ensures that a given computer is in a well known, managed state and that testing and conflict management operations are not invalid in the production environment.

DiagnosticMarkBeginRun

Indicates the beginning of the preflight test. Also determines if the application that the preflight package is testing is already installed.

DiagnosticMarkEndRun

Indicates the end of the preflight test and that the .MSI was fully processed. Preflight Analysis uses the DiagnosticMarkEndRun test to determine if a run is incomplete.

DiagnosticOpenDocExtCheck

During Preflight Instrumentation, builds a list of document extensions from the OpenDocument custom action and saves the list in the WiseExtDiag table. On the destination computer, checks the registry for support for each extension.

This test tries to open the registry key associated with the extension. If it successfully opens the key, then an association exists. Otherwise, no association exists.

DiagnosticPayloadInstalled

Determines which files can be installed based on Windows installer file versioning rules. The message it returns is: There are x files in this installation, y files will be installed.

DiagnosticSecurityCheckFileRead

DiagnosticSecurityCheckFileWrite

DiagnosticSecurityCheckRegistryRead

DiagnosticSecurityCheckRegistryWrite

Iterate through the files or registry keys and values that can be installed by the installation and query the system for permissions to create, access, and update files or values.

Build a list of all securable objects from the File and Registry tables. For objects that exist, the test reads the security descriptor. For each profile on the system (read tests) or the installer's account (write tests), the test reads each security descriptor's access control list and determines the user's level of access to the object. For objects that do not exist (Example: objects that will be installed), the parent object's access control list is used to determine the access level. The test also reads and applies information from the LockPermissions table to gather additional security information (read test only).

ModifyXMLFiles

Performs variable replacement within an .xml file.

NalpLaunchCA

If you add Nalpeiron support to an installation, and you choose to add support for Control Activation, this launches the Control Activation.exe after your installation finishes on the destination computer.

NalpRemoveLicense

NalpRemoveLicenseSetProp

If you add Nalpeiron support to an installation, these deactivate the Nalpeiron license when your application is uninstalled from the destination computer.

PopulateVirDirs

Populates the list of existing virtual directories for a given site when installing to an existing virtual directory.

SetARPINSTALLLOCATION

Sets the ARPINSTALLLOCATION property to the value of INSTALLDIR.

SetPatchMode

Sets the REINSTALL property to the list of features in the previous version of the user's application and sets the ADDLOCAL property to the list of features, if any, that were added to the installation in the new version of the application. This action is added to all installations but affects only installations that use patching.

SetPatchReinstallMode

Sets the REINSTALLMODE property to "omus" (the Windows Installer default) for patches. See REINSTALLMODE Property in the Windows Installer SDK Help. This action is added to all installations but affects only installations that use patching.

SetWizardProperty

Determines what user interface wizard to display in the maintenance mode.

SetWizardProperty1

Determines what user interface wizard to display in the regular installation mode.

ViewLog

(Windows Installer 4.0 or later only.) Displays the installation log when any of the logging options on the Windows Installer Options page are marked, and the end user marks the View the install log check box on the installation's Exit dialog.

WiseAltStartup

When you add a custom action that calls a .dll with parameters, this action is added to save the current state of properties for use by the custom actions running in deferred mode.

WiseCleanup

When you add a custom action that calls a .dll with parameters, this action is added to clean up any temporary files left over from the custom action.

WiseFindSqlClientTools

Sets the property WiseOsqlCmd to the command line to launch the Osql tool.

WiseFirewallInfo

Gathers information about the Windows Firewall during installation on Windows XP SP2, Windows Server 2003 SP1, and later.

WiseGetASPNETUser

Sets Windows Installer properties (ASPNET1.0_USER, ASPNET1.1_USER, and ASPNET_USER) containing the names of the ASP.Net users. These can be used to grant access to a user during installation.

WiseGetDotNetVersion

Sets the property DOTNETFX to 1 if at least one version of .NET framework is installed. Also sets various properties to 1 to indicate which versions of .NET framework are installed (Example: DOTNETV1.0.3705).

WiseGetIEVersion

Sets Windows Installer properties containing the version of Internet Explorer installed on the destination computer. These can be used for launch conditions to ensure that the computer has a required version of Internet Explorer installed. IEVERSION contains the version in simplified form, and IEVERSIONEX contains the complete version.

WiseGetIISFeaturesEnabled

Sets properties (CGIENABLED, ISPAIENABLED, ASPENABLED, ASPDOTNETENABLED, SSIENABLED, IDCENABLED, FPEXTENABLED, and WebDAVENABLED) to show which features are enabled in IIS. This is useful for setting launch conditions to ensure that the destination computer has the required environment for the installation.

WiseGetIISVersion

Set a property with the major IIS version (IISVERSION).

WiseGetSQLServers

Uses the WiseOsqlCmd property to call osql to get the list of available SQL servers. Then it reads the property WiseSqlParam to get the name of a property that is used by a combo box in the ComboBox table. It then fills that combo box with the list of SQL servers.

WiseGetSQLServerVersion

Sets the property SQLSERVERVERSION to the version of SQL Server (or MSDE) installed on the destination computer.

WiseIISValidateInput

Validates input for the Web dialogs. (Example: It verifies that port numbers are within range and IP addresses are formatted correctly.)

WiseNextDlg

Determines the dialog to display when the end user selects the Next button.

WisePrevDlg

Determines the dialog to display when the end user selects the Back button.

WiseRegComPlus

Registers (on installation) or unregisters (on uninstall) MTS/COM+ components that are specified on MTS/COM+ page.

WiseRemoveFirewall

During an uninstall, undoes changes that the installation made to the Windows Firewall. (Windows XP SP2, Windows Server 2003 SP1, and later.)

WiseSetAssemblyFrameworkProperties

Scans the MsiAssemblyName table to find the .NET Framework version associated with each component and its related .NET assembly and then sets a property with the results. This ensures that, when the Execute Install method on this assembly check box is marked on the File Details dialog, the utility from the correct .NET Framework version is used for each assembly.

WiseSetFirewall

Configures the Windows Firewall during installation on Windows XP SP2, Windows Server 2003 SP1, and later.

WiseSingleFileCheck

Adds functionality for creating single-file .exe installations. It removes cached copies of the .msi that are extracted during uninstalls.

WiseSQLCallDLL

Reads a file of SQL commands and executes them. This is how Windows Installer Editor executes SQL scripts on the SQL Scripts page.

WiseStartup

When you add a custom action that calls a .dll with parameters, this action enables parameter passing for actions that call a .dll file and extracts the necessary Wisescript .exe and .dll files.

WiseTestSqlConn

Reads the property WiseSqlParam to get the names of properties to use for the SQL connection test. It then reads those properties to get the user name, password, and so on, and tries to connect to the SQL server. If it is successful, it sets the value of the last property in WiseSqlParam to the full connection string. If it fails, it sets the property WiseSqlError to an error message.

WiseUpgradeCheck

When you add upgrade information to the Upgrades page, this action is added to work around issues where the Windows Installer runtime does not detect previous versions of the application.

WiseUpgradeCheckEx

When you add upgrade information to the Upgrades page, this action is added to work around issues where the Windows Installer runtime does not detect previous versions of the application.

WiseVirtDirCallDll

Creates, modifies, or removes the appropriate Web sites and virtual directories based on the XML generated by WiseWriteWebXmlDll.

WiseWriteWebXMLDll

Generates XML for operations that must take place during the installation, based on table information and properties set on the Web dialogs. The generated XML is stored in the registry under a Wise subkey of the installation's uninstall key in HKEY_LOCAL_MACHINE.


Legacy ID



39806


Article URL http://www.symantec.com/docs/HOWTO8405


Terms of use for this information are found in Legal Notices