Friday, July 11, 2008

MSDeploy - Beta 1/Go Live Released


We recently released Beta1/Go Live version of "Microsoft Web Deployment Tool (aka MSDeploy.exe) ".  MSDeploy is a very useful tool for creating web packages which can be used to move your web application from developer boxes to servers.  It can be used to replicate servers in web farm environments too.

Download Location:  You can download MSDeploy.exe from the below location:

Earlier I had written about the Technical Preview release of MSDeploy here.  Apart from the features I had mentioned in the above post following are other key features worth noting are:

MSDeploy Remote Agent: MSDeploy comes with a remote agent service.  This service can be optionally installed with MSDeploy and usually is intended to be installed on the server side.  MSDeploy on your Dev/Test box can talk directly to the remote agent on the server and help move your IIS6/IIS7 web to equal or higher version of the webs on the server.

Below is an example of how you can move an IIS 6 site from one machine to another.

  MSDeploy.exe -verb:sync -source:metakey=lm/w3svc/1,computerName=VJWin2k3 -dest:metakey=lm/w3svc/2

Web Archive/Package:  MSDeploy can actually take a snapshot of your app from the local machine and move it to what we call as Archive Directory.  This will allow you to eventually take the Archive Directory on a different machine and use MSDeploy command line with elevated privileges to install your web on the server.  This can potentially solve a very common problem of developers not having admin rights on the server.   Developers in this scenario can run MSDeploy on your local IIS and create archive dir for their web.  This can be done from command line in the following way:


(command: msdeploy -verb:sync -source:appHostConfig="Default Web Site" -dest:archiveDir="V:\Vishal\Archive")

This Archive dir can then be shared with the server Admins who can examine the content of the archive dir by executing the following command:

msdeploy -verb:dump -source:archiveDir="V:\Vishal\Archive"


Now the admins can actually install the website from this archive package on to the production server.  This can be done by executing a command like below:

msdeploy -verb:sync -source:archiveDir="V:\Vishal\Archive" -dest:appHostConfig="Production Web Site"


On executing this command the "Production Web Site" will get installed (as shown below) and will be stopped by default.  Admin can then turn it ON as appropriate.


I thought that apart from talking about the above feature referencing the New Features of this release from the "Read Me" file would be useful, so here are the extracts from the Read Me file...

"What's New in this Release

  • PowerShell Support. PowerShell cmdlets are included, allowing you to use the Microsoft Web Deployment Tool conveniently with PowerShell. For more information about how the PowerShell cmdlets work, see the Help file as well as the Microsoft Web Deployment Tool Walkthroughs.

  • Enhanced Dependency Support. The dependencies that are checked for a web site or server can now be viewed on IIS 7.0 as well as IIS 6.0. They can be turned off on a granular level, such as disabling the drive space dependency check while still running the other dependency checks, or disabling the check for a single ISAPI script map. Additionally, when you view dependencies, you will be able to see the “trigger” for the dependency (what location(s) in configuration caused the Microsoft Web Deployment Tool to say that the module/component is a potential dependency).

  • Help file included in Setup. You can now see the full list of verbs, parameters and other detailed information about the Microsoft Web Deployment Tool in our .chm Help file, which will be included when you install the tool."

In the future posts on this topic I will write more about various other features of MSDeploy and how they can serve some of your web deployment needs.

Hope this was useful!!