Web Deploy was created to automate common deployment tasks by packaging ASP.NET applications into a .zip with a manifest. It supports both command line deployment and an interactive mode, through the IIS management console.
This post is the result of my first attempt to roll out package based deployment using Web Deploy at a customer.
It’s been sort of a bumpy ride getting everything implemented but the tool definitely delivers what it promises; seamless deployment for your web app.
Here’s what I set out to do:
- Build a deployment package for an existing application
- Verify the correct pipeline mode on deployment
- Include an empty folder (not something supported out of the box, oddly enough)
- Give write access to specific folders
- Prevent specific folders from being cleared on deployment
- Customize the deployment package name to include a version and/or build number
I managed to get all of these implemented, mostly by hand-authoring an MSBuild script. One thing that disappointed me though was that interactive installation does not allow me to prevent specific folders from being cleared. That’s for command line deployment only.
In this post I’ll first give some quick pointers on how to get started with Web Deploy and building packages. After that, I’ll work down the list of requirements posted above one by one.