WebDeploy Auto-Completion UI

As the Microsoft Web Deployment Tool gained popularity, it has undergone a lot of churn which resulted in the continual addition of new features and a humongous set of command-line options. This tool has been built to alleviate a lot of pain in the usage of our command-line. The WebDeploy Auto-completion tool is intended for both beginning and advanced users of the WebDeploy command-line tool to aid them in understanding and exploiting its many features.

The idea for an auto-completion UI tool for WebDeploy was derived from the command-line auto-completion tool for appcmd published by Kanwaljeet Singla here.

This is the initial release of the tool. I expect it to undergo many iterations based on the feedback i receive. So please free to post your feedback here or send it directly to yaminij@microsoft.com.


WebDeploy RTW, which can be downloaded from http://www.iis.net/extensions/WebDeploymentTool.


You can download the executable from here.

Overview of Features

Some of the major features that the WebDeploy Auto-Completion UI currently boasts of are

1) Similar to the appcmdUI, the WebDeploy auto-completion UI has 3 components

a) On the top, a text box where the msdeploy.exe command can be typed in with auto-completion features.

b) An output pane in the center that displays the output of executing the msdeploy.exe command.

c) On the right, a help pane, which displays verbose help for the most recent object in the command-line text box.

2) The left pane has four collapsible panels that generate

a) Commonly used msdeploy.exe commands.

b) Commonly used Skip-Replace commands pre-constructed for you so that you only need to type in the values that you need to skip or replace.

c) Shortcuts to switches.

3) You can scroll through the history of previously executed msdeploy.exe commands in the Command-line Text Box.

4) You can save and restore a history of previously executed msdeploy.exe commands.


Implementation and Usage

1) The command-line text box auto-completes the following elements

a) Actions


b) Verbs


c) Providers





d) Provider Options for each specific provider


e) Destination providers based on values in the source provider


d) SetParam, DeclareParam, Skip, Replace based on arguments already added to the command-line


e) Once a set of commands are executed, you can use the Up and Down arrow keys in the textbox to see the list of previously executed commands. , just as you would at a command prompt.

2) The help panel displays help based on the current action on the command line, once a space is typed.

For example, when typing “msdeploy –verb:dump –source:contentpath=c:\inetpub\wwwroot”.

a) “-verb:dump” followed by a space will display help for the dump verb.

b) If “–source:dbFullSql=””” followed by a space is typed, the help pane will display help for the dbFullSql provider.

and so on and so forth for all actions (including –skip, –replace etc).

3) There are some collapsible panels on the side, which contain pre-cooked commands that become available depending on what’s currently in the command in the the textbox. The collapsible panels have controls that generate

a) Commonly used commands for syncing servers, sites etc.

b) Commonly used Skip and Replace commands. To read more about skip-replace, please refer to this blogpost.

c) Switches that affect the entire command-line.


4) You can scroll through the history of previously executed msdeploy.exe commands  in the command-line TextBox by using the Up and Down arrow keys. To save or restore a command-history as a text file, you can click on the “Save Command History…” or “Restore Command History…” buttons.



I would like to thank Carlos , Madhur, Dave, James and Gurpreet for their invaluable feedback and help in getting this tool completed. I would also like to thank Kateryna Rohonyan whose idea it was initially to write the appcmd auto-completion equivalent for msdeploy. I would also like to thank Tim for his blog corrections and feedback.

1 Comment

  • This is a nice tool. I wish I had found it long ago!
    Too bad it was never updated after its initial implementation...

Comments have been disabled for this content.