
By default, rules only run if they are marked with the isDefault attribute set to true. A few examples of things that rules do are normalizing paths using environment variables, skipping UNC paths, skipping configProtectedData configuration, etc.
#Microsoft deployment toolkit code
Rules are small pieces of code that have logic to do something special and are evaluated only when a sync operation is performed (not during a dump). Together providers and link extensions provide the view of the system that can be dumped, archived, synced, or migrated. Link extensions rely on providers to actually pull in the data and are limited by what providers are supported and can do. For example, –disableLink:ContentExtension will cause content to not be included in a view of virtual directory configuration, which would allow for syncing of two servers without moving any content. If you want to disable a link extension while executing a command, you can use –disableLink switch provided. Link extensions are executed for all verbs, so a dump will also cause link extensions pull in additional data. Another example is the CertificateExtension, which is responsible for pulling in certificate whenever SSLCertHash is seen in the configuration. It does this by adding a dirPath entry under the virtual directory configuration, and the dirPath provider then pulls in all the content. An example of a link extension is the ContentExtension, which pulls in content whenever it sees a virtualDirectory configuration element added by appHostConfig provider or sees a path metaProperty. Links basically connect otherwise unrelated data based on logic coded in the extensions. Link extensions (or links) are executed for each entry generated by the providers.

The only exception is the archiveDir provider, which can be used with other providers.

So if you are using a manifest as the source of your operation, you must also use the manifest provider as the destination. When doing a sync or migrate, the same provider must be used for the source and destination. You can also create these custom manifests in a separate xml file and then use –source:manifest= to use it as a source. Two examples of built-in custom providers are the webServer and webServer60 providers, whose definitions can be found in. The tool also supports custom providers, which are built by combining one or more existing providers.

#Microsoft deployment toolkit full
You can see the full list of supported providers in or by running the tool with no parameters to see the Help output. Some examples of providers that are provided out of the box are dirPath, appHostConfig, and metaKey.

Each provider is responsible for handling each of these operations. Then, the tool only needs to compare these xml views and call for Add, Update, or Delete operations on the destination to make its xml view same as source. Parameters you pass in the –source and –dest switches at the command line specify the providers which builds xml views of source and destination systems. It will delegate the task of handling files to the filePath provider and handling subdirectories to another dirPath provider object. For example, if you begin with the dirPath provider, it will build an xml view of the folder (specified by the path), which will include files and subfolders present in it. These views are internally represented in xml. The provider builds the view of the part of the system it can handle, and uses other providers to represent system parts that they handle. The tool always starts with one provider, with an optional path for the provider. Providers are pieces of code that provide data to the tool for various operations like sync. There are four concepts that are important for you to understand to be able to effectively use the new Microsoft Web Deployment Tool.
