Val0015

Project:This information applies to the following project types:

Basic MSI
InstallScript MSI
QuickPatch

Message 1(Warning)

The [1] table contains new content. Therefore, if you are packaging this upgrade as a patch, you will not be able to make it an uninstallable patch.

[1] is the name of the table that is causing this message.

Description

When an end user uninstalls a patch, the product is returned to the state it was in before the patch was uninstalled. If a patch is not uninstallable, an end user who wants to remove the patch needs to uninstall the patched product and then reinstall the product without applying the patch.

Note:If a target machine does not meet certain requirements (for example, it must have Windows Installer 3.0 or later), the patch will not be uninstallable, even if this validator warning is resolved. For more information about the requirements for uninstallable patches, see Patch Uninstallation.

If a patch adds a row to any of the following specific tables, the patch cannot be uninstalled, even if the Allow this patch to be uninstalled check box is selected for the patch.

BindImage 
Class 
Complus 
CreateFolder 
DuplicateFile 
Environment 
Extension 
Font 
IniFile 
ISLockPermissions
IsolatedComponent 
ISSelfReg
LockPermissions 
MIME 
MoveFile 
MsiServiceConfig
MsiServiceConfigFailureActions
MsiLockPermissionsEx
ODBCAttribute 
ODBCDataSource 
ODBCDriver 
ODBCSourceAttribute 
ODBCTranslator 
ProgId 
PublishComponent 
RemoveIniFile 
SelfReg 
ServiceControl 
ServiceInstall 
TypeLib 
Verb 

Note that under certain conditions, it is possible that an end user may not be able to remove a patch that adds content to the RemoveFile or RemoveRegistry tables. If the patch is designed to remove a file or registry entry that was not included in the original installation package, uninstalling the patch will not restore that file or registry entry.

This validator applies to small updates and minor upgrades only.

To perform this validation test, the validation engine compares the latest installation to an earlier version if the Allow this patch to be uninstalled check box is selected for the patch.

Corrective Action

This validator is designed to warn you that if you are creating a patch—or you later decide to package your upgrade as a patch—your end users will not be able to uninstall the patch unless you take corrective action to resolve it. To resolve this warning, do one of the following:

Clear the Allow this patch to be uninstalled check box for the patch. If you do this, end users will not be able to uninstall the patch.
Remove the new data from the table mentioned in the warning message. Note, however, that depending on your patch requirements, removing new table data may mean that your patch will not fix the issue in your application that led you to create the patch in the first place.