Our current deployment steps can be briefly described as follows:
- Load the project in Visual Studio 2012, and change mode from Debug to Release
- Right-click the web application project, and select Publish
- Choose the "File System" publish method and create a target location
- Publish files onto the specified file location
- Zip all published files and send the package to a remote server via an FTP client, e.g. FileZilla
- RDC the server and manually unzip the package
- Add App_offline.htm to the root folder of target web application
- Copy only selected folders/files (not all) from unzipped package over to the target web application directory (backup the target files first)
- Removed app_offline.htm from root folder
- Restart/refresh website in IIS
It is such a pain in the butt doing it manually. And this is somehow the deployment process that my team asks me to stick with, LOL. I am by no means going to do it manually forever. There has got to be a better way.
I have so far just set up TeamCity for automating the builds. So whenever a developer checks in his/her code in TFS, a build will be triggered automatically and a notification email will be sent to team about the build status.
But automated deployment is still up in the air. So any suggestions/ideas on how to automate this process and make life a bit easier? What's the right way of deploying ASP.NET web applications?