NAnt.Contrib.Tasks
Provides methods for interrogating Filesets.
Determines the number of files within a .
The id of the FileSet to scan.
The number of files included in the FileSet is not a valid refid to a defined fileset.
Define a fileset and check the number of files in it.
]]>
Determines whether contains any files.
The id of the fileset to check.
if the FileSet contains one or more files, otherwise . is not a valid refid to a defined fileset.
Perform conditional processing on a fileset if it contains files.
]]>
Returns a delimited string of all the filenames within a with each filename
separated by the specified delimiter string.
The id of the fileset to check.
String to separate filenames with.
A delimited string of the filenames within the specified FileSet. is not a valid refid to a defined fileset.
Displays a space-pipe-space separated string fo the files within a defined FileSet.
]]>
Allow information on a Windows service to be retrieved.
Returns a value indicating whether the specified service is
installed on a given machine.
The short name that identifies the service to the system.
The computer on which the service resides.
if the service is installed; otherwise,
.
For the machineName parameter, you can use "." or a zero-length
to represent the local computer.
The following example starts the "World Wide Web Publishing"
service if it's installed on the local computer.
]]>
Returns a value indicating whether the specified service is running.
The short name that identifies the service to the system.
The computer on which the service resides.
if the service is running; otherwise,
.
For the machineName parameter, you can use "." or a zero-length
to represent the local computer.
Returns a value indicating whether the specified service is stopped.
The short name that identifies the service to the system.
The computer on which the service resides.
if the service is stopped; otherwise,
.
For the machineName parameter, you can use "." or a zero-length
to represent the local computer.
Returns a value indicating whether the specified service is paused.
The short name that identifies the service to the system.
The computer on which the service resides.
if the service is paused; otherwise,
.
For the machineName parameter, you can use "." or a zero-length
to represent the local computer.
Gets the status of the specified service.
The short name that identifies the service to the system.
The computer on which the service resides.
One of the values that
indicates whether the service is running, stopped, or paused, or
whether a start, stop, pause, or continue command is pending.
For the machineName parameter, you can use "." or a zero-length
to represent the local computer.
The value returned by can be compared
to either a corresponding enum field name or the underlying
integral value.
Displays a warning if the Alerter service is stopping
on SV-ARD-EAI1.
The Alerter service is stopping.
]]>
The "deploy-web-application" target is only executed if
IIS is running on the local computer.
...
...
]]>
Gets the friendly name of the specified service.
The short name that identifies the service to the system.
The computer on which the service resides.
The friendly name of the service, which can be used to identify the service.
Gets the name that identifies the specified service
The short name that identifies the service to the system.
The computer on which the service resides.
The name that identifies the service.
The name of the management SQL database.
The name of the SQL Server where the management database is
located.
Deploys an assembly to a given BizTalk configuration database.
Deployment will fail if the assembly is already deployed.
Deploys the assembly.
The assembly does not exist.-or-The assembly binding information file does not exist.-or-The assembly could not be deployed.
The path to the BizTalk assembly to deploy.
Determines whether to install the assembly in the Global Assembly
Cache. The default is .
The path to an assembly binding information file to import bindings
from.
The path to the HTML log file to generate.
Exports bindings for a BizTalk assembly to an assembly binding
information file.
Exports the bindings.
The assembly does not exist.-or-The bindings could not be exported.
The path to the BizTalk assembly for which to export bindings.
The path to an assembly binding information file in which the
bindings will be saved.
The path to the HTML log file to generate.
Allows BizTalk (in-process) host instances to be controlled.
Starts the "BizTalkServerApplication" host instance
on server "SV-ARD-EAI".
]]>
Stops all "BizTalkServerApplication" host instances.
]]>
The name of the host on which the perform the action.
The name of the BizTalk server on which to perform the action.
If not specified, the action will be performed on all instances.
The action that should be performed on the host.
Defines the actions that can be performed on a host instance.
Starts the host instance.
Stops the host instance.
Stops and restarts the host instance.
Imports bindings from a given assembly binding information file into
the specified BizTalk configuration database.
Imports the assembly binding information file.
The assembly binding information file does not exist.-or-The assembly binding information file could not be imported.
The path to the assembly binding information file containing the
bindings to import.
The path to the HTML log file to generate.
Performs a set of actions on a given orchestration.
The name of the BizTalk server on which to perform the action.
The name of the orchestration to perform an action on.
Logs a message with the given priority.
The message priority at which the specified message is to be logged.
The message to be logged.
The actual logging is delegated to the project.
Logs a message with the given priority.
The message priority at which the specified message is to be logged.
The message to log, containing zero or more format items.
An array containing zero or more objects to format.
The actual logging is delegated to the project.
Starts the orchestration.
If the orchestration is not yet enlisted, then this will be done
first.
Specifies whether receive locations associated with this
orchestration should be automatically enabled. The default is
.
Specifies whether service instances of this orchestration that
were manually suspended previously should be automatically
resumed. The default is .
Specifies whether send ports and send port groups imported by
this orchestration should be automatically started. The default
is .
Stops the orchestration.
If the status of the orchestration is ,
or ,
then no further processing is done.
Stops the orchestration.
The orchestration to stop.
If the status of orchestration is ,
or ,
then no further processing is done.
Specifies whether receive locations associated with this
orchestration should be automatically disabled. The default
is .
Specifies whether instances of this orchestration should be
automatically suspended. The default is .
Enlists the orchestration by creating its activation subscription.
Specifies the BizTalk host on which to enlist the orchestration.
Unenlists the orchestration by removing its activation subscription.
Specifies whether instances of this orchestration type should
be automatically terminated. The default is .
Allows stopping, starting and resetting of BizTalk in-process host
instances on the specified server.
The name of the BizTalk server on which to perform the action.
Specifies the action(s) to perform on the BizTalk host instances. The
default is .
Defines the possible actions that can be performed on the BizTalk
in-process host instances.
Stops all in-process host instances.
Starts all in-process host instances.
Stops and restarts all in-process host instances.
Allows BizTalk send ports to be controlled.
Starts the "UmeHttpSendPort" port on server
"SV-ARD-EAI".
]]>
Unenlists the "UmeHttpSendPort" on server "SV-ARD-EAI".
]]>
The name of the send port on which the perform the action.
The name of the BizTalk server on which to perform the action.
The action that should be performed on the send port.
Defines the actions that can be performed on a BizTalk send port.
Starts the send port.
Stops the send port.
Stops and restarts the send port.
Enlists the send port.
Unenlists the send port.
Removes all bindings for a given assembly from a BizTalk configuration
database.
Removes bindings for the specified assembly.
The assembly does not exist.-or-The bindings could not be removed.
The path to the BizTalk assembly for which to remove all bindings.
The name of the BizTalk server on which to perform the operation.
The assembly qualified name of the receive pipeline to set when
unbinding a receive pipeline.
The assembly qualified name of the SEND pipeline to set when
unbinding a send pipeline.
Removes a given assembly from a BizTalk configuration database.
Removes an assembly from a BizTalk configuration database.
The assembly does not exist.-or-The assembly could not be remove from the BizTalk configuration database.
The path to the BizTalk assembly to remove.
Determines whether to remove the assembly from the Global Assembly
Cache. The default is .
The path to the HTML log file to generate.
Base class for all the ClearCase tasks.
Base Constructor.
Execute the perforce command assembled by subclasses.
Derived classes should override this to provide command-specific
commandline arguments.
Overrides the base class.
Displays a ClearCase config spec.
The view tag identifying the ClearCase view that will have its
config spec displayed.
This is an override used by the base class to get command specific args.
Checks files into a ClearCase VOB.
This task uses the cleartool checkin command to check in ClearCase elements.
Performs a ClearCase checkin on the file c:/views/viewdir/afile.
All warning messages are suppressed, and the element is checked in even if identical to the original.
Comment text from the file acomment.txt is added to ClearCase as a comment. All warning messages are suppressed. The file is checked in even if it is identical to the original.
]]>
Path to the ClearCase view file or directory that the command will
operate on.
Specify a comment. Only one of or
may be used.
Specify a file containing a comment. Only one of
or may be used.
if warning messages should be suppressed.
The default is .
If , the modification time will be preserved.
Default is .
to keep a view-private copy of the file with
a .keep extension. Default is .
If , files may be checked in even if identical
to the original. Default is .
This is an override used by the base class to get command specific args.
Checks files out of a ClearCase VOB.
This task uses the cleartool checkout command to check out ClearCase elements.
Performs a ClearCase checkout on the file c:/views/viewdir/afile.
It is checked out as reserved on branch called abranch.
All warning messages are suppressed.
Some comment text is added to ClearCase as a comment.
]]>
Path to the ClearCase view file or directory that the command will
operate on.
to check the element out as reserved.
Default is .
Creates a writable file under a different filename.
If , checks out the file but does not create
an editable file containing its data. Default is .
Specify a branch to check out the file to.
If , checkouts of elements with a version
other than main latest will be allowed. Default is .
if warning messages should be suppressed.
The default is .
Specify a comment. Only one of or
may be used.
Specify a file containing a comment. Only one of
or may be used.
If , the modification time will be preserved.
Default is .
This is an override used by the base class to get command specific args.
Locks ClearCase elements.
This task uses the cleartool lock command to lock ClearCase elements.
Performs a ClearCase lock on the object stream:Application_Integration@\MyProject_PVOB.
]]>
If an existing lock can be replaced.
Default is .
Specifies user(s) who can still modify the object.
Only one of or may be
used.
If the object will be marked obsolete.
Only one of or may
be used. Default is .
Specify a comment. Only one of or
may be used.
Specify a file containing a comment. Only one of
or may be used.
Specifies the object pathname to be locked.
Specifies the object(s) to be locked.
This is an override used by the base class to get command specific args.
Creates elements in a ClearCase VOB.
This task uses the cleartool mkelem command to create ClearCase elements.
Performs a ClearCase mkelem on the file c:/views/viewdir/afile with element type text_file.
It checks in the file after creation and adds Some comment text as a comment.
]]>
Path to the ClearCase view file or directory that the command will
operate on.
Specify a comment. Only one of or
may be used.
Specify a file containing a comment. Only one of
or may be used.
If , warning will be suppressed.
The default is .
Perform a checkout after element creation.
Default is .
Checkin element after creation.
Default is .
If , the modification time will be preserved.
Default is .
Assign mastership of the main branch to the current site.
Default is .
Element type to use during element creation.
Create elements from the view-private parent directories.
Default is .
This is an override used by the base class to get command specific args.
Applies a ClearCase label.
This task uses the cleartool mklabel command to apply a ClearCase label to specified elements.
Performs a ClearCase mklabel on the file c:/views/viewdir/afile under
the main branch for version 2 (\main\2). All matching
elements will be applied with label VERSION_1.
Some comment text is added as a comment. Subdirectories will be recursed.
]]>
Name of the label type
Path to the ClearCase view file or directory that the command will
operate on.
If , allow the replacement of a
label of the same type on the same branch.
The default is .
If , process each subdirectory recursively under the viewpath.
Default is .
Identify a specific version to attach the label to.
Path to the ClearCase view file or directory that the command will operate on.
Specify a comment. Only one of or
may be used.
Specify a file containing a comment. Only one of
or may be used.
For any VOB symbolic links encountered, labels the corresponding target.
This is an override used by the base class to get command specific args.
Creates a label object in a ClearCase VOB.
This task uses the cleartool mklabeltype command to create a ClearCase label object.
Performs a ClearCase mklbtype to create a label type named VERSION_1.
It is created as ordinary so it is available only to the current VOB.
The text Development version 1 is added as a comment.
]]>
Name of the label type to create.
Name of the VOB. Must be a valid path to somewhere on a VOB.
If , allow an existing label definition to be replaced.
The default is .
Creates a label type that is global to the VOB or to VOB's that use this VOB.
Either global or ordinary can be specified, not both.
The default is .
Creates a label type that can be used only in the current VOB.
Either global or ordinary can be specified, not both.
Although by default, if global is also or not specified ordinary is the default behaviour.
If the label type is allowed to be used once per branch in a given element's version tree.
The default is .
Sets the way mastership is checked by ClearCase. See ClearCase documentation for details.
The default is .
Specify a comment. Only one of or
may be used.
Specify a file containing a comment. Only one of
or may be used.
This is an override used by the base class to get command specific args.
Removes elements from a ClearCase VOB.
This task uses the cleartool rmtype command to remove a ClearCase object.
Performs a ClearCase rmtype to remove a
type named VERSION_1.
Comment text from the file acomment.txt is added as a comment.
All instances of the type are removed, including the type object itself.
]]>
The kind of type to remove.
The name of the object to remove.
Used with types only.
Forces removal of type even if a
pre-operation trigger would prevent its removal.
The default is .
Removes all instances of a type and the type object itself.
The default is .
Specify a comment. Only one of or
may be used.
Specify a file containing a comment. Only one of
or may be used.
This is an override used by the base class to get command specific args.
Uncheckout ClearCase elements.
This task uses the cleartool unco command to remove a ClearCase object.
Does a ClearCase uncheckout on the file c:/views/viewdir/afile.
A copy of the file called c:/views/viewdir/afile.keep is kept.
]]>
Path to the ClearCase view file or directory that the command will
operate on.
If , a view-private copy of the file with a
.keep extension will be kept. Default is .
This is an override used by the base class to get command specific args.
Unlocks ClearCase elements.
This task uses the cleartool unlock command to unlock a ClearCase object.
Performs a ClearCase unlock on the object stream:Application_Integration@\MyProject_PVOB.
]]>
Specify a comment. Only one of or
may be used.
Specify a file containing a comment. Only one of
or may be used.
Specifies the object pathname to be unlocked.
Specifies the object(s) to be unlocked.
This is an override used by the base class to get command specific args.
Updates a ClearCase view.
This task uses the cleartool update command to update a ClearCase view.
Performs a ClearCase update on the snapshot view directory c:/views/viewdir.
A graphical dialog will be displayed.
The output will be logged to log.log and it will overwrite any hijacked files.
The modified time will be set to the current time.
]]>
Path to the ClearCase view file or directory that the command will
operate on.
Displays a graphical dialog during the update.
The default is .
Specifies a log file for ClearCase to write to.
If , hijacked files will be overwritten.
The default is .
If , hijacked files will be renamed with a .keep extension.
The default is .
Specifies that modification time should be written as the current time.
Only one of or
can be specified. The default is .
Specifies that modification time should preserved from the VOB time.
Only one of or
can be specified. The default is .
This is an override used by the base class to get command specific args.
Searches files for a regular-expression and produces an XML report of
the matches.
Extract all TODO:, UNDONE: or HACK:-
comment-tags from C# source files and write them to a file
out.xml. (A xslt-stylesheet could then transform it to
a nice html-page for your project-homepage, but that is beyond
the scope of this example.)
Path, File and LineNumber are automatically
generated elements.
]]>
The resulting XML file for a comment-tag
'TODO: [md, 14-02-2004] comment this method'
will look like
TODOcomment this methodC:\MyProjects\MyPathMyFile.cs
146md14-02-2004
...
]]>
Performs the regex-search.
Writes the collection of matches to the specified
in XML format.
The matches to write.
to write the matches to.
Writes the specified matches to .
The collection of matches to write.
Specifies the name of the output file.
Specifies the regular-expression to search for.
The set of files in which the expression is searched.
This purpose of this class is to get the line-numbers within
a string for a specific position of a character
(an index, as returned by the class).
The string to count in
The current position within .
The number of line feeds upto (but exluding) .
Constructs a line-counter for a .
for which lines are counted.
Counts the line-numbers until the position
is reached.
Index into the string given during construction
The number of lines.
Counts the number of occurences of in the
range from to in
string .
to count in.
Character to count.
Start of range.
End of range.
The number of occurences of in the range from
to in string
.
Encapsulation of a match of a regular-expression with the
associated named capture-groups.
containing the mapping from group names
to values.
Writes this match to an .
The to write to.
Gets or sets the value for a capture group.
A strongly-typed collection of instances.
Adds a to this collection.
to add.
Adds all instances
to this collection.
Collection of instances to add.
Gets the th match stored in this collection.
Encapsulation of a search pattern.
Initializes a new instance of the class from
a regular-expression.
The regular-expression.
Concatenates the captures of to a string.
containing the captures.
containg the concatenated captures.
A named-group can captured multiple times, when the regular
expression has a quantifier, e.g. (// (?'Text'.*) )* will match
multiline comments with group Text having a capture for
every line.
Extracts the matches of this pattern from .
The name of the file associated with .
The source string
A collection of found matches.
The base abstract class for all MKS Tasks.
Provides the core attributes, and functionality for opening an item
in a MKS database.
Opens the MKS database and sets the reference to the specified
item and version.
The password to use to login to the MKS database.
The name of the user needed to access the MKS database.
The name of the host MKS server to connect to
The port number on which the host server is accepting requests
Checkpoints a project in an MKS Source Integrity database.
Checkpoint a project in an MKS database.
]]>
The label to apply to the checkpoint.
The project to checkpoint.
Apply label to all members. The default is .
The description of the checkpoint.
Retrieves an item or project from MKS Source Integrity.
Synchronise sandbox with MKS project.
]]>
The path to the local working directory.
The project to get from MKS.
Generates an XML file containing the differences between the sandbox and
the project in the MKS database.
Get changes to a project in an MKS database.
]]>
The project to retrieve the changes for.
The file where the output will be stored in XML format.
Base class for and .
Determines if the supplied version string is valid. A valid version string should look like:
1
1.1
1.1.1
1.1.1.1
The version string to verify.
Sets the sequence number of files to match their
storage order in the cabinet file, after some
files have had their filenames changed to go in
their own component.
The MSI database.
The last file's sequence number.
Cleans the output directory after a build.
The path to the cabinet file.
The path to temporary files.
Loads records for the Properties table.
The MSI database.
Loads records for the Directories table.
The MSI database.
Adds a directory record to the directories table.
The MSI database.
The MSI database view.
The parent directory.
This directory's Schema object.
The tree depth of this directory.
Retrieves the relative path of a file based on
the component it belongs to and its entry in
the MSI directory table.
The MSI database.
The Name of the Folder
The Parent of the Folder
The Relative Filesystem Path of the Folder
The Path to the Folder from previous calls.
The MSI database view.
If the specified path is longer than 40 characters, 37 are returned plus ...
A shortened path
Retrieves a DOS 8.3 filename for a file.
The file to shorten.
The new shortened file.
Retrieves a DOS 8.3 filename for a directory.
The path to shorten.
The new shortened path.
Retrieves a DOS 8.3 filename for a complete directory.
The path to shorten.
The new shortened path.
Recursively expands properties of all attributes of
a nodelist and their children.
The nodes to recurse.
Converts the Byte array in a public key
token of an assembly to a string MSI expects.
The array of bytes.
The string containing the array.
Loads TypeLibs for the TypeLib table.
The MSI database.
Loads environment variables for the Environment table.
The MSI database.
Loads records for the Registry table.
The MSI database.
Loads records for the RegLocator table
The MSI database.
Loads records for the CompLocator table
The MSI database.
Loads records for the IniLocator table
The MSI database.
Loads records for the DrLocator table
The MSI database.
Loads records for the RegLocator table
The MSI database.
Gets the name of the registry root id by it's name.
Name of the registry root
Loads records for the AppSearch table
The MSI database.
Loads records for the Icon table.
The MSI database.
Loads records for the Shortcut table.
The MSI database.
Adds custom table(s) to the msi database
The MSI database.
Adds table data to the msi database table structure
The MSI database.
The current table name
Xml node representing the current table
List of column objects for the current table (Containing: column name, id, type).
Loads records for the Binary table. This table stores items
such as bitmaps, animations, and icons. The binary table is
also used to store data for custom actions.
The MSI database.
Loads records for the Dialog table.
The MSI database.
Loads records for the Control table.
The MSI database.
Loads records for the ControlCondtion table.
The MSI database.
Loads records for the ControlEvent table.
The MSI database.
Loads records for the CustomAction table
The MSI database.
Loads records for the ActionText table. Allows users to specify descriptions/templates for actions.
The MSI database.
Loads records for the _AppMappings table.
The MSI database.
Loads records for the _UrlToDir table.
"Load the url properties to convert
url properties to a properties object" ??
The MSI database.
Loads records for the _VDirToUrl table.
Used for converting a vdir to an url
The MSI database.
Loads records for the _AppRootCreate table.
Used for making a virtual directory a virtual application
The MSI database.
Loads records for the _IISProperties table.
The MSI database.
Enumerates the registry to see if an assembly has been registered
for COM interop, and if so adds these registry keys to the Registry
table, ProgIds to the ProgId table, classes to the Classes table,
and a TypeLib to the TypeLib table.
The MSI database.
The Assembly filename.
The Assembly to check.
The name of the containing component.
The name of the containing component's assembly GUID.
View containing the Class table.
View containing the ProgId table.
Loads properties for the Summary Information Stream.
The MSI database.
Creates a .cab file with all source files included.
The MSI database.
Loads records for the sequence tables.
The MSI database.
Adds a file record to the Files table.
The MSI database.
The MSI database view.
The Component's XML Element.
The MSI database view.
The directory of this file's component.
The name of this file's component.
The installation sequence number of this file.
View containing the MsiAssembly table.
View containing the MsiAssemblyName table.
View containing the Components table.
View containing the FeatureComponents table.
View containing the Class table.
View containing the ProgId table.
View containing the SelfReg table.
ModuleComponent table.
Loads records for the Components table.
The MSI database.
The sequence number of the last file in the .cab
Executes the Task.
None.
.NET wrapper for a Windows Installer database
Drops empty tables.
Drops the empty tables.
Determines if this is a merge module or not
If it is a merge module, the FeatureComponents table should not be dropped.
Checks to see if the specified table is empty.
Name of the table to check existance.
True if empy and False if full.
Checks to see if the specified table exists in the database
already.
Name of the table to check existance.
True if successful.
Helper class used to avoid errors when instantiating
WindowsInstaller.Installer.
Use to read and manipulate existing records.
Creates a new reader for the entries in the view
Database view to read entries from. Must be Execute()'ed already.
Moves to the next record
False iff no more records
Deletes the current record. Needs no Commit().
Set the value of a field in the current record. Remember to Commit()
Zero-based index of the field to set
New value
Get the string value of a field in the current record.
Zero-based index of the field to get
Commits changes to the current record.
A simple class for a single search clause.
TODO: more comparison types, use of the Composite pattern, etc.
Represents a single table in a Windows Installer archive
Base class for msi/msm installer tasks
Abstract that validates inheriting classes against
an XML schema of the same name.
Initializes the task and verifies parameters.
Node that contains the XML fragment used to define this task instance.
Occurs when a validation error is raised.
The object that sent the event.
Validation arguments passed in.
Recursively expands properties of all attributes of
a nodelist and their children.
The nodes to recurse.
Returns the object from the Schema wrapper after
is called.
The object from the Schema wrapper after is called.
The name of the file that will be generated when the task completes
execution (eg. MyInstall.msi or MyMergeModule.msm).
A directory relative to the NAnt script in which the msi task resides
from which to retrieve files that will be installed by the msi
database. All files that will be included in your installation need
to be located directly within or in subdirectories of this directory.
A installer file to use as the starting database in which all files
and entries will be made, and then copied to the filename specified
by the output parameter. Install templates are included with the
install tasks, you only need to supply this value if you want to
override the default template.
A .mst file to use as the starting database containing strings
displayed to the user when errors occur during installation.
A .mst template is included with the msi task, you only need to
supply this value if you want to override the default error
template and cannot perform something through the features of the
msi task.
Causes the generated msi database file to contain debug messages for
errors created by inconsistencies in creation of the database. This
makes the file slightly larger and should be avoided when generating
a production release of your software.
Sets various properties in the SummaryInformation stream
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/summary_information_stream.asp)
All of the sub-elements are optional.
Nested Elements:
<title>
Briefly describes the type of installer package. Phrases such as "Installation Database" or
"Transform" or "Patch" may be used for this property.
Default value: Value of the ProductName property, if defined.
</title>
<subject>
A short description of the product to be installed. This value is typically set from the installer
property ProductName Default value: Value of the ProductName property, if defined.
</subject>
<author>
The manufacturer of the installation database. This value is typically set from the installer
property Manufacturer.
Default value: Value of the Manufacturer property, if defined.
</author>
<keywords>
Used by file browsers to hold keywords that permit the database file to be found in a keyword search.
The set of keywords typically includes "Installer" as well as product-specific keywords, and may be
localized.
Default value: Value of the Keywords property, if defined.
</keywords>
<comments>
A general description/purpose of the installer database.
Default value: Value of the Comments property, if defined.
</comments>
<template>
Indicates the platform and language versions that are supported by the database. The Template Summary
Property of a patch package is a semicolon-delimited list of the product codes that can accept the
patch.
See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/template_summary_property.asp for more information.
</template>
<revisionnumber>
Contains the package code (GUID) for the installer package. The package code is a unique identifier
of the installer package. Note: Default behavior - a new GUID is generated every time
</revisionnumber>
<creatingapplication>
The name of the application used to author the database. Note: Default value is NAnt.
</creatingapplication>
Examples
Define specific summary information.
<summaryinformation>
<title>Installation Database</title>
<subject>${install.productname}</subject>
<author>${install.manufacturer}</author>
<keywords>MSI, database, NAnt, Installer</keywords>
<comments>This installer database contains the logic and data required to install NAnt</comments>
<template>;1033</template>
<creatingapplication>NAnt - http://nant.sf.net </creatingapplication>
</summaryinformation>
Name/value pairs which will be set in the PROPERTY table of the
installer database.
The properties element contains within it one to any number of property elements. Public property names cannot contain lowercase letters. Private property names must contain some lowercase letters.
Property names prefixed with % represent system and user environment variables. These are
never entered into the Property
table. The permanent settings of environment variables can only be modified using the Environment Table.
More information is available here.
Parameters
AttributeTypeDescriptionRequirednamestringA name used to refer to the property.TruevaluestringThe value of the property. This value can contain references to other, predefined properties to build a compound property.True
Examples
Define the required properties.
<properties>
<property name="ProductName" value="My Product" />
<property name="ProductVersion" value="1.0.0" />
<property name="Manufacturer" value="ACME Inc." />
<property name="ProductCode" value="{29D8F096-3371-4cba-87E1-A8C6511F7B4C}" />
<property name="UpgradeCode" value="{69E66919-0DE1-4280-B4C1-94049F76BA1A}" />
</properties>
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
AttributeTypeDescriptionRequiredcomponentidstringThe component ID of the component whose key path is to be used for the search.Truetypemsi:MSILocatorTypeDirFileValid input: file or directoryTruesetpropertystringA 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
AttributeTypeDescriptionRequiredtypemsi:MSILocatorTypeDirFileReg64Valid input: registry, file, directory, 64bitTruepathstringDepending on the type specified:
Path is a directory.Path is a registry key.Truerootmsi:MSIRegistryKeyRootValid 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_MACHINEclasses represents HKEY_CLASSES_ROOTuser represents HKEY_CURRENT_USERusers represents HKEY_USERSTrue
Nested Elements:
<value>
Parameters
AttributeTypeDescriptionRequirednamestringDepending on the type specified:
Key path is a file name.Key path is a registry value.FalsesetpropertystringA 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
AttributeTypeDescriptionRequiredfilenamestringThe .ini file name. (The .ini file must be present in the default Microsoft Windows directory.)
TruesectionstringSection name within the .ini file.
TruekeystringKey value within the section.
Truefieldmsi:nonNegativeIntThe field in the .ini line. If Field is Null or 0, then the entire line is read.
This must be a non-negative number.
Falsetypemsi:MSILocatorTypeDirFileRawValid input: file ,directory, or rawTruesetpropertystringA 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
AttributeTypeDescriptionRequiredparentstringAn 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_
Falsepathstringthe 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.
Falsedepthmsi:nonNegativeIntThe depth below the path that the installer searches for the file or directory.
FalsesetpropertystringA name used to refer to the property within the Msi database. Set at install time.True
Nested Elements:
<file>
Parameters
AttributeTypeDescriptionRequirednamestringThe name of the file.TrueminversionstringThe 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.FalsemaxversionstringThe maximum version of the file. If this field is specified, then the file
must have a version that is at most equal to MaxVersion.Falseminsizemsi:nonNegativeIntThe 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.Falsemaxsizemsi:nonNegativeIntThe 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.Falsemindatemsi:nonNegativeIntThe 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.Falsemaxdatemsi:nonNegativeIntThe 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.FalselanguagesstringThe 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>
Contains within it one to any number of launchcondition elements.
Launch conditions are conditions that all must be satisfied for the
installation to begin.
Parameters
AttributeTypeDescriptionRequirednamestringA name used to identify the launch condition.TrueconditionstringExpression that must evaluate to True for installation to begin.True
Nested Elements:
<description>
Localizable text to display when the condition fails and the installation must be terminated.
</description>
Examples
Create a check to make sure that IIS 5.x is installed.
<launchconditions>
<launchcondition name="CheckIIS" condition="(IISVERSION = "#5")" >
<description>
This setup requires Internet information Server 5.x. Please install Internet Information Server and run this setup again.
</description>
</launchcondition>
</launchconditions>
Creates custom tables not directly managed by default features of
the installer task.
Parameters
AttributeTypeDescriptionRequirednamestringA unique name used to identify the table.True
Nested Elements:
<columns>
<column>
Defines the columns making up the table
Parameters
AttributeTypeDescriptionRequirednamestringA unique name used to define the column.TruenullableboolWhen set to true, allows the column to accept null values; false does not allow null values.Truecategorymsi:MSITableColumnCategoryTypeValid input:
TextUpperCaseLowerCaseIntegerDoubleIntegerTime/DateIdentifierPropertyFilenameWildCardFilenamePathPathsAnyPathDefaultDirRegPathFormattedTemplateConditionGUIDVersionLanguageBinaryCabinetShortcut
More information here: http://msdn.microsoft.com/library/en-us/msi/setup/column_data_types.aspFalsetypestringOverrides the category specification. An example of valid input would be: S255FalsekeyboolWhen set to true, the column is used to form the primary key for the table; false specifies that the column is not used to form the primary key.FalseminvalueintThis field applies to columns having numeric value. The field contains the minimum permissible value. This can be the minimum value for an integer or the minimum value for a date or version string.FalsemaxvalueintThis field applies to columns having numeric value. The field is the maximum permissible value. This may be the maximum value for an integer or the maximum value for a date or version string. FalsekeytablestringThis field applies to columns that are external keys. The field identified in Column must link to the column number specified by KeyColumn in the table named in KeyTable. This can be a list of tables separated by semicolons.FalsekeycolumnintThis field applies to table columns that are external keys. The field identified in Column must link to the column number specified by KeyColumn in the table named in KeyTable. The permissible range of the KeyColumn field is 1-32.FalsesetstringThis is a list of permissible values for this field separated by semicolons. This field is usually used for enums.FalsedescriptionstringA description of the data that is stored in the column. False
</column>
</columns>
<rows>
<row>
Defines the data for a row in the table
<columns>
<column>
Defines data for a specific cell in the row
Parameters
AttributeTypeDescriptionRequirednamestringName of the column to populate.TruevaluestringValue to populate the cell with.True
</column>
</columns>
</row>
</rows>
Examples
Build the IniFile table. Since the WriteIniValues and RemoveIniValues actions exist in the template, they will use this table.
<tables>
<table name="IniFile">
<columns>
<column name="IniFile" nullable="false" category="Identifier" key="true" description="The key for this table." />
<column name="FileName" nullable="false" category="Text" description="The localizable name of the .ini file in which to write the information. " />
<column name="DirProperty" nullable="true" category="Identifier" description="Name of a property having a value that resolves to the full path of the folder containing the .ini file. " />
<column name="Section" nullable="false" category="Formatted" description="The localizable .ini file section." />
<column name="Key" nullable="false" category="Formatted" description="The localizable .ini file key within the section" />
<column name="Value" nullable="false" category="Formatted" description="The localizable value to be written. " />
<column name="Action" nullable="false" category="Integer" description="The type of modification to be made. " />
<column name="Component_" nullable="false" category="Identifier" description="External key into the first column of the Component table referencing the component that controls the installation of the .ini value. " />
</columns>
<rows>
<row>
<columns>
<column name="IniFile" value="MyInternetShortcut" />
<column name="FileName" value="MyInternetAddr.url" />
<column name="DirProperty" value="D__MYDIR" />
<column name="Section" value="InternetShortcut" />
<column name="Key" value="URL" />
<column name="Value" value="[TARGETURL]" />
<column name="Action" value="0" />
<column name="Component_" value="C__Documentation" />
</columns>
</row>
</rows>
</table>
</tables>
Specifies the directory layout for the product.
Parameters
AttributeTypeDescriptionRequirednamestringA name used to refer to the directory.TruefoldernamestringThe directory's name (localizable)under the parent directory.TruerootstringA reference to the directory's parent directory. This can be a property name or one of the predefined directories included with the default template:
AdminToolsFolderAppDataFolderCommonAppDataFolderCommonFiles64FolderCommonFilesFolderDesktopFolderFavoritesFolderFontsFolderLocalAppDataFolderMyPicturesFolderPersonalFolderProgramFilesFolderProgramMenuFolderProgramFiles64FolderSendToFolderStartMenuFolderStartupFolderSystem16FolderSystem64FolderSystemFolderTARGETDIRTempFolderTemplateFolderWindowsFolderWindowsVolumeTrue
Nested Elements:
<directory>
Sub directories. Note, this element can contain nested <directory/> sub elements.
Parameters
AttributeTypeDescriptionRequirednamestringA name used to refer to the directory.TruefoldernamestringThe directory's name (localizable)under the parent directory.True
</directory>
Examples
Define a sample directory structure.
<directories>
<directory name="D__ACME" foldername="ACME" root="TARGETDIR" >
<directory name="D__ACME_MyProduct" foldername="My Product" />
</directory>
</directories>
Used to modify the environment variables of the target computer at
runtime.
Parameters
AttributeTypeDescriptionRequirednamestringThe localizable name of the environment variable. The key values are written or removed depending upon
which of the characters in the following table are prefixed to the name. There is no effect in the ordering of
the symbols used in a prefix.
PrefixDescription=Create the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation.+Create the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists.-Remove the environment variable when the component is removed. This symbol can be combined with any prefix.!Remove the environment variable during an installation. The installer only removes an environment variable during an installation if the name and value of the variable match the entries in the Name and Value fields of the Environment table. If you want to remove an environment variable, regardless of its value, use the '!' syntax, and leave the Value field empty.*This prefix is used with Microsoft® Windows® NT/Windows® 2000 to indicate that the name refers to a system environment variable. If no asterisk is present, the installer writes the variable to the user's environment. Microsoft Windows 95/98 ignores the asterisk and add the environment variable to autoexec.bat. This symbol can be combined with any prefix. A package that is used for per-machine installations should write environment variables to the machine's environment by including * in the Name column. For more information, see http://msdn.microsoft.com/library/en-us/msi/setup/environment_table.asp=-The environment variable is set on install and removed on uninstall. This is the usual behavior.!-Removes an environment variable during an install or uninstall.
More information can be found here: http://msdn.microsoft.com/library/en-us/msi/setup/environment_table.aspTrueappendstringLocalizable value that is to be set as a formatted stringTruecomponentstringRefrence to a component. Allows the variabled to be modified when the component is un/installed.True
Examples
Append the installation path to the user PATH variable.
<environment>
<variable name="PATH" append="'[TARGETDIR]'" component="C__MainFiles" />
</environment>
Groups sets of files into named sets, these can be used to install
and perform operations on a set of files as one entity.
Parameters
AttributeTypeDescriptionRequirednamestringA name used to refer to the component.TrueidstringA string GUID unique to this component, version, and language. Note that the letters of these GUIDs must be
uppercase. Utilities such as GUIDGEN can generate GUIDs containing lowercase letters. The lowercase letters must be
changed to uppercase to make these valid component code GUIDs.
TrueattrintThis column contains a bit flag that specifies options for remote execution. Add the indicated bit to the total value in the column to include an option.
ValueDescription0Component cannot be run from source.
Set this bit for all components belonging to a feature to prevent the feature from being run-from-network or
run-from-source. Note that if a feature has no components, the feature always shows run-from-source and
run-from-my-computer as valid options.
1Component can only be run from source.
Set this bit for all components belonging to a feature to prevent the feature from being run-from-my-computer.
Note that if a feature has no components, the feature always shows run-from-source and run-from-my-computer as
valid options.
2Component can run locally or from source.4If this bit is set, the value in the key element is used as a key into the Registry table.
If the Value field of the corresponding record in the Registry table is null, the Name field in that record must
not contain "+", "-", or "*". For more information, see the description of the Name field in Registry table.
Setting this bit is recommended for registry entries written to the HKCU hive. This ensures the installer writes
the necessary HKCU registry entries when there are multiple users on the same machine.
16If this bit is set, the installer does not remove the component during an uninstall. The installer registers an extra system client for the component in the Windows Installer registry settings.
32If this bit is set, the value in the KeyPath column is a key into the ODBCDataSource table.64If this bit is set, the installer reevaluates the value of the statement in the Condition column
upon a reinstall. If the value was previously False and has changed to True, the installer installs the component.
If the value was previously True and has changed to False, the installer removes the component even if the component
has other products as clients. This bit should only be set for transitive components. See Using Transitive
Components.
128If this bit is set, the installer does not install or reinstall the component if a key path file or
a key path registry entry for the component already exists. The application does register itself as a client of
the component.
Use this flag only for components that are being registered by the Registry table.
256Set this bit to mark this as a 64-bit component. This attribute facilitates the installation of
packages that include both 32-bit and 64-bit components. If this bit is not set, the component is registered
as a 32-bit component.
TruedirectorystringRefrence to a directory. Defines the directory location for where the files assigned to the component are to be placed.TruefeaturestringRefrence to a feature. Maps a feature to the component. Used to determine if the component is to be installed or not.TrueconditionstringA conditional statement that can control whether a component is installed. If the condition is null or evaluates to
true, then the component is enabled. If the condition evaluates to False, then the component is disabled and is not
installed.FalsefileattrintInteger containing bit flags representing file attributes.
The following table shows the definition of the bit field.
ValueDescription1Read-Only2Hidden4System512The file is vital for the proper operation of the component to which it belongs1024The file contains a valid checksum. A checksum is required to repair a file that has become corrupted.4096This bit must only be added by a patch and if the file is being added by the patch.8192The file's source type is uncompressed. If set, ignore the Word Count Summary Property.
If neither msidbFileAttributesNoncompressed or msidbFileAttributesCompressed are set, the compression
state of the file is specified by the Word Count Summary Property. Do not set both msidbFileAttributesNoncompressed
and msidbFileAttributesCompressed.16384The file's source type is compressed. If set, ignore the Word Count Summary Property.
If neither msidbFileAttributesNoncompressed or msidbFileAttributesCompressed are set, the compression state of
the file is specified by the Word Count Summary Property. Do not set both msidbFileAttributesNoncompressed and
msidbFileAttributesCompressed.FalsecheckinteropboolUsed to determine if file(s) in the fileset are interop file(s). If true, extra information will be added in the install
package to register each interop file. If false, the file(s) will not be not be checked and the extra registration information
will not be added to the msi. FalseinstallassembliestogacboolUsed to determine if assemblies should be installed to the Global Assembly Cache.
If true, all assemblies in the fileset will be added to the GAC. If false, the assemblies will be installed
to the specified directory (as a normal file would). Note: If an assembly is specified to be installed into the GAC, it will not
also be installed to the directory specified.FalsekeepsubdirsboolUsed to determine if directories in the fileset should be built.
If true, all subdirectories of the fileset basedir will be built. If false the directories structure will be
flattened. The default is false.False
Nested Elements:
<keyfile>
This value points to a file or folder belonging to the component that the installer uses to detect the component. Two components cannot share the same key path value.
Parameters
AttributeTypeDescriptionRequiredfilestringName of the key (file) to use. Also, this could be an id of a registry key value.True
</keyfile>
<fileset>
Specifies the files to include with the component
</fileset>
<forceid>
Used to force specific attributes on a per file basis
Parameters
AttributeTypeDescriptionRequiredfilestringName of the file, in the fileset, to override.TrueidstringUnique GUID to assign to the file.TrueattrintInteger containing bit flags representing file attributes.
The following table shows the definition of the bit field.
ValueDescription1Read-Only2Hidden4System512The file is vital for the proper operation of the component to which it belongs1024The file contains a valid checksum. A checksum is required to repair a file that has become corrupted.4096This bit must only be added by a patch and if the file is being added by the patch.8192The file's source type is uncompressed. If set, ignore the Word Count Summary Property.
If neither msidbFileAttributesNoncompressed or msidbFileAttributesCompressed are set, the compression
state of the file is specified by the Word Count Summary Property. Do not set both msidbFileAttributesNoncompressed
and msidbFileAttributesCompressed.16384The file's source type is compressed. If set, ignore the Word Count Summary Property.
If neither msidbFileAttributesNoncompressed or msidbFileAttributesCompressed are set, the compression state of
the file is specified by the Word Count Summary Property. Do not set both msidbFileAttributesNoncompressed and
msidbFileAttributesCompressed.FalseversionstringThis field is the version string for a versioned file. This field is blank for non-versioned files.FalselanguagestringA list of decimal language IDs separated by commas.FalsecheckinteropboolUsed to determine if file is an interop file. If true, extra information will be added in the install
package to register the interop file. If false, the file will not be not be checked and the extra registration information
will not be added to the msi.FalseinstalltogacboolIf true, and if the file is an assembly, it will be installed to the GAC. If false, the file
will be installed to the directory specified by the component. Note: If an assembly is specified to
be installed into the GAC, it will not also be installed to the directory specified.False
</forceid>
Examples
Define a sample component structure.
<components>
<component name="C__MainFiles" id="{26AA7144-E683-441D-9843-3C79AEC1C636}" attr="2" directory="TARGETDIR" feature="F__MainFiles" >
<key file="default.aspx" />
<fileset basedir="${install.dir}">
<include name="*.*" />
</fileset>
</component>
</components>
Install files to TARGETDIR and assemblies to the GAC (Global Assembly Cache). Do not install MyOtherAssembly.dll to the GAC, but rather install it with the other files (to TARGETDIR)
<components>
<component name="C__MainFiles" id="{26AA7144-E683-441D-9843-3C79AEC1C636}" attr="2" directory="TARGETDIR" feature="F__MainFiles" installassembliestogac="true" >
<key file="MyAssemblyName.xml" />
<fileset basedir="${install.dir}">
<include name="*.*" />
</fileset>
<forceid file="MyOtherAssembly.dll" id="_4EB7CCB23D394958988ED817DA00B9D1" installtogac="false" />
</component>
</components>
Assign a registry entry to a specific component.
<components>
<component name="C__RegistryEntry" id="{06C654AA-273D-4E39-885C-3E5225D9F336}" attr="4" directory="TARGETDIR" feature="F__DefaultFeature" >
<key file="R__822EC365A8754FACBF6C713BFE4E57F0" />
</component>
</components>
.
.
.
<registry>
<key path="SOFTWARE\MyCompany\MyProduct\" root="machine" component="C__RegistryEntry">
<value id="R__822EC365A8754FACBF6C713BFE4E57F0" name="MyKeyName" value="MyKeyValue" />
</key>
</registry>
Creates custom dialogs that can gather information not handled by
the default installer template.
Parameters
AttributeTypeDescriptionRequirednamestringA name used to refer to the dialog.TruehcenterintHorizontal position of the dialog box. The range is 0 to 100, with 0 at the left edge of the screen and 100 at the right edge.TruevcenterintVertical position of the dialog box. The range is 0 to 100, with 0 at the top edge of the screen and 100 at the bottom edge.TruewidthintWidth of the rectangular boundary of the dialog box. This number must be non-negative.TrueheightintHeight of the rectangular boundary of the dialog box. This number must be non-negative.TrueattrintA 32-bit word that specifies the attribute flags to be applied to this dialog box. This number must be non-negative.
ValueDescription1Visible2Modal4Minimize8SysModal16KeepModeless32TrackDiskSpace64UseCustomPalette128RTLRO256RightAligned512LeftScroll896BiDi65536Error
More information here: http://msdn.microsoft.com/library/en-us/msi/setup/dialog_style_bits.aspTruetitlestringA localizable text string specifying the title to be displayed in the title bar of the dialog box.TruefirstcontrolstringAn external key to the second column of the Control table. Combining this field with the Dialog field identifies a
unique control in the Control table. This defines the control that takes the focus when the dialog box is created. This
column is ignored in an Error dialog box.
Because static text cannot take the focus, a Text control that describes an Edit, PathEdit, ListView, ComboBox or
VolumeSelectCombo control must be made the first control in the dialog box to ensure compatibility with screen readers.
TruedefaultcontrolstringAn external key to the second column of the Control table. Combining this field with the Dialog field results in
a primary key into the Control table that defines the default control. Hitting the Return key is equivalent to clicking
on the default control. If this column is left blank, then there is no default control. This column is ignored in the
Error dialog box.
TruecancelcontrolstringAn external key to the second column of the Control table. Combining this field with the Dialog field results in
a primary key of the Control table that defines the cancel control. Hitting the ESC key or clicking the Close button in
the dialog box is equivalent to clicking on the cancel control. This column is ignored in an Error dialog box.
The cancel control is hidden during rollback or the removal of backed up files. The protected UI handler hides the control
upon receiving a INSTALLMESSAGE_COMMONDATA message.
True
Examples
Add a web folder dialog:
<dialogs>
<dialog name="WebFolderDlg" hcenter="50" vcenter="50" width="370" height="270" attr="39" title="[ProductName] [Setup]" firstcontrol="Next" defaultcontrol="Next" cancelcontrol="Cancel" />
</dialogs>
Creates user interface controls displayed on custom dialogs.
Parameters
AttributeTypeDescriptionRequirednamestringName of the control. This name must be unique within a dialog box but can be repeated on different dialog boxes.TruedialogstringRefrence to a dialog. Used to associate the control with the dialog.TruetypestringThe type of the control.
Control nameDescriptionBillboardDisplays billboards based on progress messages.BitmapDisplays a static picture of a bitmap.CheckBoxA two-state check box.ComboBoxA drop-down list with an edit field.DirectoryComboSelect all except the last segment of the path.DirectoryListDisplays folders below the main part of path.EditA regular edit field for any string or integer.GroupBoxDisplays a rectangle that groups other controls together.IconDisplays a static picture of an icon.LineDisplays a horizontal line.ListBoxA drop-down list without an edit field.ListViewDisplays a column of values with icons for selection.MaskedEditAn edit field with a mask in the text field.PathEditDisplays folder name or entire path in an edit field.ProgressBarBar graph that changes length as it receives progress messages.PushButtonDisplays a basic push button.RadioButtonGroupA group of radio buttons.ScrollableTextDisplays a long string of text.SelectionTreeDisplays information from the Feature table and enables the user to change their selection state.TextDisplays static text.VolumeCostListDisplays costing information on different volumes.VolumeSelectComboSelects volume from an alphabetical list.
More information found here: http://msdn.microsoft.com/library/en-us/msi/setup/controls.aspTruexintHorizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.TrueyintVertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.TruewidthintWidth of the rectangular boundary of the control. This must be a non-negative number.TrueheightintHeight of the rectangular boundary of the control. This must be a non-negative number.TrueattrintA 32-bit word that specifies the bit flags to be applied to this control. This must be a non-negative number, and the allowed values depend upon the type of control.For a list of all control attributes, and the value to enter in this field, see Control Attributes.TruepropertystringThe name of a defined property to be linked to this control. Radio button, list box, and combo box values are tied into a group by being linked to the same property. This column is required for active controls and is ignored by static controls.FalsetextstringA localizable string used to set the initial text contained in a control. The string can also contain embedded properties.FalsenextcontrolstringThe name of another control on the same dialog box. If the focus in the dialog box is on the control in the Control column, hitting the tab key moves the focus to the control listed here. Therefore this is used to specify the tab order of the controls on the dialog box. The links between the controls must form a closed cycle. Some controls, such as static text controls, can be left out of the cycle. In that case, this field may be left blank. FalsehelpstringOptional, localizable text strings that are used with the Help button. The string is divided into two parts by a separator character (|). The first part of the string is used as ToolTip text. This text is used by screen readers for controls that contain a picture. The second part of the string is reserved for future use. The separator character is required even if only one of the two kinds of text is present.FalseremoveboolIf true, the control is removed. If false, the control is added.False
Examples
Remove the Browse button from the customize dialog and add controls for a web dialog
<controls>
<!-- Remove the Browse button from customize dialog -->
<control dialog="CustomizeDlg" name="Browse" type="PushButton"
x="304" y="200" width="56" height="17" attr="3" remove="true" />
<control dialog="CustomizeDlg" name="Tree" type="SelectionTree"
x="25" y="85" width="175" height="95" attr="7" remove="true" />
<!-- Re add the tree control with the proper next control -->
<control dialog="CustomizeDlg" name="Tree" type="SelectionTree"
x="25" y="85" width="175" height="95" attr="7"
property="_BrowseProperty" text="Tree of selections" nextcontrol="Reset" />
<!-- Adds the controls associated with the webfolder dialog -->
<control dialog="WebFolderDlg" name="BannerBitmap" type="Bitmap"
x="0" y="0" width="374" height="44" attr="1"
text="[BannerBitmap]" nextcontrol="VDirLabel" />
<control dialog="WebFolderDlg" name="Title" type="Text"
x="15" y="6" width="200" height="15" attr="196611"
text="[DlgTitleFont]Virtual Directory Information" />
<control dialog="WebFolderDlg" name="Description" type="Text"
x="25" y="23" width="280" height="15" attr="196611"
text="Please enter your virtual directory and port information." />
<control dialog="WebFolderDlg" name="BannerLine" type="Line"
x="0" y="44" width="374" height="0" attr="1" />
<control dialog="WebFolderDlg" name="VDirLabel" type="Text"
x="18" y="73" width="348" height="15" attr="3"
text="&Virtual directory:"
nextcontrol="Edit_VDir" />
<control dialog="WebFolderDlg" name="Edit_VDir" type="Edit"
x="18" y="85" width="252" height="18" attr="7"
property="TARGETVDIR"
text="[TARGETVDIR]"
nextcontrol="PortLabel" />
<control dialog="WebFolderDlg" name="PortLabel" type="Text"
x="18" y="110" width="348" height="15" attr="3"
text="&Port:"
nextcontrol="Edit_Port" />
<control dialog="WebFolderDlg" name="Edit_Port" type="Edit"
x="18" y="122" width="48" height="18" attr="7"
property="TARGETPORT"
text="[TARGETPORT]"
nextcontrol="Back" />
<control dialog="WebFolderDlg" name="BottomLine" type="Line"
x="0" y="234" width="374" height="0" attr="1" />
<control dialog="WebFolderDlg" name="Back" type="PushButton"
x="180" y="243" width="56" height="17" attr="3"
text="[ButtonText_Back]" nextcontrol="Next" />
<control dialog="WebFolderDlg" name="Next" type="PushButton"
x="236" y="243" width="56" height="17" attr="3"
text="[ButtonText_Next]" nextcontrol="Cancel" />
<control dialog="WebFolderDlg" name="Cancel" type="PushButton"
x="304" y="243" width="56" height="17" attr="3"
text="[ButtonText_Cancel]" nextcontrol="BannerBitmap" />
</controls>
Used to validate and perform operations as the result of information
entered by the user into controls on custom dialogs.
Parameters
AttributeTypeDescriptionRequireddialogstringRefrence to a dialog. Used to associate the control with the dialog.TruecontrolstringRefrence to a control. Maps to a control for the specified dialog.TrueactionstringThe action that is to be taken on the control. The possible actions are shown in the following table.
ValueDescriptionDefaultSet control as the default.DisableDisable the control.EnableEnable the control.HideHide the control.ShowDisplay the control.TrueconditionstringA conditional statement that specifies under which conditions the action should be triggered. If this statement does not evaluate to TRUE, the action does not take place. If it is set to 1, the action is always applied. TrueremoveboolIf true, the control condition is removed. If false, the control condition is added.False
Examples
Remove the control condition for the Browse button from the customize dialog and add control conditions for a web dialog
<controlconditions>
<!-- Remove control condition for Browse button on customizeDlg -->
<controlcondition dialog="CustomizeDlg" control="Browse" action="Hide"
condition="Installed" remove="true" />
<!-- Add control conditions for the web folder dialog -->
<controlcondition dialog="WebFolderDlg" control="Back" action="Disable"
condition="ShowUserRegistrationDlg=""" />
<controlcondition dialog="WebFolderDlg" control="Back" action="Enable"
condition="ShowUserRegistrationDlg<>""" />
</controlconditions>
Used to route the flow of the installation process as the result of
events raised by the user interacting with controls on dialogs.
Parameters
AttributeTypeDescriptionRequireddialogstringRefrence to a dialog. Used to associate the control with the dialog.TruecontrolstringRefrence to a control. Maps to a control for the specified dialog.TruenamestringAn identifier that specifies the type of event that should take place when the user interacts with the control
specified by Dialog_ and Control_. For a list of possible values see ControlEvent Overview.
To set a property with a control, put [Property_Name] in this field and the new value in the argument field. Put { }
into the argument field to enter the null value.
TrueargumentstringA value used as a modifier when triggering a particular event.TrueconditionstringA conditional statement that determines whether the installer activates the event in the Event column. The installer
triggers the event if the conditional statement in the Condition field evaluates to True. Therefore put a 1 in this column
to ensure that the installer triggers the event. The installer does not trigger the event if the Condition field contains
a statement that evaluates to False. The installer does not trigger an event with a blank in the Condition field unless no
other events of the control evaluate to True. If none of the Condition fields for the control named in the Control_ field
evaluate to True, the installer triggers the one event having a blank Condition field, and if more than one Condition field
is blank it triggers the one event of these with the largest value in the Ordering field.FalseorderintAn integer used to order several events tied to the same control. This must be a non-negative number.FalseremoveboolIf true, the control condition is removed. If false, the control condition is added.False
Examples
Remove the control events for the Browse button from the customize dialog and add events conditions for a web dialog
<controlevents>
<!-- Remove the old control events -->
<controlevent dialog="UserRegistrationDlg" control="Next" name="NewDialog"
argument="SetupTypeDlg" condition="ProductID" remove="true" />
<controlevent dialog="SetupTypeDlg" control="Back" name="NewDialog"
argument="LicenseAgreementDlg" condition="ShowUserRegistrationDlg <> 1" remove="true" />
<controlevent dialog="SetupTypeDlg" control="Back" name="NewDialog"
argument="UserRegistrationDlg" condition="ShowUserRegistrationDlg = 1" remove="true" />
<!-- Remove control events for Browse button on CustomizeDlg -->
<controlevent dialog="CustomizeDlg" control="Browse" name="SelectionBrowse"
argument="BrowseDlg" condition="1" remove="true" />
<!-- Add new control events for the web dialog -->
<controlevent dialog="UserRegistrationDlg" control="Next" name="NewDialog"
argument="WebFolderDlg" condition="ProductID" />
<controlevent dialog="SetupTypeDlg" control="Back" name="NewDialog"
argument="WebFolderDlg" condition="ShowWebFolderDlg <> 1" />
<controlevent dialog="SetupTypeDlg" control="Back" name="NewDialog"
argument="WebFolderDlg" condition="ShowWebFolderDlg = 1" />
<controlevent dialog="WebFolderDlg" control="Cancel" name="SpawnDialog"
argument="CancelDlg" order="0" />
<controlevent dialog="WebFolderDlg" control="Back" name="NewDialog"
argument="LicenseAgreementDlg" condition="ShowUserRegistrationDlg<>1"
order="0" />
<controlevent dialog="WebFolderDlg" control="Back" name="NewDialog"
argument="UserRegistrationDlg" condition="ShowUserRegistrationDlg=1"
order="0" />
<!-- Virtual Directory Control Events -->
<controlevent dialog="WebFolderDlg" control="Next" name="DoAction"
argument="WEBCA_CreateURLs" condition="1" order="0" />
<controlevent dialog="WebFolderDlg" control="Next" name="DoAction"
argument="WEBCA_EvaluateURLsMB" condition="1" order="1" />
<controlevent dialog="WebFolderDlg" control="Next" name="SetTargetPath"
argument="TARGETDIR" condition="1" order="2" />
<controlevent dialog="WebFolderDlg" control="Next" name="NewDialog"
argument="SetupTypeDlg" condition="1" order="3" />
</controlevents>
Makes modifications to the Windows Registry of the target computer
at runtime.
Parameters
AttributeTypeDescriptionRequiredcomponentstringRefrence to a component. The component that controls the installation of the registry value.Truerootmsi:MSIRegistryKeyRootValid 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_MACHINEclasses represents HKEY_CLASSES_ROOTuser represents HKEY_CURRENT_USERusers represents HKEY_USERSTruepathstringRegistry key.True
Nested Elements:
<value>
Specifies the registry value to add to the target machine.
AttributeTypeDescriptionRequirednamestringThe registry value name (localizable). If this is Null, then the data entered into the Value column are
written to the default registry key.
If the Value column is Null, then the strings shown in the following table in the Name column have special
significance.
StringDescription+The key is to be created, if absent, when the component is installed.-The key is to be deleted, if present, with all of its values and subkeys, when the component is uninstalled.*The key is to be created, if absent, when the component is installed. Additionally, the key is to be deleted, if present, with all of its values and subkeys, when the component is uninstalled.FalsevaluestringThe localizable registry value. The field is Formatted. If the value is attached to one of the following prefixes (i.e. #%value) then the value is interpreted as described in the table. Note that each prefix begins with a number sign (#). If the value begins with two or more consecutive number signs (#), the first # is ignored and value is interpreted and stored as a string.
PrefixDescription#xThe value is interpreted and stored as a hexadecimal value (REG_BINARY).#%The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).#The value is interpreted and stored as an integer (REG_DWORD).If the value contains the sequence tilde [~], then the value is interpreted as a Null-delimited list of strings (REG_MULTI_SZ). For example, to specify a list containing the three strings a, b and c, use "a[~]b[~]c." The sequence [~] within the value separates the individual strings and is interpreted and stored as a Null character.If a [~] precedes the string list, the strings are to be appended to any existing registry value strings. If an appending string already occurs in the registry value, the original occurrence of the string is removed.If a [~] follows the end of the string list, the strings are to be prepended to any existing registry value strings. If a prepending string already occurs in the registry value, the original occurrence of the string is removed.If a [~] is at both the beginning and the end or at neither the beginning nor the end of the string list, the strings are to replace any existing registry value strings.Otherwise, the value is interpreted and stored as a string (REG_SZ). FalsedwordstringA dword value to input, if the value attribute is null. This removes the requirement of adding "#" before the value.FalseidstringPrimary key used to identify a registry record.False
</value>
Examples
Add the a couple registry entries on the target machine.
<registry>
<key component="C__MainFiles" root="machine" path="SOFTWARE\ACME\My Product\" >
<value name="ProductVersion" value="1.0.0" />
<value name="ProductDir" value="[TARGETDIR]" />
<value name="VirtualDir" value="[TARGETVDIR]" />
</key>
</registry>
Add a default key value to the specified registry key path
<registry>
<key component="C__MainFiles" root="machine" path="SOFTWARE\ACME\My Product\" >
<value value="1.0.0" />
</key>
</registry>
Another way to add a default key value to the specified registry key path
<registry>
<key component="C__MainFiles" root="machine" path="SOFTWARE\ACME\My Product\" >
<value name="" value="1.0.0" />
</key>
</registry>
Specify hexadecimal value (REG_BINARY) for the default key
<registry>
<key component="C__MainFiles" root="machine" path="SOFTWARE\ACME\My Product\" >
<value>
1a,81,0a,03,01,00,06,00,00,00,d3,15,fd,00,01,00,00,00,00,00,01,
00,00,00,00,00,00,00,00,00,00,00,b0,90,ce,09,01,00,00,00,00,00,ff,ff,ff,00,
00,00,00,00,00,00,00,00,6d,7a,0a,03,01,00,00,00,00,00,00,00,38,40,00,00,00,
00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,0f,00,00,00,
f0,ff,ff,ff,54,69,6d,65,73,20,4e,65,77,20,52,6f,6d,61,6e,f4,6f,d4,08,02,00
</value>
</key>
</registry>
Stores icons to be used with shortcuts, file extensions, CLSIDs or
similar uses.
Parameters
AttributeTypeDescriptionRequirednamestringName of the icon file.TruevaluestringThe binary icon data in PE (.dll or .exe) or icon (.ico) format.True
Examples
Add a compiled help icon to the msi database; To be used with a shortcut.
<icons>
<icon name="CHMICON" value="${resource.dir}\chm.ico" />
</icons>
Creates shortcuts on the target computer.
Parameters
AttributeTypeDescriptionRequirednamestringUnique name identifying the shortcut.TruedirectorystringReference to a directory. The location of where the shortcut should be created.TruefilenamestringThe localizable name of the shortcut to be created.TruecomponentstringReference to a component. The installer uses the installation state of this specified component to determine whether the shortcut is created or deleted. This component must have a valid key path for the shortcut to be installed. If the Target column contains the name of a feature, the file launched by the shortcut is the key file of the component listed in this column. TruetargetstringThe shortcut target. The installer evaluates this field as a Formatted string. The field should contains a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut.TrueargumentsstringThe command-line arguments for the shortcut. Note that the resolution of properties in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the property already has the intended value when the component owning the shortcut is installed. For example, for the argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the component that owns the shortcut.
FalsehotkeystringThe hotkey for the shortcut. The low-order byte contains the virtual-key code for the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys for accessibility.FalseiconstringReference to an icon. FalseiconindexintThe icon index for the shortcut. This must be a non-negative number.FalseshowcmdintThe Show command for the application window. The following values may be used. The values are as defined for the Windows API function ShowWindow.
ValueDescription1SW_SHOWNORMAL3SW_SHOWMAXIMIZED7SW_SHOWMINNOACTIVEFalsewkdirstringThe name of the property that has the path of the working directory for the shortcut.False
Nested Elements:
<description>
The localizable description of the shortcut.
</description>
Examples
Add a compiled help icon to the msi database; To be used with a shortcut.
<shortcuts>
<shortcut name="HelpFiles" directory="D__PROGRAMMENU_ACME_MYPRODUCT" filename="Help File" component="C__MainFiles" target="[$C__MainFiles]\Help.chm" icon="CHMICON" iconindex="0" showcmd="3" >
<description>My Product help documentation</description>
</shortcut>
</shortcuts>
Stores the binary data for items such as bitmaps, animations, and
icons. The binary table is also used to store data for custom
actions.
Parameters
AttributeTypeDescriptionRequirednamestringA unique key that identifies the particular binary data. If the binary data is for a control, the key appears in the Text column of the associated control in the Control table. This key must be unique among all controls requiring binary data.TruevaluestringThe binary file to add.True
Examples
Add the custom action dll to create/modify virtual directories
<binaries>
<binary name="MSVBDPCADLL" value="${resource.dir}\MSVBDPCA.DLL" />
</binaries>
Used to configure executables that may be run during steps in the
installation process to do things outside the bounds of MSI
technology's feature set. This is the main spot you can extend MSI
technology to perform custom processes via compiled code.
Parameters
AttributeTypeDescriptionRequiredactionstringName of the action. The action normally appears in a sequence table unless it is called by another custom action. If the name matches any built-in action, then the custom action is never called. TruetypestringA field of flag bits specifying the basic type of custom action and options. See Summary List of All Custom Action Types for a list of the basic types. See Custom Action Return Processing Options, Custom Action Execution Scheduling Options, Custom Action Hidden Target Option, and Custom Action In-Script Execution Options. TruesourcestringA property name or external key into another table. For a discussion of the possible custom action sources, see Custom Action Sources and the Summary List of All Custom Action Types. For example, the Source column may contain an external key into the first column of one of the following tables containing the source of the custom action code.
Directory table for calling existing executables.
File table for calling executables and DLLs that have just been installed.
Binary table for calling executables, DLLs, and data stored in the database.
Property table for calling executables whose paths are held by a property.
TruetargetstringAn execution parameter that depends on the basic type of custom action. See the Summary List of All Custom Action Types for a description of what should be entered in this field for each type of custom action. For example, this field may contain the following depending on the custom action.
TargetCustom ActionEntry point (required)Calling a DLL.Executable name with arguments (required)Calling an existing executable.Command line arguments (optional)Calling an executable just installed.Target file name (required)Creating a file from custom data.NullExecuting script code.True
Examples
Add some custom actions related to the virtual directory dialog and custom action.
<customactions>
<!-- Custom actions creating entry points into the custom action dll specified in the binary table -->
<customaction action="WEBCA_GatherWebFolderProperties" type="1" source="MSVBDPCADLL" target="GatherWebFolderProperties" />
<customaction action="WEBCA_ApplyWebFolderProperties" type="1537" source="MSVBDPCADLL" target="ApplyWebFolderProperties" />
<customaction action="WEBCA_RollbackApplyWebFolderProperties" type="1281" source="MSVBDPCADLL" target="RollbackApplyWebFolderProperties" />
<customaction action="WEBCA_CreateURLs" type="1" source="MSVBDPCADLL" target="CreateURLs" />
<customaction action="WEBCA_EvaluateURLs" type="1" source="MSVBDPCADLL" target="EvaluateURLs" />
<customaction action="WEBCA_EvaluateURLsNoFail" type="1" source="MSVBDPCADLL" target="EvaluateURLsNoFail" />
<customaction action="WEBCA_EvaluateURLsMB" type="1" source="MSVBDPCADLL" target="EvaluateURLsMB" />
<customaction action="WEBCA_CreateAppRoots" type="1" source="MSVBDPCADLL" target="CreateAppRoots" />
<!-- Custom actions to set default control values in the webfolder dialog -->
<customaction action="WEBCA_TARGETVDIR" type="307" source="TARGETVDIR" target="Default VDir" />
<customaction action="WEBCA_TARGETPORT" type="307" source="TARGETPORT" target="80" />
</customactions>
Used to modify the sequence of tasks/events that execute during the
overall installation process.
Parameters
AttributeTypeDescriptionRequiredtypemsi:MSISequenceTableValid inputs:
installexecute represents InstallExecuteSequence Table.installui represents InstallUISequence Tableadminexecute represents AdminExecuteSequence Tableadminui represents AdminUISequence Tableadvtexecute represents AdvtUISequence TableTrueactionstringName of the action to execute. This is either a built-in action or a custom action.TruevalueintNumber that determines the sequence position in which this action is to be executed.
A positive value represents the sequence position. A Null value indicates that the action is not executed. The following
negative values indicate that this action is to be executed if the installer returns the associated termination flag. No
more than one action may have a negative value entered in the Sequence field.
ValueDescription-1Successful completion.-2User terminates install.-3Fatal exit terminates.-4Install is suspended.TrueconditionstringThis field contains a conditional expression. If the expression evaluates to False, then the action is skipped. If the expression syntax is invalid, then the sequence terminates, returning iesBadActionData. False
Examples
Add the sequences to support virtual directories
<sequences>
<sequence type="installexecute" action="WEBCA_TARGETVDIR" value="750" condition="TARGETVDIR=""" />
<sequence type="installexecute" action="WEBCA_TARGETPORT" value="750" condition="TARGETPORT=""" />
<sequence type="installexecute" action="WEBCA_CreateURLs" value="752" condition="NOT Installed" />
<sequence type="installexecute" action="WEBCA_EvaluateURLs" value="753" condition="NOT Installed" />
<sequence type="installexecute" action="WEBCA_GatherWebFolderProperties" value="3701" condition="NOT Installed" />
<sequence type="installexecute" action="WEBCA_ApplyWebFolderProperties" value="3701" condition="NOT Installed" />
<sequence type="installexecute" action="WEBCA_RollbackApplyWebFolderProperties" value="3701" condition="NOT Installed" />
<sequence type="installexecute" action="WEBCA_CreateAppRoots" value="3701" condition="NOT Installed" />
<sequence type="installui" action="WEBCA_TARGETVDIR" value="750" condition="TARGETVDIR=""" />
<sequence type="installui" action="WEBCA_TARGETPORT" value="750" condition="TARGETPORT=""" />
<sequence type="installui" action="WEBCA_CreateURLs" value="752" condition="NOT Installed" />
<sequence type="installui" action="WEBCA_EvaluateURLsNoFail" value="753" condition="NOT Installed" />
<sequence type="adminexecute" action="WEBCA_TARGETVDIR" value="750" condition="TARGETVDIR=""" />
<sequence type="adminexecute" action="WEBCA_TARGETPORT" value="750" condition="TARGETPORT=""" />
<sequence type="adminexecute" action="WEBCA_CreateURLs" value="752" condition="NOT Installed" />
<sequence type="adminexecute" action="WEBCA_EvaluateURLs" value="753" condition="NOT Installed" />
<sequence type="adminui" action="WEBCA_TARGETVDIR" value="750" condition="TARGETVDIR=""" />
<sequence type="adminui" action="WEBCA_TARGETPORT" value="750" condition="TARGETPORT=""" />
<sequence type="adminui" action="WEBCA_CreateURLs" value="752" condition="NOT Installed" />
<sequence type="adminui" action="WEBCA_EvaluateURLsNoFail" value="753" condition="NOT Installed" />
</sequences>
Creates text to be displayed in a progress dialog box and written
to the log for actions that take a long time to execute. The text
displayed consists of the action description and optionally formatted
data from the action. The entries in the ActionText table typically
refer to actions in sequence tables.
Parameters
AttributeTypeDescriptionRequirednamestringUnique name identifying the action.TruetemplatestringA localized format template is used to format action data records for display during action execution. If no template is supplied, then the action data will not be displayed.False
Nested Elements:
<description>
Localized description displayed in the progress dialog box or written to the log when the action is executing.
</description>
Examples
Add the related action text for the web folder actions.
<actiontext>
<action name="WEBCA_GatherWebFolderProperties" >
<description>Gathering web folder properties</description>
</action>
<action name="WEBCA_ApplyWebFolderProperties" >
<description>Applying web folder properties</description>
</action>
<action name="WEBCA_RollbackApplyWebFolderProperties" >
<description>Removing web folder properties</description>
</action>
<action name="WEBCA_CreateURLs" >
<description>Creating URLs</description>
</action>
<action name="WEBCA_EvaluateURLs" >
<description>Evaluating URLs</description>
</action>
<action name="WEBCA_EvaluateURLsNoFail" >
<description>Evaluating URLs and do not fail if URL is invalid</description>
</action>
<action name="WEBCA_EvaluateURLsMB" >
<description>Evaluating URLs</description>
</action>
<action name="WEBCA_CreateAppRoots" >
<description>Creating application roots</description>
</action>
<action name="WEBCA_TARGETVDIR" >
<description>Set TARGETVDIR property to the specified virtual dir</description>
</action>
<action name="WEBCA_TARGETPORT" >
<description>Set TARGETPORT property to the specified virtual dir port</description>
</action>
</actiontext>
Adds Verbs and a handler for the specified file type.
This not an officially Microsoft supported table.
Parameters
AttributeTypeDescriptionRequireddirectorystringRefrence to a directory. The directory to add the specific verb/handler to IIS for the specified file type.TrueextensionstringFile name extension to specifically handleFalseexepathstringPath to the Internet Server API (ISAPI) or Common Gateway Interface (CGI) program to run to process a request.FalseverbsstringInternet Information Services verbs that are allowed for the executable file. Only verbs entered in this field will be allowed.False
Examples
Add the aspx app mapping
<appmappings>
<appmapping directory="D__ACME_MyProduct" extension=".aspx" exepath="[DOTNETFOLDER]aspnet_isapi.dll" verbs="GET,HEAD,POST,DEBUG" />
</appmappings>
Determines the local path equivalent for a url and stores this
information in a property.
This not an officially Microsoft supported table.
Parameters
AttributeTypeDescriptionRequirednamestringThe name of the URLProperty to convertTruepropertystringThe name of the property to store the directory information.True
Examples
Convert the TARGETURL property to a directory and store that information in TARGETDIR
<urlproperties>
<urlproperty name="TARGETURL" property="TARGETDIR" />
</urlproperties>
Creates a URLProperty representing the virtual directory and port.
This not an officially Microsoft supported table.
Parameters
AttributeTypeDescriptionRequirednamestringProperty containing the virtual directoryTrueportpropertystringProperty containing the network port number to use.TrueurlpropertystringURLProperty to store the url inTrue
Examples
Convert the virtual directory and port to a url and store the value in a property.
<vdirproperties>
<vdirproperty name="TARGETVDIR" portproperty="TARGETPORT" urlproperty="TARGETURL" />
</vdirproperties>
Create a Web application definition and marks it as running in-process
or out-of-process. If an application already exists at the specified
path, you can use this method to reconfigure the application from
in-process to out-of-process, or the reverse.
This not an officially Microsoft supported table.
Parameters
AttributeTypeDescriptionRequiredcomponentstringReference to a component. Determines when the approot will be created.TrueurlpropertystringURLProperty with stored urlTrueinprocflagintSpecifies whether the application being created is to run in-process (0), out-of-process (1), or in a pooled process (2). If the application already exists and is running, changing the value of this flag will cause the application definition to be deleted and a new application created to run in the specified process space.True
Examples
Convert the virtual directory and port to a url and store the value in a property.
<approots>
<approot component="C__MainFiles" urlproperty="TARGETURL" inprocflag="2" />
</approots>
Specifies directory security in IIS. Can also configure the default
documents supported by each directory.
This not an officially Microsoft supported table.
Parameters
AttributeTypeDescriptionRequireddirectorystringReference to a directory. This is the directory that gets modified with the specific attributes.TrueattrintAttributes to set for the directory.
ValueFlag NameDescription1AccessReadThe file or the contents of the folder may be read through Microsoft Internet Explorer.2AccessWriteUsers are allowed to upload files and their associated properties to the enabled directory on your server or to change content in a Write-enabled file. Write can be implemented only with a browser that supports the PUT feature of the HTTP 1.1 protocol standard.4AccessExecuteThe file or the contents of the folder may be executed, regardless of file type.8AccessSSLFile access requires SSL file permission processing, with or without a client certificate.16AccessSourceUsers are allowed to access source code if either Read or Write permissions are set. Source code includes scripts in Microsoft ® Active Server Pages (ASP) applications.32AccessSSLNegotiateCertSSL file access processing requests a certificate from the client. A value of false indicates that access continues if the client does not have a certificate. Some versions of Internet Explorer will close the connection if the server requests a certificate and a certificate is not available (even if AccessSSLRequireCert is also set to true).64AccessSSLRequireCertSSL file access processing requests a certificate from the client. If the client provides no certificate, the connection is closed. AccessSSLNegotiateCert must also be set to true when using AccessSSLRequireCert.128AccessSSLMapCertSSL file permission processing maps a client certificate to a Microsoft Windows ® operating system user-account. The AccessSSLNegotiateCert property must also be set to true for the mapping to occur.256AccessSSL128File access requires SSL file permission processing with a minimum key size of 128 bits, with or without a client certificate.512AccessScriptThe file or the contents of the folder may be executed if they are script files or static content. A value of false only allows static files, such as HTML files, to be served.1024AccessNoRemoteWriteRemote requests to create or change files are denied; only requests from the same computer as the IIS server succeed if the AccessWrite property is set to true. You cannot set AccessNoRemoteWrite to false to enable remote requests, and set AccessWrite to false to disable local requests.4096AccessNoRemoteReadRemote requests to view files are denied; only requests from the same computer as the IIS server succeed if the AccessRead property is set to true. You cannot set AccessNoRemoteRead to false to enable remote requests, and set AccessRead to false to disable local requests.8192AccessNoRemoteExecuteRemote requests to execute applications are denied; only requests from the same computer as the IIS server succeed if the AccessExecute property is set to true. You cannot set AccessNoRemoteExecute to false to enable remote requests, and set AccessExecute to false to disable local requests.16384AccessNoRemoteScriptRequests to view dynamic content are denied; only requests from the same computer as the IIS server succeed if the AccessScript property is set to true. You cannot set AccessNoRemoteScript to false to enable remote requests, and set AccessScript to false to disable local requests.32768AccessNoPhysicalDirAccess to the physical path is not allowed.TruedefaultdocstringAdds a filename to the Default Documents to process. Add multiple separated with a comma (Eg. "Default.aspx,Default.htm")False
Examples
Specify permissions for the directory structure.
<iisproperties>
<iisproperty directory="TARGETDIR" attr="626" defaultdoc="Default.aspx" />
<iisproperty directory="D__BIN" attr="112" />
<iisproperty directory="D__SomeSubDir" attr="114" />
</iisproperties>
Summary description for MsiTaskInfo.
Loads the banner image.
The MSI database.
Loads the background image.
The MSI database.
Loads the license file.
The MSI database.
Loads records for the Media table.
The MSI database.
The sequence number of the last file in the .cab.
Loads records for the Features table.
The MSI database.
Adds a feature record to the Features table.
The MSI database Feature table.
The MSI database Condition table.
The name of this feature's parent.
The MSI database.
This Feature's Schema element.
The tree depth of this feature.
The tree order of this feature.
Loads records for the LaunchCondition table
The MSI database.
Merges Merge Modules into the MSI Database.
The MSI Database.
The path to temporary files.
Creates a Windows Installer (also known as Microsoft Installer, or MSI) setup database for installing software on the Windows Platform.
Requires cabarc.exe in the path. This tool is part of the
Microsoft Cabinet SDK.
Requires mergemod.dll version 2.0 or greater. This dll is part of the
Microsoft Platform SDK.
See the Roadmap to Windows Installer Documentation
at Microsoft's MSDN website for more information.
Initializes task and verifies parameters.
Node that contains the XML fragment used to define this task instance.
Executes the task.
An .rtf (rich text format) file containing the license agreement
for your software. The contents of this file will be displayed to
the user when setup runs and must be accepted to continue.
A .bmp (bitmap) file 495x60 pixels in size that will be displayed
as the banner (top) image of the installation user interface.
A .bmp (bitmap) file 495x315 pixels in size that will be displayed
as the background image of the installation user interface.
Groups sets of components into named sets, these can be used to
layout the tree control that allows users to select and deselect
features of your software product when a custom installation is
selected at runtime.
Parameters
AttributeTypeDescriptionRequirednamestringA name used to refer to the feature.TruedisplayintThe number in this field specifies the order in which the feature is to be displayed in the user interface.
The value also determines if the feature is initially displayed expanded or collapsed.
If the value is null or zero, the record is not displayed. If the value is odd, the feature node is expanded initially.
If the value is even, the feature node is collapsed initially.
TruetitlestringShort string of text identifying the feature. This string is listed as an item by the SelectionTree control of the Selection Dialog.FalsetypicalboolDetermines if the feature should be included in a "typical" install. This is useful for when the user selects to just install the typical features.FalsedirectorystringRefrence to a directory. Specify a corresponding directory to go with the feature.FalseattrintAny combination of the following:
ValueDescription0Components of this feature that are not marked for installation from source are installed locally.1Components of this feature not marked for local installation are installed to run from the source CD-ROM or server.2Set this attribute and the state of the feature is the same as the state of the feature's parent.4Set this attribute and the feature state is Advertise.8Note that this bit works only with features that are listed by the ADVERTISE property. Set this attribute to prevent the feature from being advertised.16Set this attribute and the user interface does not display an option to change the feature state to Absent. Setting this attribute forces the feature to the installation state, whether or not the feature is visible in the UI.32Set this attribute and advertising is disabled for the feature if the operating system shell does not support Windows Installer descriptors.
More information found here: http://msdn.microsoft.com/library/en-us/msi/setup/feature_table.aspFalse
Nested Elements:
<feature>
Nested feature elements are supported.
</feature>
<description>
Longer string of text describing the feature. This localizable string is displayed by the Text control of the Selection Dialog.
</description>
<conditions>
<condition>
AttributeTypeDescriptionRequiredexpressionstringIf this conditional expression evaluates to TRUE, then the Level column in the Feature table is set to the
conditional install level.
The expression in the Condition column should not contain reference to the installed state of any feature or component.
This is because the expressions in the Condition column are evaluated before the installer evaluates the installed
states of features and components. Any expression in the Condition table that attempts to check the installed state
of a feature or component always evaluates to false.
For information on the syntax of conditional statements, see Conditional Statement Syntax.
TruelevelintThe installer sets the install level of this feature to the level specified in this column if the expression in
the Condition column evaluates to TRUE. Set this value to 0 to have the component not install if the condition is not met.
For any installation, there is a defined install level, which is an integral value from 1 to 32,767. The initial value
is determined by the InstallLevel property, which is set in the Property table.
A feature is installed only if the feature level value is less than or equal to the current install level. The user
interface can be authored such that once the installation is initialized, the installer allows the user to modify the
install level of any feature in the Feature table. For example, an author can define install level values that represent
specific installation options, such as Complete, Typical, or Minimum, and then create a dialog box that uses
SetInstallLevel ControlEvents to enable the user to select one of these states. Depending on the state the user selects,
the dialog box sets the install level property to the corresponding value. If the author assigns Typical a level of 100
and the user selects Typical, only those features with a level of 100 or less are installed. In addition, the Custom
option could lead to another dialog box containing a Selection Tree control. The Selection Tree would then allow the user
to individually change whether each feature is installed.True
</condition>
</conditions>
Examples
Define a sample features structure.
<features>
<feature name="F__Default" title="My Product" display="1" typical="true" directory="TARGETDIR">
<description>My Product from ACME, Inc. </description>
<feature name="F__MainFiles" display="0" typical="true" />
</feature>
<feature name="F__Help" title="My Product Help Files" display="1" typical="false" directory="D__ACME_MyProduct_Help" />
</features>
Includes pre-packaged installation components (.msm files) as part
of the msi database. This feature allows reuse of installation
components that use MSI technology from other setup vendors or as
created by the .
Parameters
AttributeTypeDescriptionRequiredfeaturestringRefrence to a feature. Used to associate the merge module with the feature (and the feature's directory) for when to install the components in the merge module.True
Nested Elements:
<modules>
Specifies the merge module(s) to include with the specified feature.
</modules>
<configurationitems>
<configurationitem>
Specifies the value for a configurable item
Parameters
AttributeTypeDescriptionRequiredmodulestringMerge module filename to limit the configuration item to. If this is not set, the configuration item will be applied to all merge modules in the fileset.TruenamestringName of item for which data is to be setTruevaluestringValue of the configurable itemTrue
</configurationitem>
</configurationitems>
Examples
Add the NAnt merge module to the install.
<mergemodules>
<merge feature="F__NAntMSM">
<modules>
<include name="${nant.dir}\Install\NAnt.msm" />
</modules>
</merge>
</mergemodules>
Add a Visual Studio .wid package (merge module) and specify some configurable items.
<mergemodules>
<merge feature="F__DefaultFeature">
<modules>
<include name="VsdReadmeDlg.wid" />
</modules>
<configurationitems>
<configurationitem name="BannerBitmap" value="CONFIGURED_BANNERBITMAP" />
<configurationitem module="VsdReadmeDlg.wid" name="ReadmeText" value="CONFIGURED_READMETEXT" />
</configurationitems>
</merge>
</mergemodules>
Summary description for MsmTaskInfo.
Loads records for the ModuleSignature table.
The MSM database.
Loads records for the ModuleDependency table.
The MSM database.
Loads records for the ModuleExclusion table.
The MSM database.
Loads records for the ModuleInstallUISequence, ModuleInstallExecuteSequence,
ModuleAdminUISequence, ModuleAdminExecute, and ModuleAdvtExecuteSequence tables.
The MSM database.
Loads records for the ModuleIgnoreTable table.
The MSM database.
Loads records for the ModuleSubstitution table.
The MSM database.
Loads records for the ModuleConfiguration table.
The MSM database.
Builds a Windows Installer Merge Module (MSM) database.
Requires cabarc.exe in the path. This tool is part of the
http://msdn.microsoft.com/library/en-us/dncabsdk/html/cabdl.asp">Microsoft Cabinet SDK.
Initializes task and verifies parameters.
Node that contains the XML fragment used to define this task instance.
Executes the task.
Stores a unique identifier for a merge module. To be used as the merge module's ModuleSignature
Specifies the numeric language ID or IDs for a merge module.
Stores the version number of a merge module.
Lists other merge modules that are required for this merge module
to operate properly.
Contains any number of dependency elements.
More information is available here.
Parameters
AttributeTypeDescriptionRequiredidstringIdentifier of the merge module requiredTruelanguagestringNumeric language ID of the dependent merge module. Can specify the language ID for a single language, such as 1033 for U.S. English, or specify the language ID for a language group, such as 9 for any English. If the field contains a group language ID, any merge module with having a language code in that group satisfies the dependency. If the RequiredLanguage is set to 0, any merge module filling the other requirements satisfies the dependency.TrueversionstringVersion of the dependent merge module. If ommited, any version fills the dependency.False
Examples
Make sure that the NAnt merge module is included
<moduledependencies>
<dependency id="NAnt_MergeModule.2D2FB50C_DADF_4813_8932_8EF1E8CB8E80" language="0" />
</moduledependencies>
Lists other merge modules that are incompatible in the same
installer database.
Contains any number of exclusion elements.
More information is available here.
Parameters
AttributeTypeDescriptionRequiredidstringIdentifier of the merge module requiredTruelanguagestringNumeric language ID of the merge module in ExcludedID. The ExcludedLanguage column can specify the language ID for a single language, such as 1033 for U.S. English, or specify the language ID for a language group, such as 9 for any English. The ExcludedLanguage column can accept negative language IDs. The meaning of the value in the ExcludedLanguage column is as follows.
ExcludedLanguageDescription> 0Exclude the language IDs specified by ExcludedLanguage.= 0Exclude no language IDs.< 0Exclude all language IDs except those specified by ExcludedLanguage.TrueminversionstringMinimum version excluded from a range. If ommitted, all versions before maxversion are excluded. If both minversion and maxversion are ommitted there is no exclusion based on version.FalsemaxversionstringMaximum version excluded from a range. If ommitted, all versions after minversion are excluded. If both minversion and maxversion are ommitted there is no exclusion based on version.False
Examples
Exclude the all NAnt merge modules created before version 0.85.0
<moduleexclusions>
<exclusion id="NAnt_MergeModule.2D2FB50C_DADF_4813_8932_8EF1E8CB8E80" language="0" maxversion="0.85.0" />
</moduleexclusions>
Used to modify the sequence of tasks/events that execute during the
overall installation process.
Parameters
AttributeTypeDescriptionRequiredtypemsi:MSISequenceTableValid inputs:
installexecute represents ModuleInstallExecuteSequence Table.installui represents ModuleInstallUISequence Tableadminexecute represents ModuleAdminExecuteSequence Tableadminui represents ModuleAdminUISequence Tableadvtexecute represents ModuleAdvtUISequence TableTrueactionstringAction to insert into sequence. Refers to one of the installer standard actions, or an entry in the merge module's CustomAction table or Dialog table. If a standard action is used in the Action column of a merge module sequence table, the BaseAction and After attributes must be ommitted.TruesequenceintThe sequence number of a standard action. If a custom action or dialog is entered into the Action column of this row, this attribute must be ommitted When using standard actions in merge module sequence tables, the value in the Sequence column should be the recommended action sequence number. If the sequence number in the merge module differs from that for the same action in the .msi file sequence table, the merge tool uses the sequence number from the .msi file. See the suggested sequences in Using a Sequence Table for the recommended sequence numbers of standard actions.FalsebaseactionstringCan contain a standard action, a custom action specified in the merge module's custom action table, or a dialog specified in the module's dialog table. Is a key into the Action column of this table. It cannot be a foreign key into another merge table or table in the .msi file. This means that every standard action, custom action, or dialog listed in the BaseAction column must also be listed in the Action column of another record in this table.FalseafterboolBoolean for whether Action comes before or after BaseAction
ValueDescriptionTrueAction to come after BaseActionFalseAction to come before BaseActionFalseconditionstringA conditional statement that indicates if the action is be executed.False
If a table in the merge module is listed in the ModuleIgnoreTable
table, it is not merged into the .msi file. If the table already
exists in the .msi file, it is not modified by the merge. The tables
in the ModuleIgnoreTable can therefore contain data that is unneeded
after the merge.
More information is available here.
Parameters
AttributeTypeDescriptionRequiredtablestringName of the table in the merge module that is not to be merged into the .msi file.True
Examples
Ensure the module is compatible for users who have versions of Mergemod.dll earlier than 2.0
<moduleignoretables>
<table name="ModuleConfiguration" />
<table name="ModuleSubstitution" />
<table name="_ModuleConfigurationGroup" />
</moduleignoretables>
The ModuleSubstitution table specifies the configurable fields of a
module database and provides a template for the configuration of each
field. The user or merge tool may query this table to determine what
configuration operations are to take place. This table is not merged
into the target database.
More information is available here.
Parameters
AttributeTypeDescriptionRequiredtablestringName of the table being modified in the module database.TruerowstringSpecifies the primary keys of the target row in the table named in the Table column. Multiple primary keys are separated by semicolons. Target rows are selected for modification before any changes are made to the target table. If one record in the ModuleSubstitution table changes the primary key field of a target row, other records in the ModuleSubstitution table are applied based on the original primary key data, not the resulting of primary key substitutions. The order of row substitution is undefined. Values in this column are always in CMSM special format. A literal semicolon (';') or equal sign ('=') can be added by prefixing the character with a backslash. '\'. A null value for a key is signified by a null, a leading semicolon, two consecutive semicolons, or a trailing semicolon, depending on whether the null value is a sole, first, middle, or final key column value.TruecolumnstringSpecifies the target column in the row named in the Row column. If multiple rows in the ModuleSubstitution table change different columns of the same target row, all the column substitutions are performed before the modified row is inserted into the database. The order of column substitution is undefined.TruevaluestringContains a string that provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column. When a substitution string of the form [=ItemA] is encountered, the string, including the bracket characters, is replaced by the value for the configurable "ItemA." The configurable item "ItemA" is specified in the Name column of the ModuleConfiguration table and its value is provided by the merge tool. If the merge tool declines to provide a value for any item in a replacement string, the default value specified in the DefaultValue column of the ModuleConfiguration Table is substituted. If a string references an item not in the ModuleConfiguration table, the merge fails.
This column uses CMSM special format. A literal semicolon (';') or equals sign ('=') can be added to the table by prefixing the character with a backslash. '\'.
The Value field may contain multiple substitution strings. For example, the configuration of items "Food1" and "Food2" in the string: "[=Food1] is good, but [=Food2] is better because [=Food2] is more nutritious."
Replacement strings must not be nested. The template "[=AB[=CDE]]" is invalid.
If the Value field evaluates to null, and the target field is not nullable, the merge fails and an error object of type msmErrorBadNullSubstitution is created and added to the error list. For details, see the error types described in get_Type Function.
If the Value field evaluates to the null GUID: {00000000-0000-0000-0000-000000000000}, the null GUID is replaced by the name of the feature before the row is merged into the module. For details, see Referencing Features in Merge Modules.
The template in the Value field is evaluated before being inserted into the target field. Substitution into a row is done before replacing any features.
If the Value column evaluates to a string of only integer characters (with an optional + or -), the string is converted into an integer before being substituted into an target field of the Integer Format Type. If the template evaluates to a string that does not consist only of integer characters (and an optional + or -) the result cannot be substituted into an integer target field. Attempting to insert a non-integer into an integer field causes the merge to fail and adds a msmErrorBadSubstitutionType error object to the error list.
If the target column specified in the Table and Column fields is a Text Format Type, and evaluation of the Value field results in an Integer Format Type, a decimal representation of the number is inserted into the target text field.
If the target field is an Integer Format Type, and the Value field consists of a non-delimited list of items in Bitfield Format, the value in the target field is combined using the bitwise AND operator with the inverse of the bitwise OR of all of the mask values from the items, then combined using the bitwise OR operator with each of the integer or bitfield items when masked by their corresponding mask values. Essentially, this explicitly sets the bits from the properties to the provided values but leaves all other bits in the cell alone.
If the Value field evaluates to a Key Format Type, and is a key into a table that uses multiple primary keys, the item name may be followed by a semicolon and an integer value that indicates the 1-based index into the set of values that together make a primary key. If no integer is specified, the value 1 is used. For example, the Control table has two primary key columns, Dialog_ and Control. The value of an item "Item1" that is a key into the Control table will be of the form "DialogName;ControlName", where DialogName is the value in the Dialog_ table and ControlName is the value in the Control column. To substitute just ControlName, the substitution string [=Item1;2] should be used.
False
Identifies the configurable attributes of the module. This table is
not merged into the database.
More information is available here.
Parameters
AttributeTypeDescriptionRequirednamestringName of the configurable item. This name is referenced in the formatting template in the Value column of the ModuleSubstitution table.Trueformatmsi:MSMModuleConfigurationFormatSpecifies the format of the data being changed
textkeyintegerbitfieldTruetypestringSpecifies the type for the data being changed. This type is used to provide a context for any user-interface and is not used in the merge process. The valid values for this depend on the value in the Format attribute.FalsecontextdatastringSpecifies a semantic context for the requested data. The type is used to provide a context for any user-interface and is not used in the merge process. The valid values for this column depend on the values in the Format and Type attributes.FalsedefaultvaluestringSpecifies a default value for the item in this record if the merge tool declines to provide a value. This value must have the format, type, and context of the item. If this is a "Key" format item, the foreign key must be a valid key into the tables of the module. Null may be a valid value for this column depending on the item. For "Key" format items, this value is in CMSM special format. For all other types, the value is treated literally. Module authors must ensure that the module is valid in its default state. This ensures that versions of Mergemod.dll earlier than version 2.0 can still use the module in its default state.FalseattrintBit field containing attributes for this configurable item. Null is equivalent to 0.
ValueDescription1This attribute only applies to records that list a foreign key to a module table in their DefaultValue field.2When this attribute is set, null is not a valid response for this item. This attribute has no effect for Integer Format Types or Bitfield Format Types.FalsedisplaynamestringProvides a short description of this item that the authoring tool may use in the user interface. This column may not be localized. Set this column to null to have the module is request that the authoring tool not expose this property in the UI.FalsedescriptionstringProvides a description of this item that the authoring tool may use in UI elements. This string may be localized by the module's language transform.FalsehelplocationstringProvides either the name of a help file (without the .chm extension) or a semicolon delimited list of help namespaces. This can be ommitted if no help is available.FalsehelpkeywordstringProvides a keyword into the help file or namespace from the HelpLocation column. The interpretation of this keyword depends on the HelpLocation attribute.False
Maintains a forward reference to a .tlb file
in the same directory as an assembly .dll
that has been registered for COM interop.
Creates a new .
The typelibrary id.
The typelibrary filename.
The name of the assembly.
The feature containing the typelibrary's file.
The name of the Assembly's component.
Retrieves the name of the Assembly's component.
The Assembly's component Name.
Retrieves the typelibrary filename.
The typelibrary filename.
Retrieves the typelibrary id.
The typelibrary id.
Retrieves the name of the assembly.
The name of the assembly.
Retrieves the feature containing the typelibrary's file.
The feature containing the typelibrary's file.
A task that generates a summary HTML
from a set of NUnit xml report files.
This task can generate a combined HTML report out of a set of NUnit
result files generated using the XML Result Formatter.
All the properties defined in the current project will be passed
down to the XSLT file as template parameters, so you can access
properties such as nant.project.name, nant.version, etc.
]]>
Initializes task and ensures the supplied attributes are valid.
Xml node used to define this task instance.
This is where the work is done
Load a stylesheet from the assemblies resource stream.
File name of the file to extract.
Load a stylesheet from the file system.
The XSLT file to load.
Initializes the XmlDocument instance
used to summarize the test results
Builds an XsltArgumentList with all
the properties defined in the
current project as XSLT parameters.
Run the transform and output to filename
The format of the generated report. The default is
.
The output language.
Open all description method. Default to "false".
The directory where the files resulting from the transformation
should be written to. The default is the project's base directory.
Set of XML files to use as input
Set of summary XML files to use as input.
XSLT file used to generate the report if is
.
Custom XmlResolver used to load the
XSLT files out of this assembly resources.
Loads the specified file from our internal resources if its there
Adds files to a PVCS repository.
This task uses the addfiles PCLI command to add files to a PVCS repository.
Adds File1.txt and File2.txt to the root level of the
project database specified by the project-database property.
]]>
Adds File1.txt and File2.txt to the folder project
of the project database specified by the project-database
property.
]]>
Adds another_file.txt and all files and folders at and below
C:\Data to the project database specified by the project-database
property.
]]>
Adds all files at and below C:\Data\ to the project database specified by the project-database
property. Workfiles will be copied to the workfile location and will overwrite any existing files (as
dictated by the copymode attribute). The relevant revisions will be locked in PVCS. Added files
will be assigned the SYSTEST promotion group.
]]>
Base class for all PVCS project database tasks that operate against one or more entities.
A base class for PVCS tasks that deal with project databases.
This class can be used as a base class for PVCS tasks that operate against a project database. It provides
common attributes and functionality for such tasks.
Base class functionality for all PVCS tasks.
This is the PCLI process that is run by this task.
Starts the process that is wrapped by this PVCS task.
Provided only to seal the implementation of StartProcess().
The process that was started.
Executes the task.
Provided only to seal the implementation of ExecuteTask().
Prepares the process wrapped by this task for execution.
The process to prepare for execution.
Allows tasks to add their task-specific arguments to the collection of arguments to be passed to the
PVCS command-line tool.
The collection of arguments.
Constructs the program arguments that should be used when executing the wrapped PVCS process.
A string containing the program arguments.
Gets or sets the location of the PVCS binary command-line tools.
Generally, the PVCS command-line tools will be available on the current path. However, if this is not
the case then this property allows an exact location to be specified. If this property is not set, the
task will assume that the PVCS binaries are available on the current path.
Gets or sets the process that is run as a result of running this task.
Gets the program arguments with which to run the wrapped PVCS process.
Gets the executable name for the command-line tool to run for the PVCS task.
Gets the PCLI command name that corresponds to the operation the task performs.
By default, this property will return the name of the task minus the starting "pvcs". Subclasses need
only override this property if there is a mismatch between the task name and the PCLI command name.
Set to true if the property is manipulated. Some tasks don't
support this property and so an exception will be thrown if the property is used.
Gets or sets a value indicating whether the operation should include subprojects.
This is equivalent to the -z command-line option.
Gets a value indicating whether the specific task implementation supports the includesubprojects
task attribute. If not, an exception will be thrown if an attempt is made to set the attribute.
Gets or sets the password to use when connecting to the project database.
This is equivalent to the password part of the -id command-line option.
Gets or sets the user ID to use when connecting to the project database.
This is equivalent to the user ID part of the -id command-line option.
Gets or sets the workspace to use when connecting to the project database.
This is equivalent to the -sp command-line option.
Gets or sets the project database to utilize during the operation.
This is equivalent to the -pr command-line option.
Gets or sets the project path to utilize during the operation.
This is equivalent to the -pp command-line option.
Constructs and initializes an instance of PVCSMultipleEntityTask.
Gets or sets the entities involved in the operation.
Constructs and initializes an instance of PVCSAddFilesTask.
Gets or sets the archive description for versioned files.
This is equivalent to the -t parameter to the pcli addfiles command.
Gets or sets the copy mode for the operation.
Gets or sets a value indicating whether workfiles will be deleted after adding them to PVCS.
This is equivalent to the -d parameter to the pcli addfiles command.
Gets or sets the description for versioned files.
This is equivalent to the -m parameter to the pcli addfiles command.
Gets or sets a value indicating whether versioned files should be locked after being added to PVCS.
This is equivalent to the -l parameter to the pcli addfiles command.
Gets or sets the promotion group to which added files will be assigned. Setting this attribute to an
empty string indicates the versioned files will not be assigned to any promotion group.
This is equivalent to the -g parameter to the pcli addfiles command.
Gets or sets a value indicating whether workfiles shouldn't be added if they already exist in the PVCS
repository.
This is equivalent to the -qw parameter to the pcli addfiles command.
Gets or sets the version label to assign to the added versioned files.
This is equivalent to the -v parameter to the pcli addfiles command.
Specifies possible copy modes for the task.
Indicates the default copy mode should be used.
Indicates that workfiles should be copied to the project workfile location is it doesn't already exist.
Indicates that workfiles should be copied to the project workfile location and overwrite any existing
workfile.
Adds a user to a PVCS project or project database.
This task uses the adduser PCLI command to add the user to the PVCS project or database.
Adds a user with name kb and password *Muse* to the project database specified by the
project-database property.
]]>
Adds a user with name kb and password *Muse* to the project database specified by the
project-database property. The user's logon will expire on the 26th of October, 2005.
]]>
Constructs and initializes an instance of PVCSAddUserTask.
Gets or sets the expiration date for the new user.
This is equivalent to the -e parameter to the pcli adduser command.
Gets or sets the password for the new user.
Gets or sets the user name for the new user.
Assigns a promotion group to versioned files.
This task uses the assigngroup PCLI command to assign the group to versioned files.
Assigns the SYSTEST promotion group to all entities with the DEV promotion group in the
folder project.
]]>
Assigns the SYSTEST promotion group to revision 1.2 of all entities.
]]>
Base class for all PVCS project database tasks that operate against a single entity.
Gets or sets the entity involved in the operation.
Constructs and initializes an instance of PVCSAssignGroupTask.
Gets or sets the promotion group to assign to the versioned files.
This is equivalent to the -g parameter to the pcli assigngroup command.
Gets or sets the promotion group for the versioned files to be assigned the promotion group.
This is equivalent to the -r parameter to the pcli assigngroup command.
Gets or sets the revision for the versioned files to be assigned the promotion group.
This is equivalent to the -r parameter to the pcli assigngroup command.
If this property has not yet been set, it will return Double.MaxValue.
Gets or sets the version label for the versioned files to be assigned the promotion group.
This is equivalent to the -r parameter to the pcli assigngroup command.
Changes the promotion group for specified versioned files.
This task uses the changegroup PCLI command to change the group for versioned files.
Changes the promotion group for file.txt from SYSTEST to DEV.
]]>
Changes the promotion group for all files from DEV to PROD.
]]>
Gets or sets the promotion group to change from.
This is equivalent to the -gf parameter to the pcli changegroup command.
Gets or sets the promotion group to change to.
This is equivalent to the -gt parameter to the pcli changegroup command.
Encapsulates the details of a PVCS command argument.
PVCS tasks must "fill in" a collection of arguments to be passed to the PVCS command line interface (PCLI).
This class represents one such argument.
Each argument consists of a command and an optional command value. The command is always passed to the PVCS
command line utility and is therefore required. An example of a command is "-g" which is passed to many
PVCS command line utilities to specify a promotion group.
The command value is used to specify extra information to the command. For example, if the command is "-g"
then the command value would be the name of the promotion group.
The command can be assigned a position (see the property). This position defines
where the command appears relative to other commands. For example, some commands must appear after other
commands. Therefore, they should be assigned a position of .
Constructs an instance of PVCSCommandArgument with the specified information. No value is
applied and the argument has a position of .
The command string.
Constructs an instance of PVCSCommandArgument with the specified information. The argument has
a position of .
The command string.
The value for the command, or null if no value applies.
Constructs an instance of PVCSCommandArgument with the specified information.
The command string.
The value for the command, or null if no value applies.
The position for the command.
Compares two PVCS command arguments based on their position.
The PVCS command argument to compare to this.
Less than zero if this instance is less than .
Zero if this instance is equal to .
Greater than zero if this instance is greater than .
Converts this command argument to its string representation.
The string representation of this command argument.
Escapes a string command line argument.
This method attempts to deal with the mess of keeping both PCLI and the shell happy with string
arguments. It's not perfect yet (try an argument with several backslashes before a double quote). It
would be nice to have a regex to handle this but I wouldn't even bother until this logic is spot on.
The string argument to escape.
The escaped string argument.
Gets a string that contains the command to pass to PVCS.
Gets the value to append to .
If this property is null, no value will be appended to the command.
Gets the position for the command.
Implements a type-safe collection of s.
Adds a new command argument to this collection with the specified information.
The command string for the new command.
Adds a new command argument to this collection with the specified information.
The command string for the new command.
The command value for the new command, or null if no value applies.
Adds a new command argument to this collection with the specified information.
The command string for the new command.
The command value for the new command, or null if no value applies.
The position for the new command.
Adds all specified command arguments to this collection.
The collection of command arguments to add.
Retrieves an array of objects in this collection.
An array of command arguments in this collection.
Allows the objects in the collection to be manipulated.
Defines possible values for specifying positions for PCLI command arguments and arguments to PCLI itself.
Members of this enumeration are used to specify relative positions of PCLI command arguments. All arguments
given a position of will appear after arguments with a position of
or . Similarly, arguments with a position of will appear after
those with a position of but before those with a position of .
No order is guaranteed for arguments with the same position. That is, if two arguments have a position of
, it is not possible to specify which one is output to the command line first.
The member is special in that it ensures the argument will appear before
the PCLI command name. This is useful when the argument is to PCLI itself, not the PCLI command.
Arguments that should appear before the PCLI command argument. This is useful for arguments to PCLI
itself (as opposed to the PCLI command).
PCLI command arguments that should appear before other PCLI command arguments.
PCLI command arguments that should appear before other arguments with a position of
but after other arguments with a position of .
PCLI command arguments that should appear after other PCLI command arguments.
Creates a project in a PVCS repository.
This task uses the createproject PCLI command to create the project in the PVCS repository.
Creates a project called Songs in the project database specified by the project-database
property. The workfile location for the project is set to C:\Work\Songs.
]]>
Gets or sets the workfile location for the created project.
This is equivalent to the -w parameter to the pcli createproject command.
Removes a specified promotion group from versioned files.
This task uses the deletegroup PCLI command to remove the promotion group from the versioned files.
Removes the DEV promotion group from App.ico in the project database specified by the
project-database property.
]]>
Removes the DEV promotion group all files in the project database specified by the
project-database property.
]]>
Gets or sets the promotion group to delete.
This is equivalent to the -g parameter to the pcli deletegroup command.
Removes a label from specified versioned files or projects.
This task uses the deletelabel PCLI command to remove the version label from the versioned files.
Removes the label called My Label from the versioned file called App.ico from the project
database specified by the project-database property.
]]>
Removes the label called My Label from all files at and below both folder1 and folder2
in the project database specified by the project-database property.
]]>
Gets or sets the version label to remove.
This is equivalent to the -v parameter to the pcli deletelabel command.
Deletes folder, projects, versioned items and workspaces in a PVCS repository.
This task uses the delete PCLI command to delete the items.
Deletes the versioned file called App.ico from the project database specified by the
project-database property.
]]>
Deletes the files called file1.txt and file2.txt from the project called folder in the
project database specified by the project-database property.
]]>
Deletes the specified users from the PVCS access control database.
This task uses the deleteuser PCLI command to delete the users.
Deletes the users called kb, kv and tb from the project database specified by the
project-database property.
]]>
Gets files from a PVCS repository.
This task uses the get PCLI command to get the versioned files from PVCS.
Gets the versioned file called App.ico from the project database specified by the
project-database property.
]]>
Gets the versioned file called App.ico from the project database specified by the
project-database property. The file is also locked.
]]>
Gets all revisions assigned the SYSTEST promotion group from the project database specified by the
project-database property. The workfiles are touched after the get operation.
]]>
Constructs and initializes an instance of PVCSGetTask.
Gets or sets the base project path.
This is equivalent to the -bp parameter to the pcli get command.
Gets or sets an alternative location for workfiles.
This is equivalent to the -a parameter to the pcli get command.
Gets or sets a value indicating whether revisions involved in the get operation should be locked.
This is equivalent to the -l parameter to the pcli get command.
Gets or sets whether the workfiles should be made writable.
This is equivalent to the -w parameter to the pcli get command.
Gets or sets the maximum date and time of workfiles to retrieve.
This is equivalent to the -d parameter to the pcli get command.
If this property has not yet been set, it will return DateTime.MaxValue.
Gets or sets a value indicating whether the workfile location for files should be overridden.
This is equivalent to the -o parameter to the pcli get command.
Gets or sets the promotion group to get.
This is equivalent to the -g parameter to the pcli get command.
Gets or sets the revision to get against.
This is equivalent to the -r parameter to the pcli get command.
If this property has not yet been set, it will return Double.MaxValue.
Gets or sets a value indicating whether workfiles should be touched after the get.
This is equivalent to the -t parameter to the pcli get command.
Gets or sets a value indicating whether workfiles should only be gotten if they are newer than the
current workfile.
This is equivalent to the -u parameter to the pcli get command (without specifying a
date or time).
Gets or sets the version label to get against.
This is equivalent to the -v parameter to the pcli get command.
Assigns a version label to a revision of the specified versioned files.
This task uses the label PCLI command to label the items.
Labels all files in the project database specified by the project-database property. The label
applied is Beta.
]]>
Labels revision 1.8 of App.ico as Dodgy in the project database specified by the
project-database property.
]]>
Constructs and initializes an instance of PVCSLabel.
Gets or sets a value indicating whether the label should "float" to the newest revision.
This is equivalent to the -f parameter to the pcli label command.
Gets or sets the revision to label.
This is equivalent to the -r parameter to the pcli label command.
If this property has not yet been set, it will return Double.MaxValue.
Gets or sets the version label to assign.
This is equivalent to the -v parameter to the pcli label command.
Locks a revision of the specified versioned files.
This task uses the lock PCLI command to lock the versioned files.
Locks App.ico in the project database specified by the project-database property.
]]>
Locks all files at and below folder in the project database specified by the project-database
property.
]]>
Constructs and initializes an instance of PVCSLock.
Gets or sets a value indicating whether locking files will take place if checking in those files would
result in a branch.
This is equivalent to the -nb parameter to the pcli lock command.
Gets or sets a value indicating whether already locked revisions will be locked.
This is equivalent to the -nm parameter to the pcli lock command.
Gets or sets the promotion group to assign the locked revision.
This is equivalent to the -g parameter to the pcli lock command.
Gets or sets the revision to lock.
This is equivalent to the -r parameter to the pcli lock command.
If this property has not yet been set, it will return Double.MaxValue.
Gets or sets a value indicating whether revisions will be locked even if that will result in a branch
upon check in.
This is equivalent to the -yb parameter to the pcli lock command.
Gets or sets a value indicating whether revisions will be locked even if that will result in multiple
locks against the same revision.
This is equivalent to the -ym parameter to the pcli lock command.
Promotes versioned files to the next promotion group.
This task uses the promotegroup PCLI command to promote versioned files.
Promotes all files in the root of the project database specified by the project-database property.
The files are promoted from the DEV promotion group to the next. Promotion will not take place across
branches.
]]>
Promotes all files in the project database specified by the project-database property. The files are
promoted from the SYSTEST promotion group to the next. Promotion will take place across branches.
]]>
Gets or sets a value indicating whether the promotion may occur across branches.
This is equivalent to the -nb and -yb parameters to the pcli promotegroup command.
Gets or sets the promotion group to be promoted.
This is equivalent to the -g parameter to the pcli promotegroup command.
Puts files into a PVCS repository.
This task uses the put PCLI command to put the files into PVCS.
Puts the file called App.ico into the project database specified by the project-database
property. The description for the change is Added more colour.
]]>
Puts all files into the project database specified by the project-database property. The description
for the changes is Major changes. Even if the workfiles have not been changed, they will result in a
new revision in PVCS.
]]>
Puts file.txt and all files in folder into the project database specified by the
project-database property. The description for the changes is Some changes. A new branch is
forcibly created via the forcebranch attribute. Leading and trailing whitespace is ignored when
determining whether the workfile has been altered.
]]>
Constructs and initializes an instance of PVCSPut.
Gets or sets the base project path.
This is equivalent to the -bp parameter to the pcli put command.
Gets or sets a value indicating whether unchanged workfiles should be checked in.
This is equivalent to the -yf parameter to the pcli put command.
Gets or sets the description to be applied to the checked in revisions.
This is equivalent to the -m parameter to the pcli put command.
Gets or sets a value indicating whether the version label specified by
should float.
This is equivalent to the -fv parameter to the pcli put command.
Gets or sets a value indicating whether a new branch will be created.
This is equivalent to the -fb parameter to the pcli put command.
Gets or sets a value indicating whether leading and trailing spaces should be ignored when determining
whether the revision has changed.
This is equivalent to the -b parameter to the pcli put command.
Gets or sets a value indicating whether the workfile should kept in its original state.
This is equivalent to the -k parameter to the pcli put command.
Gets or sets an alternative location for workfiles.
This is equivalent to the -a parameter to the pcli put command.
Gets or sets a value indicating the files should be locked after the put operation.
This is equivalent to the -l parameter to the pcli put command.
Gets or sets a value indicating whether the workfile location for files should be overridden.
This is equivalent to the -o parameter to the pcli put command.
Gets or sets the promotion in use. If a promotion group is specified, this option identifies the
promotion group to which the revision is currently assigned. If no promotion group is specified (ie.
this property is set to an empty string), this option indicates that one is not identifying the
revision by promotion group.
This is equivalent to the -g parameter to the pcli put command.
Gets or sets a value indicating whether the version label specified by
should be reassigned if it already exists.
This is equivalent to the -yv parameter to the pcli put command.
Gets or sets the revision number to use for the new revision.
This is equivalent to the -r parameter to the pcli put command.
Gets or sets a value indicating whether the same description should be used for all versioned items.
This is true by default.
This is equivalent to the -ym parameter to the pcli put command.
Gets or sets the version label to assign to the new revisions.
This is equivalent to the -v parameter to the pcli put command.
Renames a label in a PVCS repository.
This task uses the renamelabel PCLI command to rename the label.
Renames the label on App.ico from Beater to Beta in the project database specified by
the project-database property.
]]>
Renames the label on all files from Alfa to Alpha in the project database specified by the
project-database property.
]]>
Gets or sets the existing label.
This is equivalent to the -vf parameter to the pcli renamelabel command.
Gets or sets the new label.
This is equivalent to the -vt parameter to the pcli renamelabel command.
Unlocks revisions of versioned files in a PVCS repository.
This task uses the unlock PCLI command to perform the unlock operation.
Unlocks App.ico in the project database specified by the project-database property.
]]>
Unlocks all files in the project specified by the project-database property. Locks by all users are
removed.
]]>
Constructs and initializes an instance of PVCSUnlock.
Gets or sets the revision number to use for the new revision.
This is equivalent to the -r parameter to the pcli unlock command.
Gets or sets the unlock mode for the operation.
This is equivalent to the -u parameter to the pcli unlock command.
Gets or sets the user whose locked files are to be unlocked. This is relevant only when
is set to .
Specifies possible modes for the task.
All locks held by the current user are removed.
All locks held by a specified user are removed.
All locks held by all users are removed.
Open file(s) in a client workspace for addition to the depot.
Add all cs files under the given directory into the "new" changelist
(will be created if it doesn't already exist).
]]>
Add Test.txt into the default changelist.
]]>
Base class for Perforce (P4) NAnt tasks. See individual task for example usage.
P4AddP4ChangeP4DeleteP4EditP4LabelP4LabelsyncP4PrintP4ReopenP4RevertP4SubmitP4Sync
Execute the perforce command assembled by subclasses.
The p4 server and port to connect to. The default is "perforce:1666".
The p4 client spec to use. The default is the current client.
The p4 username. The default is the current user.
The client, branch or label view to operate upon. The default is
"//...".
Prepends a descriptive field (for example, text:, info:, error:, exit:)
to each line of output produced by a Perforce command. This is most
often used when scripting. The default is .
Gets the command line arguments for the external program.
The command line arguments for the external program.
Override the ExeName paramater for p4.exe
Derived classes should override this to provide command-specific
commandline arguments.
Build the command string for this particular command.
The command string for this particular command.
File(s) to add. File name can contain wildcard characters. (Note:
this is not using p4 wildcard syntax, but the OS wildcards).
Changelist that files will be added into. Changelist will be created
if not already present.
File Type settings. Applied to all files in the
parameter.
This is an override used by the base class to get command specific args.
Create or delete a changelist specification.
Create a new changelist called "mynewchange".
]]>
Delete the changelist called "mynewchange".
]]>
Builds the command string for this particular command.
The command string for this particular command.
Changelist to create or delete.
If causes passed in changelist to be
deleted. The default is .
This is an override used by the base class to get command specific args.
Add/modify/delete a client spec in perforce.
Add a client (modify if already present and have sufficient rights).
]]>
Delete a client.
]]>
Builds the command string for this particular command.
The command string for this particular command.
Name of client to create/delete.
Root path for client spec.
Delete the named client. The default is .
Force a delete even if files are open. The default is
.
This is an override used by the base class to get command specific args.
Open file(s) in a client workspace for deletion from the depot.
Mark all cs files under the give view for deletion and place them in
the "Deleting" changelist.
]]>
Builds the command string for this particular command.
The command string for this particular command.
Changelist to place the marked for deletion item into.
The client, branch or label view to operate upon.
This is an override used by the base class to get command specific args.
Opens file(s) in a client workspace for edit.
Open all files in the ProjectX Test folder for edit, and place into
the default changelist.
]]>
Open all *.txt files in the ProjectX Test folder for edit, and place
into the "testing" changelist.
]]>
Builds the command string for this particular command.
The command string for this particular command.
Changelist to place the opened files into.
File Type settings.
The client, branch or label view to operate upon.
This is an override used by the base class to get command specific args.
Returns information from the "p4 info" command back into variables for
use within the build process.
Fill the variables using the task.
]]>
The name of the property to store the p4 user name in.
The name of the property to store the p4 client name in.
The name of the property to store the p4 host name in.
The name of the property to store the p4 client root in.
Create or edit a label specification and its view.
Create a new label called "SDK_V1.2".
]]>
Delete the previously created label.
]]>
Builds the command string for this particular command.
The command string for this particular command.
Name of label to create/delete.
Delete the named label. The default is .
This is an override used by the base class to get command specific args.
Synchronize a label with the contents of the current client workspace.
Apply a previously created label to the specified view.
]]>
Builds the command string for this particular command.
The command string for this particular command.
Name of the label to sync the specified or default view with.
Delete the view defined in the label, or matching the input view
from the label. The default is .
This is an override used by the base class to get command specific args.
Fetch a specific file from a Perforce depot without needing a clientspec
to map it.
]]>
Builds the command string for this particular command.
The command string for this particular command.
The depot or local filename (including optional path) of the file
to fetch.
The local filename to write the fetched file to.
This is an override used by the base class to get command specific args.
Move opened files between changelists or change the files’ type.
This task has two different but related uses:
Moving opened files between changelists (default or named).
Changing the type of an opened file.
Move the specified files matching the view into the "New" changelist.
]]>
Modify the specified files matching the view to the given file type.
The change won't affect the repository until submitted.
]]>
Builds the command string for this particular command.
The command string for this particular command.
The client, branch or label view to operate upon.
Changelist to place the reopened files into.
File Type settings.
This is an override used by the base class to get command specific args.
Discard changes made to open files.
Revert all txt files in a given changelist.
]]>
Revert all unchanged files opened in the given changelist.
]]>
Revert all unchanged files opened in any changelist.
]]>
Builds the command string for this particular command.
The command string for this particular command.
Changelist to perform the revert action on. optional.
Revert all unchanged or missing files from the changelist. default is false. optional.
This is an override used by the base class to get command specific args.
Set registry variables that perforce uses.
Note: the environment variables that p4 uses will be set, but will not
be validated.
Modify any of the three variables (at least one required).
]]>
Builds the command string for this particular command.
The command string for this particular command.
This is an override used by the base class to get command specific args.
Send changes made to open files to the depot.
Submit changelist "Temp", but first revert all unchanged files in the
changelist.
]]>
Submit changelist, but leave the files open afterwards.
]]>
Builds the command string for this particular command.
The command string for this particular command.
Changelist to submit.
Keep the files open after submitting. The default is
.
Revert all unchanged or missing files from the changelist.
The default is .
This is an override used by the base class to get command specific args.
Synchronize client space to a Perforce depot view.
Sync to head using P4USER, P4PORT and P4CLIENT settings specified.
]]>
Sync to head using default p4 environment variables.
]]>
Force a re-sync to head, refreshing all files.
]]>
Sync to a label.
]]>
Builds the command string for this particular command.
The command string for this particular command.
Label to sync client to; optional.
Force a refresh of files. The default is .
This is an override used by the base class to get command specific args.
Static helper class for Perforce tasks.
ask p4 for the user name
ask p4 for the client name
Get a changelist number based on on its name
Get a changelist number based on on its name
Create a new label
Create a new Client
Create a new changelist
Description of Changelist
call the p4 process to
call the p4 process to
Execute a process and return its ourput
Execute a process and return its ourput
Execute a process by name
Used to add files to a Visual SourceSafe database. If the file is currently
in the SourceSafe database a message will be logged but files will continue to be added.
This version does not support recursive adds. Only adds in the root directory will be added to the
SourceSafe database.
]]>
The base abstract class for all Visual Source Safe Tasks.
Provides the core attributes, and functionality for opening an item
in a Visual Source Safe database.
Opens the Source Safe database and sets the reference to the specified
item and version.
Gets the value corresponding with the
specified .
A .
An representing the value
for the .
The path to the folder that contains "srcsafe.ini".
The Visual SourceSafe project or file path you wish the perform the
action on (starting with "$/").
The password to use to login to the SourceSafe database.
The name of the user needed to access the Visual SourceSafe database.
When no is specified and "Use network
name for automatic user log in" is enabled for the Visual SourceSafe
database, then the current Windows username will be used to log in.
The name of the user needed to access the Visual SourceSafe database.
When no is specified and "Use network
name for automatic user log in" is enabled, then the current
Windows username will be used to log in.
A version of the path to reference. Accepts multiple forms,
including the label, version number, or date of the version.
If omitted, the latest version is used.
Main task execution method
Create project hierarchy in vss
Places a comment on all files added into the SourceSafe repository.
List of files that should be added to SourceSafe.
Defines how the local timestamp of files retrieved from a SourceSafe
database should be set.
The timestamp of the local file is set to the current date and time.
The timestamp of the local file is set to the file's last
modification date and time.
The timestamp of the local file is set to the date and time that
the file was last checked in to the database.
Used to checkin files into Visual Source Safe.
Checkin all files from an absolute directory to a local sourcesafe database.
]]>Checkin a file from a relative directory to a remote sourcesafe database.
]]>
The comment for the new version.
The path to the local working directory.
Determines whether to perform a recursive checkin.
The default is .
Determines whether to leave the file(s) as writable.
The default is .
Task used to checkout files from Visual Source Safe.
Checkout the latest files from a local sourcesafe database.
]]>Checkout a file from a remote sourcesafe database. Put it in a relative directory.
]]>
The path to the local working directory.
Determines whether to perform a recursive checkout.
The default is .
Determines whether to leave the file(s) as writable.
The default is .
Set the behavior for timestamps of local files. The default is
.
Used to delete or Destroy files or projects in Visual Source Safe.
Delete a project from a local sourcesafe database.
]]>Delete a file from the remote sourcesafe database.
]]>Destroy a project from a local sourcesafe database.
]]>Destroy a file from the remote sourcesafe database.
]]>
Deletes the item unless is
then the item is destroyed.
Determines whether or not the item is Destroyed.
The default is .
Used to generate differences in a vss database. It will show all changes to a project
after the specified label.
This only shows differences between the current version and the version specified.
]]>
The value of the label to compare to. Required.
The output file to generate (xml)
Used to retrieve an item or project from a Visual Source Safe database.
Get the latest files from a local sourcesafe database.
]]>Get the latest version of a file from a remote sourcesafe database. Put it in a relative directory.
]]>Get the latest version of a file from a remote sourcesafe database. Remove any deleted files from local image.
]]>
Checks to see if we should remove local copies of deleted files, and starts
the scan.
Scans the Project Item for deleted files and removes their local
copies from the local image of the project. Obeys the recursive setting
(and thus optionally calls itself recursively).
The VSS Item (project) to check for deletions
The path to the folder of the item being processed
The path to the local working directory.
Determines whether to perform the get recursively.
The default is .
Determines whether to replace writable files.
The default is .
Determines whether the files will be writable.
The default is .
If refers to a project, determines whether files
marked "deleted" in the repository will be removed from the local
copy. The default is .
Determines whether the timestamp on the local copy
will be the modification time (if false or omitted,
the checkout time will be used)
Set the behavior for timestamps of local files. The default is
.
Generates an XML file showing all changes made to a Visual SourceSafe
project/file between specified labels or dates (by a given user).
Write all changes between "Release1" and "Release2" to XML file
"changelog.xml".
]]>
Write all changes between January 1st 2004 and March 31st 2004 to XML
file "history.xml".
]]>
The value of the label to start comparing to. If it is not included,
the compare will start with the very first history item.
The value of the label to compare up to. If it is not included,
the compare will end with the last history item.
Start date for comparison.
End date for comparison.
Output file to save history to (as XML).
Determines whether to perform the comparison recursively.
The default is .
Name of the user whose changes you want to see.
Gets the flags that should be used to retrieve the history of
.
Override to avoid exposing the corresponding attribute to build
authors.
Override to avoid exposing the corresponding attribute to build
authors.
Used to apply a label to a Visual Source Safe item.
Label all files in a local sourcesafe database. (Automatically applies the label recursively)
]]>Label a file in a remote sourcesafe database.
]]>
The label comment.
The name of the label.
Task is used to undo a checkout from SourceSafe
Undo a checkout of all of the files from a local sourcesafe database.
]]>Checkout a file from a remote sourcesafe database. Put it in a relative directory.
]]>
The path to the local working directory. This is required if you wish to
have your local file replaced with the latest version from SourceSafe.
Determines whether to perform a recursive undo of the checkout.
The default is .
Allows creation of view labels in StarTeam repositories.
Often when building projects you wish to label the source control repository.By default this task creates view labels with the build option turned on.This task was ported from the Ant task http://jakarta.apache.org/ant/manual/OptionalTasks/starteam.html#stlabel You need to have the StarTeam SDK installed for this task to function correctly.Creates a label in a StarTeam repository.
]]>
Base star team task.
Common super class for all StarTeam tasks. At this level of the hierarchy we are concerned only with obtaining a
connection to the StarTeam server. The subclass , abstracts tree-walking
behavior common to many subtasks.
This class ported from the Ant task http://jakarta.apache.org/ant/manual/OptionalTasks/starteam.html You need to have the StarTeam SDK installed for StarTeam tasks to function correctly.Jason YipSteve Cohen The username of the connection The username of the connection name of Starteam server to connect to port of Starteam server to connect to name of Starteam project to connect to name of Starteam view to connect toThe starteam server through which all activities will be done.
Derived classes must override this method to instantiate a view configured appropriately to its task.
the unconfigured Viewthe view appropriately configured.
All tasks will call on this method to connect to StarTeam and open the view for processing.
the a view to be used for processing. Returns the name of the user or a blank string if the user is not found.
a user's ID
the name of the user
Name of StarTeamServer.
Required if is not set. If you wish to set all
connection parameters at once set .
Port number of the StarTeam connection.
Required if is not set. If you wish to set all
connection parameters at once set .
The name of the StarTeam project to be acted on
Required if is not set. If you wish to set all
connection parameters at once set .
The name of the StarTeam view to be acted on.
Required if is not set. If you wish to set all
connection parameters at once set .
The StarTeam user name used for login.
Required if is not set. If you wish to set all
connection parameters at once set .
The password used for login.
Required if is not set. If you wish to set all
connection parameters at once set .
One stop to set all parameters needed to connect to a StarTeam server.
If you do not wish to specify a url you can set each parameter individually.
You must set all connection parameters for the task to be able to connect to the StarTeam server.Here is how to configure the url string.servername:portnum/project/viewYou can optionally specify a username and password.username:password@servername:portnum/project/view The name of the label to be set in Starteam. The label description to be set in Starteam. Is the label being created a build label. If set the datetime to set the label as of. Kludgy flag to keep track if date has been set.
Please kill this if you can. Here based on experiences I have had with VB.NET Does user wish to make a revision label?
Override of base-class abstract function creates an appropriately configured view.
For labels this a view configured as of this.lastBuild.
the unconfigured Viewthe snapshot View appropriately configured.
The name to be given to the label; required.
Should label be marked build : default is true
Should label created be a revision label. The default is
.
has no effect if this is set to
as revision labels cannot have a build status.
Optional description of the label to be stored in the StarTeam project.
Optional: If this property is set the label will be created as of the datetime specified.
Please provide a datetime format that can be parsed via
.
This property is ignored when set to
.
Task for supporting labeling of repositories with incremented version
numbers. The version number calculated will be concatenated to the
.
Instruments root of repository with versionnumber.xml file.
If this file is not present, it is created and checked into StarTeam.
The default version number is 1.0.0. By default the build number is
incremented. Properties are present to allow setting and incrementing
of major, minor, and build versions.
When label is created, properties are set to expose version information
and the new label :
labelVersion.textVersion.majorVersion.minorVersion.build
Incrementing or setting major or minor versions does NOT reset the
build version.
Increment the build version.
]]>
Set the major version.
]]>
Increment the minor version.
]]>
Example versionnumber.xml file.
]]>
Looks for versionnumber.xml at root of repository.
Updates the xml in this file to correspond with properties set by user and checks in changes.
A label is then created based on properties set.
Default behavior is to number.
If user sets , , or no incrementing is done
and the exact version set and/or read from versionnumber.xml is used.
The title of the Label is the property concatenated with the version number Major.Minor.Build
Locate the versionnumber.xml file in the repository. If it
is not present, the file is created. The file is checked out
exclusively for editing.
StarTeam view we are working with.
StarTeam file handle containing version xml.
Creates the versionumber.xml file in the repository.
StarTeam folder desired to put the versionnumber.xml files into
StarTeam File handle to the created file.
Allows user to specify the filename where the version xml is stored.
The default is versionnumber.xml.
Increment major version number. The default is .
If is set, this property is ignored.
Increment minor version number. The default is .
If is set, this property is ignored.
Increment build version number. The default is .
If is set, this property is ignored.
Major version number used for label. If this value is set,
is ignored.
Minor version number used for label. If this value is set,
is ignored.
Build version number used for label.
If this value is set. is ignored.
Task to check in files to StarTeam repositories.
You add files to the repository that are not controlled by setting .This task was ported from the Ant task http://jakarta.apache.org/ant/manual/OptionalTasks/starteam.html#stcheckin You need to have the StarTeam SDK installed for this task to function correctly.Recursively checks in all files in the project.
]]>
Base for tree based star team tasks.
Abstracts tree-walking behavior common to many subtasks.
This class provides tree iteration functionality. Derived classes will implement their specific task
functionally using the visitor pattern, specifically by implementing the method This class ported from the Ant task http://jakarta.apache.org/ant/manual/OptionalTasks/starteam.html You need to have the StarTeam SDK installed for StarTeam tasks to function correctly.
Does the work of opening the supplied Starteam view and calling
the method setting the pattern in motion to perform the task.
Helper method calls on the StarTeam API to retrieve an ID number for the specified view, corresponding to this.label.
The Label identifier or -1 if no label was provided. Derived classes must override this class to define actual processing to be performed on each folder in the tree defined for the task
the StarTeam folderto be visited
the local mapping of rootStarteamFolder
Derived classes must override this method to define tests for any preconditons required by the task.
This method is called at the beginning of the ExecuteTask method.
Gets the collection of the local file names in the supplied directory.
We need to check this collection against what we find in Starteam to
understand what we need to do in order to synch with the repository.
The goal is to keep track of which local files are not controlled by StarTeam.
Local folder to scan
hashtable whose keys represent a file or directory in localFolder.
Removes file being worked with from the generated hashtable.
The goal is to keep track of which local files are not controlled by StarTeam.
Hashtable of the current directory's file|dire
file to remove from list.
Evaluates defined and patterns against a filename.
Lifted/Modified from to convert patterns to match filenames to regularexpressions.
Search pattern - meant to be just a filename with no path info
The directory seperation code in here most likely is overkill.Regular expresssion for searching matching file names
Convert path patterns to regularexpression patterns. Stored in the given string collection.
collection of paths to expand into regular expressions
collection to store the given regularexpression patterns
Root StarTeam folder to begin operations on. Defaults to the root of the view.
Root Local folder where files are to be checkout/in or manipulated. Defaults to the StarTeam default folder.
Accepts comma de-limited list of expressions to include in tree operations.
If nothing is set ALL filespecs are included.
Match all C# files in the directory*.cs
Expressions should be just for filename matching.
Technically relative directory information is accepted but will never match.
Accepts comma de-limited list of expressions to exclude from tree operations.
If nothing is specified. NO filespecs are excluded.
Match No C# files in the directory*.cs
If a excludes pattern is set with no patterns present includes defaults to "*"
Expressions should be just for filename matching.
Technically relative directory information is accepted but will never match.
Default : true - should tasks recurse through tree.
Default : false - force check in/out actions regardless of the status that StarTeam is maintaining for the file.
If is set then this property should be set true.
Otherwise the checkout will be based on how the repository compares to local target folder.
Note that if forced is not on. Files with status Modified and Merge will not be processed.
Label used for checkout. If no label is set latest state of repository is checked out.
The label must exist in starteam or an exception will be thrown.
classes used to access static valuesFacotry classes used when files and folders are added to the repository. Populated when adduncontrolled is enabled. will folders be created for new items found with the checkin. The comment which will be stored with the checkin. holder for the add Uncontrolled attribute. If true, all local files not in StarTeam will be added to the repository. This attribute tells whether unlocked files on checkin (so that other users may access them) checkout or to
leave the checkout status alone (default).
Override of base-class abstract function creates an appropriately configured view. For checkins this is
always the current or "tip" view.
the unconfigured Viewthe snapshot View appropriately configured. Implements base-class abstract function to define tests for any preconditons required by the task Implements base-class abstract function to perform the checkin operation on the files in each folder of the tree.
the StarTeam folder to which files will be checked in
local folder from which files will be checked in
Adds to the StarTeam repository everything on the local machine that is not currently in the repository.
Hasttable containing files missing in the repository for the current folder
StarTeam folder to which these items are to be added.
Adds the file or directpry to the repository.
StarTeam folder underwhich items will be added.
the file or directory to add
true if the file was successfully added otherwise false.
if true, any files or folders NOT in StarTeam will be added to the repository. Defaults to "false".
Set to do an unlocked checkout; optional, default is false;
If true, file will be unlocked so that other users may change it. If false, lock status will not change.
Task to check out files from StarTeam repositories.
You can check out by and control the type of lock with .You can delete files that are not in source control by setting .This task was ported from the Ant task http://jakarta.apache.org/ant/manual/OptionalTasks/starteam.html#stcheckout You need to have the StarTeam SDK installed for this task to function correctly.Recursively checks out all files in the project with an exclusive lock.
]]>
holder for the createDirs property. holder for the deleteUncontrolled property. holder for the lockstatus property.
Override of base-class abstract function creates an appropriately configured view for checkout.
If a label is specified it is used otherwise the current view of the repository is used.
the unconfigured StarTeam Viewthe snapshot StarTeam View appropriately configured. Implements base-class abstract function to define tests for any preconditons required by the task
Implements base-class abstract function to perform the checkout operation on the files in each folder of the tree.
the StarTeam folder from which files to be checked out
the local mapping of the starteam folder
Deletes everything on the local machine that is not in the repository.
Hashtable containing filenames to be deleted
Utility method to delete the file (and it's children) from the local drive.
the file or directory to delete.
was the file successfully deleted
Default : true - Create directories that are in the Starteam repository even if they are empty.
Not fully tested CAREFUL Default : false - Should all local files NOT in StarTeam be deleted?
What type of lock to apply to files checked out.
LockTypeunchangeddefault: do not make any changes to the lock state of items.exclusiveExclusively lock items. No other users can update the object while it is exclusively locked.nonexclusivePut a non-exclusive lock on the item.unlockedRemove locks from all items checked out. This accompanied by force would effectively override a lock and replace local contents with the current version.
Allows creation of view labels in StarTeam repositories.
Often when building projects you wish to label the source control repository.By default this task creates view labels with the build option turned on.This task was ported from the Ant task http://jakarta.apache.org/ant/manual/OptionalTasks/starteam.html#stlabel You need to have the StarTeam SDK installed for this task to function correctly.Creates a label in a StarTeam repository.
]]>
This method does the work of creating the new view and checking it
into Starteam.
List items in StarTeam repositories.
This task was ported from the Ant task http://jakarta.apache.org/ant/manual/OptionalTasks/starteam.html#stlist You need to have the StarTeam SDK installed for this task to function correctly.Lists all files in a StarTeam repository.
]]>
Override of base-class abstract function creates an appropriately configured view for checkoutlists.
The current view or a view of the label specified .
the unconfigured Viewthe snapshot View appropriately configured.Required base-class abstract function implementation is a no-op here. Implements base-class abstract function to perform the checkout
operation on the files in each folder of the tree.
the StarTeam folder from which files to be checked out
the local mapping of rootStarteamFolder
Processes Surround SCM batch files.
Processes the batch commands found in the input file. Each line in the
input file should contain a single Surround SCM command including proper
command line options. The sscm command, Surround SCM server address,
port number, username and password are not required for each command line.
Run the batch file ${src}/sscm.batch on the server at localhost,
port 4900 with username 'administrator' and a blank password. All script
output is directed to the console.
<sscmbatch
serverconnect="localhost:4900"
serverlogin="administrator:"
input="${src}/sscm.batch"
/>
Run the batch file ${src}/sscm.batch on the server at localhost,
port 4900 with username 'administrator' and a blank password. All script
output is redirected to ${dist}/sscm.batch.out.
<sscmbatch
serverconnect="localhost:4900"
serverconnect="administrator:"
input="${src}/sscm.batch"
output="${dist}/sscm.batch.out"
/>
Surround SCM
abstract task base.
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
The address and port number of the Surround SCM server host computer.
Format is server:port. If not entered, the last saved connection
parameters are used.
The username and password used to login to the Surround SCM server.
Format is username:password. If not entered, the last saved login
parameters are used.
Override ExeName paramater to sscm.exe for Surround SCM.
Gets the command line arguments for the external program.
The command line arguments for the external program.
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
File to read commands from.
File to direct all standard output to. When executing commands from
the input file, all output is written to this file instead of being
displayed on the screen.
Creates new branches for Surround SCM.
Create a new Baseline branch 'Widget 1.0' from branch 'Mainline',
repository 'Mainline/Widget' with the given comments. All files
are branched at the tip version.
<sscmbranch
serverconnect="localhost:4900"
serverlogin="administrator:"
branch="Widget 1.0"
repository="Mainline/Widget"
parent="Mainline"
comment="Branch for continuing Widget 1.0 development"
type="baseline"
/>
Create a new Workspace branch 'MyWidgetDevelopment' from branch
'Widget 1.0', repository 'Mainline/Widget'. All files are branched
at the tip version.
<sscmbranch
serverconnect="localhost:4900"
serverlogin="administrator:"
branch="MyWidgetDevelopment"
repository="Mainline/Widget"
parent="Widget 1.0"
/>
Create a new Snapshot branch 'Build as of 12-1-03' from branch
'Widget 1.0', repository 'Mainline/Widget' with the given comments.
All files are branched at their version as of 12-01-03.
<sscmbranch
serverconnect="localhost:4900"
serverlogin="administrator:"
name="Build as of 12-1-03"
repository="Mainline/Widget"
branch="Widget 1.0"
comment="Snapshot of source as it was on December 1st, 2003"
timestamp="2003120300:00:00"
type="snapshot"
/>
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
The name of the branch you want to create.
The full repository path.
The parent branch you want to create the new, child branch from.
If not specified, the mainline branch is used.
Specifies a comment for the branch operation.
Specifies which parent branch file versions are copied into the
child branch.
Specifies which parent branch file versions are copied into the
child branch. Format is yyyymmddhh:mm:ss. If
attribute is specified, this parameter is ignored.
Include removed files when creating a branch with the
or option.
The default is .
Specifies the type of branch you want to create. Possible values are
workspace, baseline, or snapshot. The default is
workspace.
Checks in files in Surround SCM
repository.
Check in updated Surround SCM files with changes, removes the lock on
the files, and makes changes available to other users.
Check In all files and repositories from repository 'Mainline/Widget'
recursively from the 'Widget 1.0' branch to the working directory setup
for user 'administrator'. This call outputs the progress of the Check In
to the console.
<sscmcheckin
serverconnect="localhost:4900"
serverlogin="administrator:"
file="/"
branch="Widget 1.0"
repository="Mainline/Widget"
recursive="true"
comment="I made some changes"
/>
Check in file 'Mainline/Widget/Widget.java' from the 'Widget 1.0'
branch from the working directory setup for user 'administrator'
with comment 'I made some changes'. Set the 'Release 1.1.1' label
to this new version, even if the label already exists on an earlier
version.
<sscmcheckin
serverconnect="localhost:4900"
serverlogin="administrator:"
file="Widget.java"
branch="Widget 1.0"
repository="Mainline/Widget"
comment="I made some changes"
label="Release 1.1.1"
overwritelabel="true"
/>
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
Surround SCM branch name. The default is pulled from the local
working directory.
Surround SCM repository path. The default is pulled from the local
working directory.
File or repository name. Can be / or empty, which means the
repository specified by the repository option or the default
repository.
Comment for the check-in.
Force check in without merge. Ignores code changes checked in after
the user's last checkout or merge. The default is .
Get file after check in. The default is .
Keep the lock after check in. The default is .
A label for the check in code.
Overwrite previous label on file. The default is
.
Do not list repository and local full path of the Surround
SCM server. The default is .
Recursively check in all files and sub-repositories.
The default is .
The TestTrack Pro database configuration name.
The TestTrack Pro username and password.
The TestTrack Pro defect number(s) for attachment. Format is "#:#:#:#".
Make file writable after check in. The default is
.
Update version even if no changes. The default is
.
Remove local file after check in. The default is
.
Checks out files from a Surround SCM
repository.
You can check out single files, multiple files, or a full repository.
Surround SCM creates a read-write copy of the files in the working
directory.
Check Out all files and repositories from repository 'Mainline/Widget'
recursively from the 'Widget 1.0' branch to the working directory setup
for user 'administrator'. This call forces the file retrieval from the
server even if the local file is current and overwrites any writable
local files with the server copy.
<sscmcheckout
serverconnect="localhost:4900"
serverlogin="administrator:"
file="/"
branch="Widget 1.0"
repository="Mainline/Widget"
recursive="true"
force="true"
comment="This is my Check Out comment"
/>
Check Out version 1 of the file 'Mainline/Widget/Widget.java' exclusively
from the 'Widget 1.0' branch to the working directory setup for user
'administrator'. Writable local files are not overwritten, even if they
are out of date.
<sscmcheckout
serverconnect="localhost:4900"
serverlogin="administrator:"
quiet="true"
file="Widget.java"
branch="Widget 1.0"
repository="Mainline/Widget"
overwrite="false"
writable="true"
version="1"
exclusive="true"
/>
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
Surround SCM branch name. The default is pulled from the local
working directory.
Surround SCM repository path. The default is pulled from the local
working directory.
File or repository name. Can be / or empty, which means the
repository specified by the attribute
or the default repository.
Comment for the check-out.
Force file retrieval from server regardless of the local copy status.
The default is .
Do not list repository and local full path of the Surround SCM server.
The default is .
Recursively get files and sub-repositories. The default is
.
Specifies whether to overwrite local writable files. The default is
.
Specifies how to set the local file's date/time. Possible values are
current, modify or checkin.
Exclusively lock the files. The default is .
Specifies the file version to check out. Ignored if no specific
filename is set using the attribute.
Freezes branches in a Surround SCM
repository.
Freezing a branch prevents any code changes being made to files in the
branch. When a branch is frozen, it is locked and no changes can be
made to it.
Freeze the 'Widget 1.0' branch off of the mainline 'Mainline' on the
server at localhost, port 4900 with username 'administrator' and a
blank password.
<sscmfreeze
serverconnect="localhost:4900"
serverlogin="administrator:"
mainline="Mainline"
branch="Widget 1.0"
/>
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
Surround SCM branch name.
Surround SCM mainline branch name. The default is pulled from the
local working directory.
Gets files from a Surround SCM
repository.
You can get a single file, multiple files, or a repository. A read-only
copy of the file is created in the specified directory.
Get all files and repositories from repository 'Mainline/Widget'
recursively from the 'Widget 1.0' branch to the working directory
setup for user 'administrator'. This call forces the file retrieval
from the server even if the local file is current and overwrites any
local files that are writable with the server copy.
<sscmget
serverconnect="localhost:4900"
serverlogin="administrator:"
file="/"
branch="Widget 1.0"
repository="Mainline/Widget"
recursive="true"
force="true"
overwrite="true"
/>
Get version 1 of the file 'Mainline/Widget/Widget.java' from the
'Widget 1.0' branch to the working directory setup for user 'administrator'.
Writable local files are not overwritten, even if they are out of date.
<sscmget
serverconnect="localhost:4900"
serverlogin="administrator:"
quiet="true"
file="Widget.java"
branch="Widget 1.0"
repository="Mainline/Widget"
overwrite="false"
writable="true"
version="1"
/>
Get all files and repositories labeled with 'Release 1.0.0' (even those
removed from Surround) from repository 'Mainline/Widget' recursively
from the 'Widget 1.0' branch to the '${build}/src' directory. Writable
local files are overwritten with the server copy.
<sscmget
serverconnect="localhost:4900"
serverlogin="administrator:"
quiet="true"
file="/"
branch="Widget 1.0"
repository="Mainline/Widget"
recursive="true"
label="Release 1.0.1"
destdir="${build}/src"
overwrite="true"
/>
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
Surround SCM branch name. The default is pulled from the local
working directory.
Surround SCM repository path. The default is pulled from the local
working directory.
File or repository name. Can be / or empty, which means the repository
specified by the attribute or the default
repository.
The local directory you want to get the files to. If
is a repository, a subrepository with the same
name as the repository is created and files are copied to it. If
is specified as / or not set, files are copied to
the local directory. If not specified, files are copied to the
working directory.
Make local file editable or writable. The default is
.
Force file retrieval from server regardless of the local copy status.
The default is .
Label to search for when getting a file. If a file version is
specified, this parameter is ignored.
Timestamp to use when getting files. Format is yyyymmddhh:mm:ss.
If is specified, this parameter is ignored.
Requires Surround SCM 3.0 or later.
Include removed files when getting files by label or timestamp.
The default is . Ignored if a label or
timestamp is not specified.
Do not list repository and local full path of files. The default is
.
Recursively get files and sub-repositories. The default is
.
Specifies whether to overwrite local writable files. The default is
.
Specifies how to set the local file's date/time. Possible values are
current, modify or checkin.
The file version to get. Ignored if a filename is not specified in
the attribute.
Creates file or repository labels for a Surround SCM
repository.
Labels provide a way to mark a specific version of a file or repository.
You can create labels for single files, multiple files, or all files in
a repository. When you create a label, a new entry is created in the history.
The file, and the version number, do not change. Existing 'Release 1.0.1'
labels on a file will be moved to the tip version of the file.
Label all files under the 'Mainline/Widget' repository recursively in
the 'Widget 1.0' branch with 'Release 1.0.1' and the given comment.
<sscmlabel
serverconnect="localhost:4900"
serverlogin="administrator:"
branch="Widget 1.0"
repository="Mainline/Widget"
file="readme.txt"
recursive="true"
label="Release 1.0.1"
overwritelabel="false"
comment="This labels the final build for the release of Widget 1.0.1."
/>
Label all files under the 'Mainline/Widget' repository recursively in
the 'Widget 1.0' branch with 'Release 1.0.1' and no comments.
<sscmlabel
serverconnect="localhost:4900"
serverlogin="administrator:"
branch="Widget 1.0"
repository="Mainline/Widget"
file="readme.txt"
recursive="true"
label="Release 1.0.1"
/>
Label version 4 of the file 'Mainline/Widget/Widget.java' in the
'Widget 1.0' branch with 'Release 1.0.1' and the given comment. An
existing 'Release 1.0.1' label on this file to be moved to version 4
of the file.
<sscmlabel
serverconnect="localhost:4900"
serverlogin="administrator:"
branch="Widget 1.0"
repository="Mainline/Widget"
file="readme.txt"
label="Release 1.0.1"
overwritelabel=" true"
comment=" This labels the final build for the release of Widget 1.0.1."
version=" 4"
/>
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
Surround SCM branch name. The default is pulled from the local
working directory.
Surround SCM repository path. The default is pulled from the local
working directory.
File or repository name. Can be / or empty, which means the
repository specified by the attribute
or the default repository.
The new label to create.
Recursively label all files. The default is .
Overwrite the existing label. The default is .
Comment for the label.
The file version to label. Ignored if a filename is not specified in
the attribute.
Unlocks frozen branches for a Surround SCM
repository.
Unfreeze the 'Widget 1.0' branch off of the mainline 'Mainline' on the
server at localhost, port 4900 with username 'administrator' and a
blank password.
<sscmunfreeze
serverconnect="localhost:4900"
serverlogin="administrator:"
mainline="Mainline"
branch="Widget 1.0"
/>
Writes the task-specific arguments to the specified
.
The to write the task-specific arguments to.
Surround SCM branch name.
Surround SCM mainline branch name. The default is pulled from the local working directory.
A base class for creating tasks for executing CVS client commands on a
CVS repository.
An environment variable that holds path information about where
svn is located.
The prefix used for command arguments.
The name of the svn executable.
Environment variable that holds the executable name that is used for
ssh communication.
Name of the password file that is used to cash password settings.
Initializes a new instance of the
class.
Build up the command line arguments, determine which executable is being
used and find the path to that executable and set the working
directory.
The process to prepare.
Append the command line options or commen names for the options
to the generic options collection. This is then piped to the
command line as a switch.
Gets the full path of the svn executable.
Exception is thrown when Subversion client
executable cannot be found.
The full path of the svn executable.
Set default values for non-requiered parameters.
The name of the executable.
The name of the password file.
Name of the home environment variable.
The name of the ssh/ rsh environment variable.
The full path of the svn executable.
TODO: Add more documentation when I understand all svn root possibilities/
protocols.
The svn root is usually in the form of a URL from which the server, protocol
and path information can be derived. Although the path to the repository
can also be determined from this the information is more implicit
than explicit. For example a subversion root URL of:
http://svn.collab.net/repos/svn/trunk/doc/book/tools
would have the following components:
protocol: http/ web_dav
username: anonymous
servername: svn.collab.net
repository: /repos/svn
server path: /trunk/doc/book/tools
In addition the revision path or branch can also be determined as
subversion stores this information as a seperate physical directory.
In this example:
revision: trunk
The user performing the checkout.
The pasword to use to login to svn.
Indicates whether the task should be interactive or not. This is
set to by default, and I don't see a reason
to expose this to the NAnt task.
The executable to use for ssh communication.
The command to execute.
Specifies whether to print as little information as possible.
The default is .
Determines if the root is used for the command based on
the command name. Returns true if the root
is used, otherwise returns false.
Executes the svn checkout command.
Checkout Gentle.NET.
]]>
Initialize the task, and set the default parameters.
Gets the svn command to execute.
The svn command to execute. The default value is "checkout".
if the command should be executed recursively.
The default is .
The revision to checkout. If no revision is specified then subversion
will return the HEAD.
A revision argument can be one of:
NUMBER revision number
"{" DATE "}" revision at start of the date
"HEAD" latest in repository
"BASE" base rev of item's working copy
"COMMITTED" last commit at or before BASE
"PREV" revision just before COMMITTED
if the authentiction token should be cached
locally.
The location of the configuration directory.
Executes the svn command specified by the command attribute.
Checkout Gentle.NET.
]]>
The svn command to execute.
Executes the svn update specified by the command attribute.
Update Gentle.NET.
]]>
Gets the svn command to execute.
The svn command to execute. The default value is "update".
Allows an IIS application pool to be controlled.
Starts the "StsAdminAppPool" application pool on server
"SV-ARD-WEB".
]]>
Stops and restarts the "DefaultAppPool" application pool
on server "SV-ARD-WEB".
]]>
The name of the server on which to perform the action. The default
is the local computer.
The name of the application pool on which to perform the action.
The action that should be performed on the application pool.
Defines the actions that can be performed on an application pool.
Starts the application pool.
Stops the application pool.
Stops and restarts the application pool.
Recycles an application pool.
Creates or modifies a virtual directory of a web site hosted on Internet
Information Server.
If the virtual directory does not exist it is created, and if it already
exists it is modified. Only the IIS-properties specified will be set. If set
by other means (e.g. the Management Console), the unspecified properties retain their current value,
otherwise they are inherited from the parent.
For a list of optional parameters see IIsWebVirtualDir.
More information on metabase parameters is available here.
Create a virtual directory named Temp pointing to c:\temp
on the local machine.
]]>
Create a virtual directory named Temp pointing to c:\temp
on machine Staging.
]]>
Configure the home directory of for http://svc.here.dev/ to point to
D:\Develop\Here and require authentication
]]>
Create a virtual directory named WebServices/Dev pointing to
c:\MyProject\dev on the web site running on port 81 of
machine MyHost.
]]>
Note that if WebServices is neither an existing virtual directory nor an
existing physical subdirectory of the web root, your IIS Management Console
will get confused. Even though http://MyHost:81/WebServices/Dev/theService.asmx
may be a perfectly working webservice, the Management Console will not show it.
Base class for all IIS-related task.
Basically this class hold the logic to determine the IIS version as well
as the IIS server/port determination/checking logic.
Name of the IIS virtual directory.
The IIS server, which can be specified using the format [host]:[port].
The default is localhost:80.
This allows for targeting a specific virtual site on a physical box.
The website on the IIS server.
This allows for targeting a specific virtual site on a physical box.
Gets the version of IIS corresponding with the current OS.
The version of IIS corresponding with the current OS.
Defines the IIS versions supported by the IIS tasks.
The user-friendly name of the package or application.
The file system path.
Indicates whether the file or the contents of the folder may be
executed, regardless of file type. The default is .
Indicates whether remote requests to execute applications are denied;
only requests from the same computer as the IIS server succeed if
is set to . You
cannot set to
to enable remote requests, and set to
to disable local requests. The default is
.
Indicates whether remote requests to view files are denied;
only requests from the same computer as the IIS server succeed if
is set to . You
cannot set to
to enable remote requests, and set to
to disable local requests. The default is
.
A value of true indicates that remote requests to view dynamic content are denied; only requests from the same computer as the IIS server succeed if the AccessScript property is set to true. You cannot set AccessNoRemoteScript to false to enable remote requests, and set AccessScript to false to disable local requests.
indicates that remote requests to create or change files are denied; only requests from the same computer as the IIS server succeed if the AccessWrite property is set to true. You cannot set AccessNoRemoteWrite to false to enable remote requests, and set AccessWrite to false to disable local requests.
Indicates whether the file or the contents of the folder may be
read. The default is .
Indicates whether users are allowed to access source code if either
Read or Write permissions are set. The default is .
Indicates whether the file or the contents of the folder may be
executed if they are script files or static content. The default
is .
Indicates whether file access requires SSL file permission processing,
with or without a client certificate. The default is .
Indicates whether file access requires SSL file permission processing
with a minimum key size of 128 bits, with or without a client
certificate. The default is .
Indicates whether SSL file permission processing maps a client
certificate to a Microsoft Windows ® operating system user-account.
must also be set to
for the mapping to occur. The default is
.
Indicates whether SSL file access processing requests a certificate
from the client. The default is .
Indicates whether SSL file access processing requests a certificate
from the client. If the client provides no certificate, the connection
is closed. must also be set to
when using .
The default is .
Indicates whether users are allowed to upload files and their
associated properties to the enabled directory on your server or
to change content in a Write-enabled file. The default is
.
Indicates whether IIS should handle the user password for anonymous
users attempting to access resources. The default is
.
Specifies what type of application to create for this virtual directory.
The default is .
Specifies whether ASP client-side debugging is enabled. The default
is .
Specifies whether ASP debugging is enabled on the server. The default
is .
Specifies the application pool where the application is routed
(IIS 6.0 or higher).
Enables session state persistence for the ASP application. The
default is .
Specifies whether output from an ASP application will be buffered.
If , all output from the application is
collected in the buffer before the buffer is flushed to the client.
With buffering on, the ASP application has to completely process the
ASP script before the client receives any output. The default is
.
Determines whether an ASP application can be automatically restarted.
When changes are made to Global.asa or metabase properties that affect
an application, the application will not restart unless the
property is set to
. The default is .
When this property is changed from to
, the application immediately restarts.
Controls the behavior of ASP when a new request is to be rejected
due to a full request queue. If , an .htm file
with a similar name as the requested .asp file, will be sent instead
of the .asp file. The naming convention for the .htm file is the
name of the .asp file with _asp appended. The default is
.
Specifies whether HTTP 1.1 chunked transfer encoding is enabled for
the World Wide Web Publishing Service (WWW service). The default is
.
Specifies which ASP errors are written to the Windows event log.
ASP errors are written to the client browser and to the IIS log files
by default. is set to
by default, and is modified by in
the following way:
If is set to ,
then ASP errors are not written to the Windows event log, regardless
of the value of .
If is set to ,
and if IIS fails to write an item to the IIS log file, the item is
written to the Windows event log as a warning, regardless of the
value of .
If is set to
and is set to ,
then only the most serious ASP errors are sent to the Windows event log.
Serious ASP error numbers are: 100, 101, 102, 103, 104, 105, 106, 107,
115, 190, 191, 192, 193, 194, 240, 241, and 242.
If is set to
and is set to ,
then all ASP errors are written to the Windows event log.
Specifies whether an ASP page allows paths relative to the current
directory. The default is .
Specifies whether type libraries are cached on the server. The
default is .
The World Wide Web Publishing Service (WWW service) setting for
this property is applicable to all in-process and pooled out-of-process
application nodes, at all levels.
Metabase settings at the Web server level or lower are ignored
for in-process and pooled out-of-process applications. However,
settings at the Web server level or lower are used if that node
is an isolated out-of-process application.
Specifies whether ASP pages trap exceptions thrown by components.
If set to , the Microsoft Script Debugger tool
does not catch exceptions sent by the component that you are debugging.
The default is .
Controls whether the Web server writes ASP errors to the application
section of the Windows event log. The default is .
ASP errors are written to the client browser and to the IIS log files
by default. is set to
by default, and is modified by in
the following way:
If is set to ,
then ASP errors are not written to the Windows event log, regardless
of the value of .
If is set to ,
and if IIS fails to write an item to the IIS log file, the item is
written to the Windows event log as a warning, regardless of the
value of .
If is set to
and is set to ,
then only the most serious ASP errors are sent to the Windows event log.
Serious ASP error numbers are: 100, 101, 102, 103, 104, 105, 106, 107,
115, 190, 191, 192, 193, 194, 240, 241, and 242.
If is set to
and is set to ,
then all ASP errors are written to the Windows event log.
Specifies whether the Web server writes debugging specifics
(file name, error, line number, description) to the client browser,
in addition to logging them to the Windows Event Log. The default
is .
Indicates whether IIS thread gating is enabled (only applies to IIS 4 and 5).
The default is .
IIS performs thread gating to dynamically control the number of
concurrently executing threads, in response to varying load conditions.
Specifies whether IIS checks the threading model of any components
that your application creates. The default is .
Specifies Anonymous authentication as one of the possible authentication
schemes returned to clients as being available. The default is
.
Specifies Basic authentication as one of the possible authentication
schemes returned to clients as being available. The default is
.
Specifies Integrated Windows authentication as one of the possible
authentication schemes returned to clients as being available. The
default is .
Specifies that authentication persists only for a single request on
a connection. IIS resets the authentication at the end of each request,
and forces re-authentication on the next request of the session.
[IIS 6.0] When the AuthPersistSingleRequest flag is set to true when
using NTLM authentication, IIS 6.0 automatically reauthenticates every
request, even those on the same connection.
Specifies authentication will persist only across single requests
on a connection if the connection is by proxy. Applies to IIS 5.0
and 5.1. The default is
IIS will reset the authentication at the end of the request if the current authenticated
request is by proxy and it is not the special case where IIS is running MSPROXY
Specifies whether authentication is valid for a single request
if by proxy. IIS will reset the authentication at the end of the
request and force re-authentication on the next request if the
current authenticated request is by proxy of any type. Applies to
IIS 5.0 and 5.1. The default is .
Specifies whether the HTTP 1.1 directive to prevent caching of content
should be sent to clients. The default is .
Indicates whether ISAPI extensions are cached in memory after first
use. The default is .
Specifies whether the installed content indexer should index content
under this directory tree. The default is .
Specifies whether process accounting and throttling should be performed
for ISAPI extensions and ASP applications. The default is
.
Indicates whether IIS should perform process accounting for CGI
applications. The default is .
Indicates whether a CGI application runs in its own console. The
default is .
Specifies whether a CGI process is created in the system context
or in the context of the requesting user. The default is
.
Specifies whether date information is displayed when browsing
directories. The default is .
Specifies whether file extensions are displayed when browsing
directories. The default is .
Specifies whether date information is displayed in extended format
when displaying directories. The default is .
Specifies whether file size information is displayed when displaying
directories. The default is .
Specifies whether file creation time is displayed when browsing
directories. The default is .
Specifies whether client requests are written to the IIS log files.
The default is .
When set to true, the default document (specified by the DefaultDoc property) for a directory is loaded when the directory is browsed.
Specifies whether directory browsing is enabled. The default is
.
Enables or disables custom footers. The default is
.
Enables or disables reverse Domain Name Server (DNS) lookups for
the World Wide Web Publishing Service (WWW service). The default is
.
Specifies whether server-side include (SSI) #exec directives are
disabled under this path. The default is .
One or more file names of default documents that will be returned to
the client if no file name is included in the client's request.
Specifies the user name for Universal Naming Convention (UNC) virtual
roots.
Specifies the encrypted password used to gain access to UNC
(Universal Naming Convention) virtual roots.
The different ways a (virtual) directory in IIS can be configured
as an application.
Virtual directory is not configured as an application.
Virtual directory is configured as an in-process application.
Virtual directory is configured as a pooled out-of-process
application. For IIS4 this is the same as .
Virtual directory is configured as an out-of-process application.
Deletes a virtual directory from a given web site hosted on Internet
Information Server.
Delete a virtual directory named Temp from the web site running
on port 80 of the local machine. If more than one web site is
running on port 80, take the web site bound to the hostname
localhost if existent or bound to no hostname otherwise.
]]>
Delete a virtual directory named Temp from the website running
on port 81 of machine MyHost.
]]>
Lists the configuration settings of a specified virtual directory in a
web site hosted on Internet Information Server.
List the settings of a virtual directory named Temp.
]]>
Base NAnt task for working with ADSI. This task contains only the path of the ADSI
object that you want to work with.
The ADSI path of the location where we want to work with.
Used to get the value of a property from an ADSI object.
Sets the specified property
The name of the property to get.
The name of the property to store the value in.
Sets a property on an ADSI object.
This task uses a heuristic to determine the type of the property in ADSI. The following cases are notable:
If the property does not exist on the item, it is inserted as a string.If the property already exists, this method will attempt to preserve
the type of the property. The types this method knows about are String,
Boolean, and Int32.If the property exists and is an array, the value is added to
the array, but only if it is not already present.
]]>
]]>
Sets the specified property
Sets the named property on the specified
to the given value.
The we're modifying.
The name of the property to set.
The value to set the property to.
The following cases are notable:
If the property does not exist on the item, it is inserted as a
string.
If the property already exists, this method will attempt to preserve
the type of the property. The types this method knows about are
, , and .
If the property exists and is an array, the value is added to the
array, but only if it's not already present.
The name of the property to set.
The new value of the property.
Formats source code in a given directory to a specified code format.
Most examples inline have been produced by Tal Davidson and team and
are part of the astyle documentation. They have been included in
the task documentation as an easy reference.
NOTE: This task relies on the astyle.exe file being in your path variable.
Please download the astyle.exe from http://astyle.sourceforge.net.
]]>
The default style seems to be the closest to C# standards.
Build up the command line arguments, determine which executable is
being used and find the path to that executable and set the working
directory.
The process to prepare.
Adds a new command option if none exists. If one does exist then
the use switch is toggled on or of.
The common name of the option.
The option value or command line switch of the option.
if the option should be appended to the commandline, otherwise .
Append the command line options or commen names for the options
to the generic options collection. This is then piped to the
command line as a switch.
Append the files specified in the fileset to the command line argument.
A collection of command line option switches.
Used to select the files to copy.
The command-line arguments for the program.
Indicate the preset style to use.
ansi
namespace foospace
{
int Foo()
{
if (isBar)
{
bar();
return 1;
}
else
return 0;
}
}
kr ( Kernighan&Ritchie )
namespace foospace {
int Foo() {
if (isBar) {
bar();
return 1;
} else
return 0;
}
}
linux
namespace foospace
{
int Foo()
{
if (isBar) {
bar();
return 1;
} else
return 0;
}
}
gnu
namespace foospace
{
int Foo()
{
if (isBar)
{
bar();
return 1;
}
else
return 0;
}
}
java
class foospace {
int Foo() {
if (isBar) {
bar();
return 1;
} else
return 0;
}
}
NAnt
namespace foospace {
class foo() {
#region Protected Static Fields
private int Foo() {
if (isBar) {
bar();
return 1;
} else {
return 0;
}
}
#endregion
}
Astyle leaves the original files around, renamed with a different
suffix. Setting this to true
will remove these files.
The suffix to append to original files, defaults to .orig
if not specified.
Indicate the maximum number of spaces to indent relative to a
previous line.
Indicate that tabs should be used to indent sources. The number
specified indicates the maximum number of spaces the tab character
will represent.
Indent using tab characters. Treat each tab as # spaces. Uses tabs as
indents in areas '--indent=tab' prefers to use spaces, such as
inside multi-line statements.
to convert tabs to spaces.
if class statements should be indented.
The default:
class Foo
{
public:
Foo();
virtual ~Foo();
};
becomes:
class Foo
{
public:
Foo();
virtual ~Foo();
};
if switch statements should be indented.
The default:
switch (foo)
{
case 1:
a += 2;
break;
default:
a += 2;
break;
}
becomes:
switch (foo)
{
case 1:
a += 2;
break;
default:
a += 2;
break;
}
if case statements should be indented.
The default:
switch (foo)
{
case 1:
{
a += 2;
break;
}
default:
{
a += 2;
break;
}
}
becomes:
switch (foo)
{
case 1:
{
a += 2;
break;
}
default:
{
a += 2;
break;
}
}
true if bracket statements should be indented.
The default:
if (isFoo)
{
bar();
}
else
{
anotherBar();
}
becomes:
if (isFoo)
{
bar();
}
else
{
anotherBar();
}
if block statements should be indented.
The default:
if (isFoo)
{
bar();
}
else
anotherBar();
becomes:
if (isFoo)
{
bar();
}
else
anotherBar();
if namespace statements should be indented.
The default:
namespace foospace
{
class Foo
{
public:
Foo();
virtual ~Foo();
};
}
becomes:
namespace foospace
{
class Foo
{
public:
Foo();
virtual ~Foo();
};
}
if label statements should be indented.
The default:
int foospace()
{
while (isFoo)
{
...
goto error;
error:
...
}
}
becomes:
int foospace()
{
while (isFoo)
{
...
goto error;
error:
...
}
}
Indicate the maximum number of spaces to indent relative to a
previous line.
Indicate the maximum number of spaces to indent relative to a
previous line.
if empty lines should be filled with the
whitespace of the previous line.
if brackets should be put on a new line.
if (isFoo)
{
bar();
}
else
{
anotherBar();
}
if brackets should be attached.
if (isFoo){
bar();
} else {
anotherBar();
}
if brackets should be put on a new line and
indented.
namespace foospace
{
int Foo()
{
if (isBar) {
bar();
return 1;
} else
return 0;
}
}
if the line after a bracket (i.e. an else
statement after the closing if) should be placed on the next line.
if (isFoo){
bar();
}else {
anotherBar();
}
becomes:
if (isFoo) {
bar();
}
else {
anotherBar();
}
to break block statements with an empty line.
isFoo = true;
if (isFoo) {
bar();
} else {
anotherBar();
}
isBar = false;
becomes:
isFoo = true;
if (isFoo) {
bar();
} else {
anotherBar();
}
isBar = false;
to break all block statements, even on
nested ifs with an empty line.
isFoo = true;
if (isFoo) {
bar();
} else {
anotherBar();
}
isBar = false;
becomes:
isFoo = true;
if (isFoo) {
bar();
} else {
anotherBar();
}
isBar = false;
to put the if component of an else if on a
new line.
if (isFoo) {
bar();
} else if (isBar()){
anotherBar();
}
becomes:
if (isFoo) {
bar();
} else
if (isBar()){
anotherBar();
}
to pad operators with a space.
if (isFoo)
a = bar((b-c)*a,*d--);
becomes:
if (isFoo)
a = bar((b - c) * a, *d--);
to pad parenthesis with a space.
if (isFoo)
a = bar((b-c)*a,*d--);
becomes:
if ( isFoo )
a = bar( ( b-c )*a, *d-- );
to pad operators and parenthesis.
if (isFoo)
a = bar((b-c)*a,*d--);
becomes:
if ( isFoo )
a = bar( ( b - c ) * a, *d-- );
to keep complex statements on the same line.
if (isFoo)
{
isFoo = false; cout << isFoo << endl;
}
remains as is.
if (isFoo) DoBar();
remains as is.
to keep single line statements on the same line.
if (isFoo)
{ isFoo = false; cout << isFoo << endl; }
remains as is.
Gets the command-line arguments for the external program.
The command-line arguments for the external program.
Register COM servers or type libraries.
COM register task will try and register any type of COM related file
that needs registering.
Executable files (.exe) will be registered as exe servers, type
libaries (.tlb) registered with RegisterTypeLib and for all other
filetypes it will attempt to register them as dll servers.
Register a single dll server.
]]>
Register a single exe server
]]>
Register a set of COM files at once.
]]>
Register an inproc COM server, usually a .dll or .ocx
Register a COM type library
Register exe servers.
The name of the file to register. This is provided as an alternate
to using the task's fileset.
Unregistering this time. ( /u paramater )Default is "false".
The set of files to register.
Helper class to synamically build an assembly with the correct
P/Invoke signature
Register a given dll.
Changes the current working directory.
Changes the current working directory to the "subdir"
directory, relative to the project base directory.
]]>
Changes the current directory.
The path to which the current working directory should be set.
Calculates checksums for a set of files.
Loosely based on Ant's Checksum task.
This task takes a set of input files in a fileset
and calculates a checksum for each one of them.
You can specify the algorithm to use when calculating
the checksum value (MD5 or SHA1, for example).
The calculated value is saved to a file with the same
name as the input file and an added extension either
based on the algorithm name (e.g. .MD5), or whatever
is specified through the fileext attribute.
]]>
Initializes task and ensures the supplied attributes are valid.
Xml node used to define this task instance.
This is where the work is done
Writes a checksum to a destination file
Name of Algorithm to use when calculating
the checksum. Can be MD5 or SHA1.
The generated checksum file's name will be the
original filename with "." and fileext
added to it. Defaults to the
algorithm name being used
Set of files to use as input
Executes an alternate set of tasks depending on conditions that are
individually set on each group of tasks.
The selects one among a number of possible
alternatives. It consists of a sequence of <when> elements
followed by an optional <otherwise> element.
Each <when> element has a single attribute, test, which
specifies an expression. The content of the <when> and
<otherwise> elements is a set of nested tasks.
The content of the first, and only the first, <when>
element whose test is is executed. If no
<when> element is , the
content of the <otherwise> element is executed.
If no <when> element is , and no
<otherwise> element is present, nothing is done.
Execute alternate set of tasks depending on the configuration being
built.
...
...
Build configuration '${build.config}' is not supported!
]]>
One or more alternative sets of tasks to execute.
The set of tasks to add.
The set of tasks to execute if none of the
elements are .
Gets a value indicating whether a fallback element is defined.
if a fallback element is defined; otherwise,
.
Groups a set of tasks to execute when a condition is met.
Executes embedded tasks in the order in which they are defined.
Creates and executes the embedded (child XML nodes) elements.
Gets a value indicating whether the element is performing additional
processing using the that was use to
initialize the element.
, as a is
responsable for creating tasks from the nested build elements.
Used to test arbitrary boolean expression.
Generates statistics from source code.
Scans files in a fileset counting lines.
Generate statistics for a set of C# and VB.NET sources, applying
different labels for both.
]]>
Generate statistics for all C# sources and only output a summary to
the log.
]]>
Set of line counters to enable.
An identifier to be able to track which build last updated the
code stats file.
Specifies whether the results should be appended to the output file.
The default is .
If you only want to show summary stats for the whole fileset
The name of the file to save the output to (in XML).
A task that concatenates a set of files.
Loosely based on Ant's Concat task.
This task takes a set of input files in a fileset
and concatenates them into a single file. You can
either replace the output file, or append to it
by using the append attribute.
The order the files are concatenated in is not
especified.
]]>
Initializes task and ensures the supplied attributes are valid.
Xml node used to define this task instance.
This is where the work is done
Opens the destination file according
to the specified flags
Appends all specified files
File to write to
Name of the destination file.
Specifies whether to append to the destination file.
The default is .
Set of files to use as input.
On execution guarantees the listed dependencies are resolved before continuing. It is
particularly useful for handling dynamic dependencies that change based on some input
conditions/parameters, or when the dependencies are not known until runtime.
The depends task never forces the execution of any target that has already been executed. It works just like the depends attribute of a .
Executes the specified task.
A space or comma separated dependency list of targets.
Expressions get evaluated when the task is executed.
Discovers the URLs of XML web services on a web server and saves documents
related to them to the local disk. The resulting .discomap, .wsdl, and .xsd files
can be used with the to produce web service clients and
and abstract web service servers using ASP.NET.
Generate a proxy class for a web service.
]]>
Discover the details for the specified web service.
The URL or Path to discover.Suppresses the banner.Do not save the discovered documents to the local disk.The output directory to save discovered documents in.Username of an account with credentials to access a
server that requires authentication.Password of an account with credentials to access a
server that requires authentication.Domain of an account with credentials to access a
server that requires authentication.URL of a proxy server to use for HTTP requests.
The default is to use the system proxy setting.Username of an account with credentials to access a
proxy that requires authentication.Password of an account with credentials to access a
proxy that requires authentication.Domain of an account with credentials to access a
proxy that requires authentication.
Gets the command-line arguments for the external program.
The command-line arguments for the external program.
Analyzes managed code assemblies and reports information about the
assemblies, such as possible design, localization, performance, and
security improvements.
this task relies on fxcopcmd.exe being in your PATH environment variable.
You can download the latest FxCop from .
]]>
Creates a new instance.
Performs logic before the external process is started
Process.
Executes the task.
Builds the arguments to pass to the exe.
Applies the XSL transformation specified in /outXsl to the analysis report before saving the file.
Directs analysis output to the console or to the Output window in Visual Studio .NET. By default, the XSL file FxCopConsoleOutput.xsl is applied to the output before it is displayed.
Specifies the XSL or XSLT file that contains a transformation to be applied to the analysis output before it is displayed in the console.
Specifies additional directories to search for assembly dependencies. FxCopCmd always searches the target assembly directory and the current working directory.
Specifies the target assembly to analyze.
Specifies the name of an analysis report or project file to import. Any messages in the imported file that are marked as excluded are not included in the analysis results.
Specifies the file name for the analysis report.
Specifies the XSL or XSLT file that is referenced by the xml-stylesheet processing instruction in the analysis report.
Specifies the location of the version of Mscorlib.dll that was used when building the target assemblies if this version is not installed on the computer running FxCopCmd.
Specifies the filename of FxCop project file.
Specifies the filename(s) of FxCop project file(s).
Includes a summary report with the informational messages returned by FxCopCmd.
Comma-separated list of type names to analyze. This option disables analysis of assemblies, namespaces, and resources; only the specified types and their members are included in the analysis.
Use the wildcard character '*' at the end of the name to select multiple types.
Saves the results of the analysis in the project file.
Determines if the task should fail when analysis errors occur
The directory in which the command will be executed.
The directory in which the command will be executed. The default
is the project's base directory.
It will be evaluated relative to the project's
base directory if it is relative.
Gets the program arguments.
Installs assemblies into the Global Assembly Cache (GAC) by using the
gacutil SDK tool.
Assemblies can be installed to the GAC with or without reference counting.
The full details of reference counting can be found in the SDK
documentation.
Installs Shared.dll into the GAC.
]]>
Installs Shared.dll and MyWeb.dll into the GAC.
]]>
Installs Shared.dll and MyWeb.dll into the GAC and
specifies reference information.
]]>
Base class functionality for the GAC tasks.
Concrete GAC tasks extend this class in order to obtain common functionality.
Stores the details of the assembly currently being operated against. This could be a name or
path, depending on the concrete task.
See .
See .
Constructs and initialises an instance of GacTask.
Starts the process that is wrapped by this GAC task.
Provided only to seal the implementation of StartProcess().
The process that was started.
Validates the task's configuration.
The task node.
Executes the task.
Provided only to seal the implementation of ExecuteTask().
Appends any task-specific program arguments.
The StringBuilder on which to append program arguments.
Subclasses must override this method to return the arguments with which to run the GAC task.
Invoked prior to invoking ExecuteTask() on the base class.
Allows, for example, subclasses to output useful information to the log.
Gets or sets a value indicating whether the GAC operation will be forced.
The exact meaning of this property is dependent on the subclass. As such, subclasses should override this
property to provide a valid description.
Specifies reference details to use when working with the GAC.
Concrete GAC tasks must override this property to return an array of assembly names or paths
upon which to operate.
Gets the executable name for the gacutil command-line tool.
Specifies whether a reference was specified for the GAC task.
Gets the current assembly being operated against.
Gets the program arguments with which to run the gacutil process.
See .
Constructs and initialises an instance of the GacInstallTask.
Appends any install-specific arguments.
The StringBuilder to append arguments to.
Outputs log information.
Specifies the assemblies to install.
Gets the assembly list to install.
If , the specified assemblies will be forcibly
installed. Any existing duplicate assemblies in the GAC will be
overwritten. The default is .
Manipulates the contents of the global assembly cache.
This tasks provides some of the same functionality as the gacutil tool
provided in the .NET Framework SDK.
Specifically, the allows you to install assemblies
into the cache and remove them from the cache.
Refer to the
Global Assembly Cache Tool (Gacutil.exe) for more information.
Inserts assembly mydll.dll into the global assembly cache.
]]>
Removes the assembly hello from the global assembly cache and
the native image cache.
]]>
Note that the previous command might remove more than one assembly
from the assembly cache because the assembly name is not fully
specified. For example, if both version 1.0.0.0 and 3.2.2.1 of
hello are installed in the cache, both of the assemblies will
be removed from the global assembly cache.
Use the following example to avoid removing more than one assembly.
This command removes only the hello assembly that matches the fully
specified version number, culture, and public key.
]]>
The name of a file that contains an assembly manifest.
Defines the action to take with the assembly. The default is
.
Fileset are used to define multiple assemblies.
Defines the actions that can be performed on an assembly using the
.
Installs an assembly into the global assembly cache.
Installs an assembly into the global assembly cache. If an assembly
with the same name already exists in the global assembly cache, it is
overwritten.
Uninstalls an assembly from the global assembly cache.
Uninstalls assemblies from the Global Assembly Cache (GAC) by using the
gacutil SDK tool.
Assemblies are specified via an . Individual
assemblies are specified by their identity information. Only a name is
required but, optionally, the assembly version, culture and public key
token may be specified.
Assemblies can be uninstalled from the GAC with or without reference
counting. The full details of reference counting can be found in the
SDK documentation.
Uninstalls Shared assembly from the GAC.
]]>
Uninstalls Shared and MyWeb from the GAC.
]]>
Decrements references to Shared in the GAC and uninstalls if
the reference count reaches zero.
]]>
Uninstalls version 2.1.7.9201 of Shared plus the
Australian-cultured MyWeb from the GAC.
]]>
Uninstalls the neutrally-cultured, version 1.0.5000.0 of
System.Xml from the native image cache. The assembly must
also have a public key token of b77a5c561934e08a to be
uninstalled.
]]>
See .
See .
Constructs an instance of the GacUninstallTask.
Appends any install-specific arguments.
Outputs log information.
If , specifies that the assemblies should be
uninstalled from the native image cache. The default is .
Specifies the assemblies to uninstall.
Gets the assembly list to uninstall.
If , the specified assemblies will be forcibly
removed from the GAC. All references to the specified assemblies will
be removed from the GAC prior to removing the assemblies themselves.
The default is .
You cannot use this option to remove an assembly that was installed using Microsoft Windows Installer.
Compiles a Microsoft HTML Help 2.0 Project.
Compile a help file.
]]>
The name of the contents (.HxC) file.
ANSI/DBCS log filename.
Unicode log filename.
Root directory containing Help 2.0 project files.
Output (.HxS) filename.
Generate no informational messages.
Generate no error messages.
Generate no warning messages.
File to be decompiled.
Directory to place decompiled files into.
Arguments of program to execute
Registers a Microsoft HTML Help 2.0 Collection.
Register a help namespace.
]]>
Help collection namespace.Title identifier.Collection (.HxC) filename. Description of the namespace.Help (.HxS) filename.Index (.HxI) filename.Combined full-text search (.HxQ) filename.Combined attribute index (.HxR) filename.Language ID.Alias.Filename of a file containing HxReg commands.Unregister a namespace, title, or alias.
Arguments of program to execute
Reads String values in INI files.
Reads the value for AutoRefresh in the MS Transaction Server section
of the VendorMISMO2.ini ini file. Stores the value in the "myvar" property.
]]>
The file contents look like this:
[MS Transaction Server]
Executable="VendorMISMO2.dll"
AutoRefresh=1
INI File to Write To.
Key to set the value for.
value to set.
Section in the INI file.
property where we store the return value.
Sets String values in INI files.
Set the value for Executable in the VendorMISMO2.ini ini file
]]>
The file contents look like this:
[MS Transaction Server]
Executable="VendorMISMO2.dll"
AutoRefresh=1
INI File to Write To.
Key to set the value for.
value to set.
Section in the INI file.
Builds the specified targets in the project file using MSBuild.
If a project file is not specified, MSBuild searches the current
working directory for a file that has a file extension that ends in
"proj" and uses that file.
Starts the external process and captures its output.
The project to build.
Set or override these project-level properties.
Build these targets in this project. Use a semicolon or a comma
comma to separate multiple targets.
Do not auto-include the MSBuild.rsp file.
Specifies the amount of information to display in the MSBuild log.
Gets the command line arguments for the external program.
The command line arguments for the external program.
Initializes a new instance of the
class.
Converts the given object to the type of this converter, using the
specified context and culture information.
An that provides a format context.
A object. If a is passed, the current culture is assumed.
The to convert.
An that represents the converted value.
A task that generates strongly typed WMI classes using
mgmtclassgen.exe.
The Management Strongly Typed Class Generator
enables you to quickly generate an early-bound
managed class for a specified Windows Management
Instrumentation (WMI) class. The generated
class simplifies the code you must write to access
an instance of the WMI class.
]]>
Initializes task and ensures the supplied attributes are valid.
Xml node used to define this task instance.
This is where the work is done
Specifies the name of the WMI class
to generate the strongly typed class
Specifies the language in which to generate
the class. Possible values are: CS, VB, JS
Specifies the machine to connect to.
Specifies the path to the WMI namespace
that contains the class.
Namespace of the generated .NET class
Path of the file to generate
User name to use when connecting to
the specified machine
Password to use when connecting to the
specified machine
Filename of program to execute
Arguments of program to execute
Pre-translates native code for an assembly containing IL (Intermediary
Language bytecode) on the Windows platform.
]]>
Initializes task and ensures the supplied attributes are valid.
Xml node used to define this task instance.
Assembly path or display name.If existing images should be shown.If existing images should be deleted.If an image should be generated which
can be used under a debugger.If an image should be generated which
can be used under a debugger in optimized
debugging mode.If an image should be generated which
can be used under a profiler.
Arguments of program to execute
A task that generates a summary HTML
from a set of NUnit xml report files.
Loosely based on Erik Hatcher JUnitReport for Ant.
This task can generate a combined HTML report out of a
set of NUnit result files generated using the
XML Result Formatter.
By default, NUnitReport will generate the combined
report using the NUnitSummary.xsl file located at the
assembly's location, but you can specify a different
XSLT template to use with the xslfile
attribute.
Also, all the properties defined in the current
project will be passed down to the XSLT file as
template parameters, so you can access properties
such as nant.project.name, nant.version, etc.
]]>
Initializes task and ensures the supplied attributes are valid.
Xml node used to define this task instance.
This is where the work is done
Initializes the XmlDocument instance
used to summarize the test results
Builds an XsltArgumentList with all
the properties defined in the
current project as XSLT parameters.
Property List
Loads the XSLT Transform
This method will load the file specified
through the the xslfile attribute, or
the default transformation included
as a managed resource.
The Transformation to use
Name of Output HTML file.
XSLT file used to generate the report.
Set of XML files to use as input
Custom XmlResolver used to load the
XSLT files out of this assembly resources.
Loads the XSLT file
A task that records the build's output to a file. Loosely based on Ant's
Record
task.
This task allows you to record the build's output, or parts of it to a
file. You can start and stop recording at any place in the build process.
]]>
This is where the work is done.
Name of destination file.
Action to apply to this log instance - either ,
, or
.
Determines whether the recorder will flush it's buffer after every
write to it. The default is .
Effective only with the action.
Determine the level of logging - either ,
, ,
or .
The default is .
Effective only with the action.
Registers an assembly for use from COM clients.
Refer to the Regasm
documentation for more information on the regasm tool.
Register a single assembly.
]]>
Register an assembly while exporting a typelibrary.
]]>
Register a set of assemblies at once.
]]>
The name of the file to register. This is provided as an alternate
to using the task's fileset.
Registry file to export to instead of entering the types directly
into the registry. If a fileset is used then the entries are all
collated into this file.
Set the code base registry setting.
Export a typelib and register it. The typelib will have the same
name as the source assembly unless the
attribute is used.
Only refer to already registered type libraries.
Export the assembly to the specified type library and register it.
This attribute is ignored when a fileset is specified.
Unregister the assembly. The default is .
The set of files to register.
Indicates that class should be validated by an XML Schema.
None.
Initializes a new instance of the
class.
The of the object created by to represent the root node of your task.
Initializes a new instance of the
class.
The of the object created by to represent the root node of your task.
Gets or sets the of the object created by
to represent the root node of your task.
The of the object created by
to represent the root node of your task.
Defines possible reference counting scheme types for the GAC tasks.
Specifies that no reference counting scheme will be used when performing the GAC task.
Specifies that registry-related reference counting will be used when performing the GAC task.
When the scheme type is set to UninstallKey, the related scheme ID should be set to the name of the application
set in the HKLM\Software\Microsoft\Windows\CurrentVersion registry key.
Specifies that file-based reference counting will be used when performing the GAC task.
When the scheme type is set to FilePath, the related scheme ID should be set to the full path to the executable
file that installs the assembly.
Specifies that custom information will be supplied to accommodate reference counting.
When the scheme type is set to Opaque, the related scheme ID can be set to any custom piece of information.
Copies a file to a remote server using scp.
Copies a file using scp to a remote server.The Username Environment variable is used.Copy a single file to a remote server and path.
]]>
The program to execute. The default is "scp".
The command line arguments.
The file to transfer.
The server to send the file to.
The path on the remote server. The default is "~".
The username to connect as. The default is the value of the
USERNAME environment variable.
The path separator used by the program. The default is "/".
Gets the filename of the external program to start.
The filename of the external program.
Gets the command-line arguments for the external program.
The command-line arguments for the external program.
The directory in which the command will be executed.
Converts a Visual Studio.NET Solution to a NAnt build file or nmake file.
Convert the solution MySolution.sln to the NAnt build file
MySolution.build and call the new build file.
]]>
Convert the solution MySolution.sln to the NAnt build file
MySolution.build. As the solution contains one or more web
projects, one or more maps needs to be specified.
]]>
Creates the for the specified format.
The for the specified format, or
if an unknown format was specified.
Converts an to a .
The Visual Studio.NET solution file to convert.
The output file format - either nant or nmake.
The output file name.
Mappings from URI to directories. These are required for web projects.
Parameters to pass to SLiNgshoT. The parameter build.basedir is required.
A task to execute arbitrary SQL statements against a OLEDB data source.
You can specify a set of sql statements inside the
sql element, or execute them from a text file that contains them. You can also
choose to execute the statements in a single batch, or execute them one by one
(even inside a transaction, if you want to).
Execute a set of statements inside a transaction.
INSERT INTO jobs (job_desc, min_lvl, max_lvl) VALUES('My Job', 22, 45);
INSERT INTO jobs (job_desc, min_lvl, max_lvl) VALUES('Other Job', 09, 43);
SELECT * FROM jobs;
]]>
Execute a set of statements from a file and write all query results
to a file.
]]>
Execute a SQL script generated by SQL Server Enterprise Manager.
]]>
Initializes task and ensures the supplied attributes are valid.
XML node used to define this task instance.
This is where the work is done.
Executes the SQL Statements one by one.
Executes the SQL statements in a single batch.
Process a result set.
Result set.
to write output to.
Connection string used to access database.
This should be an OleDB connection string.
The encoding of the files containing SQL statements. The default is
the system's current ANSI code page.
File where the sql statements are defined.
You cannot specify both a source and an inline set of statements.
String that separates statements from one another.
If true, the statements will be executed as a single batch.
If false, they will be executed one by one. Default is true.
If true, the any nant-style properties on the sql will be
expanded before execution. Default is true.
Command timeout to use when creating commands.
Kind of delimiter used. Allowed values are Normal or Line.
Delimiters can be of two kinds: Normal delimiters are
always specified inline, so they permit having two
different statements in the same line. Line delimiters,
however, need to be in a line by their own.
Default is Normal.
If set to true, results from the statements will be
output to the build log.
If set, the results from the statements will be output to the
specified file.
If set to , all statements will be executed
within a single transaction. The default is .
Whether output should be appended to or overwrite
an existing file. The default is .
If set to , prints headers for result sets.
The default is .
The character(s) to surround result columns with when printing, the
default is an empty string.
Gets the underlying to which output will
be written if is set.
A for the file specified in ,
or if is not set.
Executes a set of tasks, and optionally catches a build exception to
allow recovery or rollback steps to be taken, or to define some steps
to be taken regardless if the tasks succeed or fail, or both.
The tasks defined in the <> block
will be executed in turn, as they normally would in a target.
If a <> block is defined, the
tasks in that block will be executed in turn only if one of the tasks
in the <> block fails. This
failure will then be suppressed by the <>
block.
The message associated with the failure can also be caught in a
property for use within the <>
block. The original contents of the property will be restored upon
exiting the <> block.
If a <> block is defined, the
tasks in that block will be executed after the tasks in both the
<> and <>
blocks have been executed, regardless of whether any task fails in
either block.
]]>
The output of this example will be:
In try
In catch
Finally done
The failure in the <> block will
not cause the build to fail.
]]>
The output of this example will be:
In try
Caught failure: Just because...
Finally done
Build failed: Bad catch
Like the above, the failure in the <>
block does not cause the build to fail. The failure in the
<> block does, however.
Note that the <> block is
executed even though the <>
block failed.
]]>
The output of this example will be:
In try
Caught failure yet again
Build failed: Property 'failure' has not been set.
The in the <>
block failed because the "failure" property was not defined
after exiting the <> block.
Note that the failure in the <>
block has eclipsed the failure in the <>
block.
]]>
A more concrete example, that will always clean up the generated
temporary file after it has been created.
The tasks in this block will be executed as a normal part of
the build script.
The tasks in this block will be executed if any task in the try
block fails.
The tasks in this block will always be executed, regardless of
what happens in the try and catch blocks.
Note that any failure in any of the tasks in this block will
prevent any subsequent tasks from executing.
Defines the name of the property to save the message describing
the failure that has been caught.
The failure message is only available in the context of the catch
block. If you wish to preserve the message, you will need to save
it into another property.
Readonly properties cannot be overridden by this mechanism.
Generates collection classes based on a given XML specification file. Code generation is in the specified language.See the CollectionGen tool page for more information.
]]>
The actual generation work is done here.
The language to generate collection classes for. Valid values are "CSharp" or "VB".The name of the template file for collection generation. This is provided as an alternate to using the task's fileset.
All files in this fileset will be run thru the collection generator.
Validates a set of XML files based on a set of XML Schemas (XSD).
]]>
This is where the work is done.
The XML files that must be validated.
The XML Schemas (XSD) to use for validation.
Compiles Microsoft Visual Basic 6 programs.
Uses the VB6.EXE executable included with the Visual Basic 6
environment.
The compiler uses the settings and source files specified in the
project or group file.
Build the project HelloWorld.vbp in the build directory.
]]>
Compiles the Visual Basic project or project group.
Parses a VB group file and extract the file names of the sub-projects
in the group.
The file name of the group file.
A string collection containing the list of sub-projects in the group.
Determines if a VB project needs to be recompiled by comparing the timestamp of
the project's files and references to the timestamp of the last built version.
The file name of the project file.
if the project should be compiled; otherwise,
.
VB6 uses a special algorithm to search for the typelib file. It doesn't
rely on the API function QueryPathOfRegTypeLib, because VB could use a newer
version of the TLB.
The algorithm used by VB is not perfect and has some flaws, which you could
get a newer version even if your requested version is installed. This is because
the algorithm iterates the registry beneath the Guid - entry by entry - from the
beginning and returns the first TLB version that is higher or equal to the
requested version.
pseudo code:
1. open the key HKEY_CLASSES_ROOT\TypeLib\{Guid}
2. If the key exists:
3. Foreach version under the key that has the requested culture entry:
4. If the version higher or equal to the requested version:
5. Get the TLB filename and returns it
The guid of the tlb to look for
The major version number of the tlb
The minor version number of the tlb. If you parse minor from a string, treat the string as hex value.
The culture id
null if couldn't find a match, otherwise it returns the file.
Parses a VB project file and extracts the source files, reference files, and
the name of the compiled file for the project.
The filename of the project file.
A fileset representing the source files of the project, which will
populated by the method.
A fileset representing the references of the project, which will
populated by the method.
A string containing the output file name for the project.
Output directory for the compilation target.
Visual Basic project or group file.
Determines whether project references are checked when deciding
whether the project needs to be recompiled. The default is
.
The file to which the Visual Basic compiler should log errors.
Tells Visual Basic which values to use for conditional compilation
constants.
Gets the filename of the external program to start.
The filename of the external program.
Gets the command-line arguments for the external program.
The command-line arguments for the external program.
Increments a four-part version number stored in a text file. The resulting
version number is written back to the file and exposed using NAnt properties.
The version number format in the text file is
Major.Minor.Build.Revision, e.g. 1.0.5.25.
MajorSet in file.MinorSet in file.BuildCan be incremented by setting the parameter.RevisionCan be incremented by setting the parameter.The following NAnt properties are created:prefix.versionThe complete version number, i.e. Major.Minor.Build.Revisionprefix.majorThe major component of the version number.prefix.minorThe minor component of the version number.prefix.buildThe build component of the version number.prefix.revisionThe revision component of the version number.
Reads a version string from and returns it as a
instance.
A instance representing the version string in
.
Writes the specified version to .
The version to write to .
Calculates the build number based on the number of months since the
start date.
The build number based on the number of months since the start date.
Calculates the number of seconds since midnight.
start date.
The number of seconds since midnight.
Calculates the build number of the version number based on
.
The build number.
Calculates the complete version.
The version.
Calculates the revision number of the version number based on RevisionType specified
The revision number.
The string to prefix the properties with. The default is
'buildnumber.'.
Start of project. Date from which to calculate build number.
Required if is used as
.
Path to the file containing the current version number. The default
file is 'build.number' in the project base directory.
The algorithm for generating build number. The default is
.
The algorithm for generating revision number. The default is
.
Defines possible algorithms to generate the build number.
Use the number of months since start of project * 100 + current
day in month as build number.
Increment an existing build number.
Use an existing build number (and do not increment it).
Defines possible algorithms to generate the revision number.
Use the number of seconds since the start of today / 10.
Increment an existing revision number.
Generates code for web service clients and xml web services
using ASP.NET from WSDL contract files, XSD Schemas and .discomap
discovery documents. Can be used in conjunction with .disco files.Generate a proxy class for a web service.]]>URL or Path to a WSDL, XSD, or .discomap document.Suppresses the banner.Language of generated code. 'CS', 'VB', 'JS',
or the fully-qualified name of a class implementing
System.CodeDom.Compiler.CodeDomCompiler. Compiles server-side ASP.NET abstract classes
based on the web service contract. The default is to
create client side proxy classes. Microsoft.NET namespace of generated classes.Output filename of the created proxy. Default name is derived from the service name.Override default protocol to implement. Choose from 'SOAP',
'HttpGet', 'HttpPost', or a custom protocol as specified in the
configuration file.Username of an account with credentials to access a
server that requires authentication.Password of an account with credentials to access a
server that requires authentication.Domain of an account with credentials to access a
server that requires authentication.URL of a proxy server to use for HTTP requests.
The default is to use the system proxy setting.Username of an account with credentials to access a
proxy that requires authentication.Password of an account with credentials to access a
proxy that requires authentication.Domain of an account with credentials to access a
proxy that requires authentication.Configuration key to use in the code generation to
read the default value for the Url property. The default is
not to read from the config file.Base Url to use when calculating the Url fragment.
The UrlKey attribute must also be specified.
Gets the command-line arguments for the external program.
The command-line arguments for the external program.
The generates XML schema or common language runtime
classes from XDR, XML, and XSD files, or from classes in a runtime assembly.
The following operations can be performed :
OperationDescriptionXDR to XSD
Generates an XML schema from an XML-Data-Reduced schema file.
XDR is an early XML-based schema format.
XML to XSD
Generates an XML schema from an XML file.
XSD to DataSet
Generates common language runtime
classes from an XSD schema file. The generated classes
provide a rich object model for regular XML data.
XSD to Classes
Generates runtime classes from an XSD schema file. The
generated classes can be used in conjunction with
to
read and write XML code that follows the schema.
Classes to XSD
Generates an XML schema from a type or types in a runtime
assembly file. The generated schema defines the XML format
used by .
Compile a XML Schema.
]]>
Generate an XML Schema from an assembly.
]]>
Generate an XML Schema from an XML document.
]]>
Generate an XML Schema from an XDR Schema.
]]>
Validates the .
The used to initialize the .
XML Schema (.xsd) filename.
Target of XML Schema compilation - either classes or
dataset. The default is classes.
XML element in the Schema to process.
TO-DO : turn this into collection of elements !
The language to use for the generated code - either CS,
VB, JS, VJC or the fully-qualified name of a
class implementing .
Specifies the runtime namespace for the generated types. The default
namespace is Schemas.
The output directory in which to place generated files.
Assembly (.dll or .exe) to generate an XML Schema for.
Types in the assembly for which an XML schema is being created.
By default all types in the assembly will be included.
TO-DO : turn this into collection of types !
Specifies the URI for the elements in the to
generate code for.
XML document to generate an XML Schema for.
XDR Schema to generate an XML Schema for.
Gets the command-line arguments for the external program.
The command-line arguments for the external program.
Indicates the status of a service.
The service is unbound.
The service is bound.
The service is enlisted, but not started.
The service is started.
Specialized that supports converting
a to a string value that can be used in
ClearCase commandline tools.
Initializes a new instance of the
class.
Introduces specialized behavior for converting a
value to a string that can be used in ClearCase commandline tools.
An that provides a format context.
A object. If a is passed, the current culture is assumed.
The to convert.
The which should be converted to.
An that represents the converted value.
Defines the report types supported by .
Report with separate HTML frames.
Frameless report.
Represents an entity in an .
Constructs and initializes an instance of Entity.
The path for the entity.
If true then the entity will be included. The default is true.
Opposite of . If false then the entity will be included. The default is
false.
Represents a set of entities to include in a PVCS project database task.
Constructs and initializes an instance of EntitySet.
Gets the collection of entity paths assigned to this entity set.
The entities to include in the project task.
Represents a single assembly in an .
See .
See .
See .
See .
See .
See .
Constructs and initializes an instance of Assembly.
Converts this Assembly object into it's string representation.
The culture for the assembly.
If true then the assembly will be included. The default is true.
The name of the assembly.
The public key token of the assembly.
Opposite of . If false then the assembly will be included. The default is
false.
The version of the assembly.
Represents a set of assemblies via their identity information.
Constructs and initializes an instance of AssemblySet.
Gets the collection of assemblies added to this assembly set.
The assemblies to include.
The set of files to work on.
The label to apply to the results.
Contains a collection of elements.
Initializes a new instance of the class.
Initializes a new instance of the class
with the specified instance.
Initializes a new instance of the class
with the specified array of instances.
Adds a to the end of the collection.
The to be added to the end of the collection.
The position into which the new element was inserted.
Adds the elements of a array to the end of the collection.
The array of elements to be added to the end of the collection.
Adds the elements of a to the end of the collection.
The to be added to the end of the collection.
Determines whether a is in the collection.
The to locate in the collection.
if is found in the
collection; otherwise, .
Determines whether a with the specified
value is in the collection.
The argument value to locate in the collection.
if a with
value is found in the collection; otherwise,
.
Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array.
The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing.
The zero-based index in at which copying begins.
Retrieves the index of a specified object in the collection.
The object for which the index is returned.
The index of the specified . If the is not currently a member of the collection, it returns -1.
Inserts a into the collection at the specified index.
The zero-based index at which should be inserted.
The to insert.
Returns an enumerator that can iterate through the collection.
A for the entire collection.
Removes a member from the collection.
The to remove from the collection.
Gets or sets the element at the specified index.
The zero-based index of the element to get or set.
Gets the with the specified name.
The name of the to get.
Enumerates the elements of a .
Initializes a new instance of the class
with the specified .
The collection that should be enumerated.
Advances the enumerator to the next element of the collection.
if the enumerator was successfully advanced
to the next element; if the enumerator has
passed the end of the collection.
Sets the enumerator to its initial position, which is before the
first element in the collection.
Gets the current element in the collection.
The current element in the collection.
Individual filter component of .
Holds the token which will be replaced in the filter operation.
Holsd the value which will replace the token in the filtering operation.
Initializes a new instance of the class.
Initializes a new instance of the class with
the given token and value.
The token which will be replaced when filtering.
The value which will replace the token when filtering.
The token which will be replaced when filtering.
The value which will replace the token when filtering.
Contains a collection of elements.
Initializes a new instance of the class.
Initializes a new instance of the class
with the specified instance.
Initializes a new instance of the class
with the specified array of instances.
Adds a to the end of the collection.
The to be added to the end of the collection.
The position into which the new element was inserted.
Adds the elements of a array to the end of the collection.
The array of elements to be added to the end of the collection.
Adds the elements of a to the end of the collection.
The to be added to the end of the collection.
Determines whether a is in the collection.
The to locate in the collection.
if is found in the
collection; otherwise, .
Determines whether a with the specified
token is in the collection.
The token to locate in the collection.
if a with the given
token is found in the collection; otherwise, .
Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array.
The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing.
The zero-based index in at which copying begins.
Retrieves the index of a specified object in the collection.
The object for which the index is returned.
The index of the specified . If the is not currently a member of the collection, it returns -1.
Inserts a into the collection at the specified index.
The zero-based index at which should be inserted.
The to insert.
Returns an enumerator that can iterate through the collection.
A for the entire collection.
Removes a member from the collection.
The to remove from the collection.
Gets or sets the element at the specified index.
The zero-based index of the element to get or set.
Gets the with the specified token.
The token to get.
Enumerates the elements of a .
Initializes a new instance of the class
with the specified .
The collection that should be enumerated.
Advances the enumerator to the next element of the collection.
if the enumerator was successfully advanced
to the next element; if the enumerator has
passed the end of the collection.
Sets the enumerator to its initial position, which is before the
first element in the collection.
Gets the current element in the collection.
The current element in the collection.
A set of filters to be applied to something.
A filter set may have begintoken and endtokens defined.
The default token start string.
The default token end string.
Initializes a new instance of the class.
Does replacement on the given string with token matching.
The line to process the tokens in.
The line with the tokens replaced.
The string used to identity the beginning of a token. The default is
@.
The string used to identify the end of a token. The default is
@.
The filters to apply.
Contains a collection of elements.
Initializes a new instance of the class.
Initializes a new instance of the class
with the specified instance.
Initializes a new instance of the class
with the specified array of instances.
Adds a to the end of the collection.
The to be added to the end of the collection.
The position into which the new element was inserted.
Adds the elements of a array to the end of the collection.
The array of elements to be added to the end of the collection.
Adds the elements of a to the end of the collection.
The to be added to the end of the collection.
Determines whether a is in the collection.
The to locate in the collection.
if is found in the
collection; otherwise, .
Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array.
The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing.
The zero-based index in at which copying begins.
Retrieves the index of a specified object in the collection.
The object for which the index is returned.
The index of the specified . If the is not currently a member of the collection, it returns -1.
Inserts a into the collection at the specified index.
The zero-based index at which should be inserted.
The to insert.
Returns an enumerator that can iterate through the collection.
A for the entire collection.
Removes a member from the collection.
The to remove from the collection.
Does replacement on the given string with token matching.
The line to process the tokens in.
The line with the tokens replaced.
Checks to see if there are filters in the collection of filtersets.
if there are filters in this collection of
filtersets; otherwise, .
Gets or sets the element at the specified index.
The zero-based index of the element to get or set.
Enumerates the elements of a .
Initializes a new instance of the class
with the specified .
The collection that should be enumerated.
Advances the enumerator to the next element of the collection.
if the enumerator was successfully advanced
to the next element; if the enumerator has
passed the end of the collection.
Sets the enumerator to its initial position, which is before the
first element in the collection.
Gets the current element in the collection.
The current element in the collection.
Used to specify reference information when working with the GAC.
The full details of GAC references can be found in the SDK documentation.
See .
See .
See .
See .
See .
Constructs and initializes an instance of GacReference.
If true then the entity will be included. The default is true.
The scheme type to use when working with GAC references. The default
is , which means that references will
not be used by the GAC task.
The scheme ID to use when working with GAC references. This is only
relevant if a scheme type other than
is specified.
The scheme description to use when working with GAC references. This
is only relevant if a scheme type other than
is specified.
Opposite of . If false then the entity will be included. The default is
false.
Represents the an element based on a schema definition.
Represents the schema collection element.
Namespace URI associated with this schema.
If not present, it is assumed that the
schema's targetNamespace value is to be used.
Location of this schema. Could be a
local file path or an HTTP URL.
Contains a collection of elements.
Initializes a new instance of the class.
Initializes a new instance of the class
with the specified instance.
Initializes a new instance of the class
with the specified array of instances.
Adds a to the end of the collection.
The to be added to the end of the collection.
The position into which the new element was inserted.
Adds the elements of a array to the end of the collection.
The array of elements to be added to the end of the collection.
Adds the elements of a to the end of the collection.
The to be added to the end of the collection.
Determines whether a is in the collection.
The to locate in the collection.
if is found in the
collection; otherwise, .
Determines whether a with the specified
value is in the collection.
The argument value to locate in the collection.
if a with
value is found in the collection; otherwise,
.
Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array.
The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing.
The zero-based index in at which copying begins.
Retrieves the index of a specified object in the collection.
The object for which the index is returned.
The index of the specified . If the is not currently a member of the collection, it returns -1.
Inserts a into the collection at the specified index.
The zero-based index at which should be inserted.
The to insert.
Returns an enumerator that can iterate through the collection.
A for the entire collection.
Removes a member from the collection.
The to remove from the collection.
Gets or sets the element at the specified index.
The zero-based index of the element to get or set.
Gets the with the specified name.
The name of the to get.
Enumerates the elements of a .
Initializes a new instance of the class
with the specified .
The collection that should be enumerated.
Advances the enumerator to the next element of the collection.
if the enumerator was successfully advanced
to the next element; if the enumerator has
passed the end of the collection.
Sets the enumerator to its initial position, which is before the
first element in the collection.
Gets the current element in the collection.
The current element in the collection.
Helper class to calculate checksums
of files.
Create a new instance
Name of hash algorithm to use
Calculates a checksum for a given file
and returns it in a hex string
name of the input file
hex checksum string
Converts a checksum value (a byte array)
into a Hex-formatted string.
Checksum value to convert
Hexified string value
Recorder interface user with the Record task
Starts recording.
Stops recording.
Closes the recorder.
Flushes the recorder.
Gets the name of this recorder (possibly a file name).
Gets The underlying instance.
Defines whether the underlying writer is automatically flushes or
not.
Keeps track of used recorders
Initializes a new instance of the
class.
Flushes buffered build events or messages to the underlying storage.
Signals that a build has started.
The source of the event.
A object that contains the event data.
This event is fired before any targets have started.
Signals that the last target has finished.
The source of the event.
A object that contains the event data.
This event will still be fired if an error occurred during the build.
Signals that a target has started.
The source of the event.
A object that contains the event data.
Signals that a task has finished.
The source of the event.
A object that contains the event data.
This event will still be fired if an error occurred during the build.
Signals that a task has started.
The source of the event.
A object that contains the event data.
Signals that a task has finished.
The source of the event.
A object that contains the event data.
This event will still be fired if an error occurred during the build.
Signals that a message has been logged.
The source of the event.
A object that contains the event data.
Only messages with a priority higher or equal to the threshold of
the logger will actually be output in the build log.
Empty implementation which allows derived classes to receive the
output that is generated in this logger.
The message being logged.
Outputs an indented message to the build log if its priority is
greather than or equal to the of the
logger.
The priority of the message to output.
The message to output.
The number of characters that the message should be indented.
Outputs an indented message to the build log if its priority is
greather than or equal to the of the
logger.
The event to output.
Outputs an indented message to the build log if its priority is
greather than or equal to the of the
logger.
The event to output.
TODO
Gets or sets the highest level of message this logger should respond
to.
The highest level of message this logger should respond to.
Only messages with a message level higher than or equal to the given
level should be written to the log.
Gets or sets a value indicating whether to produce emacs (and other
editor) friendly output.
if output is to be unadorned so that emacs
and other editors can parse files names, etc. The default is
.
Gets or sets the to which the logger is
to send its output.
Groups a set of useful file manipulation methods.
Initializes a new instance of the class.
Prevents instantiation of the class.
Copies a file while replacing the tokens identified by the given
.
The file to copy.
The name of the destination file.
The used when filter-copying the file.
The collection of filtersets that should be applied to the file.
Moves a file while replacing the tokens identified by the given
.
The file to move.
The name of the destination file.
The used when filter-copying the file.
The collection of filtersets that should be applied to the file.
Given an absolute directory and an absolute file name, returns a
relative file name.
An absolute directory.
An absolute file name.
A relative file name for the given absolute file name.
Returns a string from your INI file
' Writes a string to your INI file
' Stores all the cached changes to your INI file
Helper class used to execute Sql Statements.
Initializes a new instance.
OleDB Connection string
True if you want to use a transaction
Close the connection and terminate
true if the transaction should be commited
Executes a SQL statement.
SQL statement to execute
Command timeout to use
Data reader used to check the result
OleDB Connection object
Helper class to adapt SQL statements from some
input into something OLEDB can consume directly
Creates a new instance
Adapts a set of Sql statements from a string.
A string containing the original sql statements
Adapts a set of Sql statements from a string.
Path of file containing all sql statements
The encoding of the file containing the SQL statements.
The new instance
Determines how the delimiter is interpreted in a SQL string.
Delimiter can appear anywhere on a line.
Delimiter always appears by itself on a line.
Helper class to maintain a list of SQL Statements.
Initializes a new instance.
String that separates statements from each other
Style of the delimiter
Parses the SQL into the internal list using the specified delimiter
and delimiter style
The SQL string to parse.
Parses the contents of the file into the
internal list using the specified delimiter
and delimiter style
File name
The encoding of the file containing the SQL statements.
Allows foreach().
Strips all single line comments
in the specified sql
Expands project properties in the
sql string
Gets the number of statements in the list.
Gets the statement specified by the index.
Project's properties for property expansion