InstallerTaskBase.

InstallerSearchElement Property

Summary

Contains within it one to any number of app, registry, ini, or dirfile elements. These elements are used to search for an existing filesystem directory, file, or Windows Registry setting. A property in the installer database is then set with the value obtained from the search.

<app>

More information on these attributes can be found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/complocator_table.asp

Attribute Type Description Required
componentid string The component ID of the component whose key path is to be used for the search. True
type msi:MSILocatorTypeDirFile Valid input: file or directory True
setproperty string A name used to refer to the property within the Msi database. Set at install time. True

</app>

<registry>

More information on these attributes can be found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/reglocator_table.asp

Attribute Type Description Required
type msi:MSILocatorTypeDirFileReg64 Valid input: registry, file, directory, 64bit True
path string Depending on the type specified:
  • Path is a directory.
  • Path is a registry key.
True
root msi:MSIRegistryKeyRoot Valid input:
  • dependent - If this is a per-user installation, the registry value is written under HKEY_CURRENT_USER. If this is a per-machine installation, the registry value is written under HKEY_LOCAL_MACHINE. Note that a per-machine installation is specified by setting the ALLUSERS property to 1.
  • machine represents HKEY_LOCAL_MACHINE
  • classes represents HKEY_CLASSES_ROOT
  • user represents HKEY_CURRENT_USER
  • users represents HKEY_USERS
True

    Nested Elements:

    <value>

    Parameters

    Attribute Type Description Required name string Depending on the type specified: Key path is a file name. Key path is a registry value. False setproperty string A name used to refer to the property within the Msi database. Set at install time. True

    </value>

</registry>

<ini>

More information on these attributes can be found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/inilocator_table.asp

Attribute Type Description Required
filename string The .ini file name. (The .ini file must be present in the default Microsoft Windows directory.) True
section string Section name within the .ini file. True
key string Key value within the section. True
field msi:nonNegativeInt The field in the .ini line. If Field is Null or 0, then the entire line is read. This must be a non-negative number. False
type msi:MSILocatorTypeDirFileRaw Valid input: file ,directory, or raw True
setproperty string A name used to refer to the property within the Msi database. Set at install time. True

</ini>

<dirfile>

More information on these attributes can be found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/drlocator_table.asp and http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/signature_table.asp

Attribute Type Description Required
parent string An identifier to RegLocator, IniLocator, or CompLocator tables. If it does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path.
In order to determine what the key is for a table, prefix the property name assigned to that locator with SIG_
False
path string the path on the user's system. This is a either a full path or a relative subpath below the directory specified in the Parent column. False
depth msi:nonNegativeInt The depth below the path that the installer searches for the file or directory. False
setproperty string A name used to refer to the property within the Msi database. Set at install time. True

    Nested Elements:

    <file>

    Parameters

    Attribute Type Description Required name string The name of the file. True minversion string The minimum version of the file, with a language comparison. If this field is specified, then the file must have a version that is at least equal to MinVersion. If the file has an equal version to the MinVersion field value but the language specified in the Languages column differs, the file does not satisfy the signature filter criteria. False maxversion string The maximum version of the file. If this field is specified, then the file must have a version that is at most equal to MaxVersion. False minsize msi:nonNegativeInt The minimum size of the file. If this field is specified, then the file under inspection must have a size that is at least equal to MinSize. This must be a non-negative number. False maxsize msi:nonNegativeInt The maximum size of the file. If this field is specified, then the file under inspection must have a size that is at most equal to MaxSize. This must be a non-negative number. False mindate msi:nonNegativeInt The minimum modification date and time of the file. If this field is specified, then the file under inspection must have a modification date and time that is at least equal to MinDate. This must be a non-negative number. False maxdate msi:nonNegativeInt The maximum creation date of the file. If this field is specified, then the file under inspection must have a creation date that is at most equal to MaxDate. This must be a non-negative number. False languages string The languages supported by the file. False

    </file>

</dirfile>

Examples

Get the path of the web directory and the version of IIS. Create new properties in the Msi file with those values. <search> <registry type="registry" path="Software\Microsoft\InetStp" root="machine" > <value name="PathWWWRoot" setproperty="IISWWWROOT" /> </registry> <registry type="registry" path="SYSTEM\CurrentControlSet\Services\W3SVC\Parameters" root="machine" > <value name="MajorVersion" setproperty="IISVERSION" /> </registry> </search> Shows two ways to get the default key value for the specified key. Create new properties in the Msi file with those values. <search> <registry type="registry" path="Software\Microsoft\MessengerService" root="machine" > <value setproperty="MSGSRVNAME" /> <value name="" setproperty="MSGSRVNAME2" /> </registry> </search>
Assembly
NAnt.Contrib.dll
Namespace
NAnt.Contrib.Tasks.Msi
Containing Type
InstallerTaskBase

Syntax

[BuildElement("search", ProcessXml = false)]
public SchemaElement[] InstallerSearchElement { get; set; }

Attributes

Type Description
BuildElement

Value

Type Description
SchemaElement[]