views:

221

answers:

2

I want to update an ASP .NET web application (including web.config file changes and database scripts) to multiple production environments - ideally with the click of a button. I do not have direct network connectivity to any of them. I think this means the application servers will have to "pull" the information required for updating the application, and run a script to update the application that resides on the server.

Basically, I need a way to "publish" an update, and the servers see that update and automatically download and run it.

I've thought about possibly setting up an SFTP server for publishing updates, and developing a custom tool which is installed on production environments which looks at the SFTP server every day and downloads application files if they are available. That would at least get the required files onto the servers, and I could use xcopy/robocopy and Migrator.NET to deploy the updates. Still not sure about config file changes, but that at least gets me somewhere.

Is there any good solution for this scenario? Are there any tools that do this for you?

+1  A: 

I think the pull rather than push strategy somewhat flaunts conventional wisdom... but this seems like something CruiseControl.NET could easily do. Remember the web.config file is also an XML document, so is easily modifiable in a CruiseControl script. You could xcopy files or use an svn export.

Bryan
I've been looking into CruiseControl.NET the past couple of days. It's really cool. But we don't want our source code to be distributed to client machines because of security concerns. Maybe we could put our compiled files within source control?
Brandon Montgomery
You could certainly do that... or just have CruiseControl copy the files it needs from the build machine output directory.
Bryan
A: 

http://varunkumargoel.blogspot.com/2010/03/how-to-make-automatic-deployment-for.html

Please view the above mentioned blog there i have posted details regarding automatic deployment of .NET application with SVN.

Varun
Good link, but the question is how would it deploy to remote sites?
Brandon Montgomery