Automated Deployment Resources

I know enough to know that we need our application to be deployed with a single user action. However, I do not know :

  • What good tools can I use in the .NET store?
  • How do you manage configuration changes for each of your environments?

Can someone point me to good resources for continuous integration. I would like to see some theory, as well as a step-by-step practical guide.

Edit:
Now I need to automate web deployment; however, I would also like to know how to do this for desktop applications.

+7
build-automation continuous-integration deployment automated-deploy
source share
6 answers

I wrote a blog post that might be helpful:

Visual Studio Web Deployment Projects

This is a year and a half ago, but talked about some new (at the time) project templates for VS, as well as a command line utility from an IIS command called MSDeploy. They seemed really promising, and it turned out to be ideal for setting up multiple build configurations, synchronizing multiple servers on a farm, and more control over the actual release deployment of your website.

Perhaps by that time the technology had matured as well.

+5
source share

We had great success with the Windows Installer XML . Basically, you define the components that make up your application in XML and WiX, turn into an MSI package. The documentation is relatively scarce, but the CHM file provided in conjunction with the fu search takes you a long way.

MSI packages can accept input parameters for configuration values ​​and take actions to manage configuration files after application deployment. For example, "msiexec / i MyCustomPackage.msi SqlServer = SomeSQLBox" can expand the web application and change the configuration entry for the dependent SQL block.

+2
source share

Kinook's Visual Build Pro is a pretty good one-click deployment tool. It is easy to use and has many features. I have been using it for many years. Of course, there is also NAnt, which I have not used much.

Regarding configuration change management, I manage several configuration files with extensions that indicate the deployment environment, and then just do a simple renaming as a step inside my build script.

For example, if I deploy Test, I may have a configuration file called Web.test.config, which is automatically renamed to Web.config using the build script.

+1
source share

I wrote a fairly detailed blog post using TeamCity and web deployment projects to automate build and deployment as a starter here:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

Then I added to this to show FTP addition

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

The main thread of the process is quite simple:

  • Using teamcity build server I load from my SVN repo
  • I create and deploy a site in a local folder on the build server
  • I am running a command line FTP client that supports scripts called
  • WinSCP using MSBUILD Task EXEC (http://winscp.net/)
  • Downloading the contents of all my sites
  • There is [add a drink] of choice.

Then I make sure that I only deploy Trunk of my SVN repo, and also develop and test everything in the branch before the merge - this way only proven things are deployed. Add automated testing to the build cycle and you have a match made in heaven.

Some great free tools to work with:

+1
source share

I see two different questions:

  • For deployment: ClickOnce deployment should do this. You simply publish your desktop application by going to VS.net under Build> Publish. VS.net then compiles the web page and setup.exe file. When users with IE or Firefox and .net 3.5 SP1 click on a link, it starts immediately. ClickOnce also handles updates for you, and an extensive API has been developed for this.
  • Continuous integration is a completely different matter. I suggest you google for "CruiseControl.net" and download and try out as many resources as you can. This is basically a build server, but you can connect it to SVN, NUnit for testing, and so on. I would not suggest buying a book for such a volatile product. It’s best to download it and try it.
0
source share

CruiseControl.NET for ContinuousIntegration. For deployment, I use the MSBuild project file. At the top of this, I save all the server configuration files. I pass MSBuild a server property on the parameters, which tells MSbuild which configuration values ​​to use, and then completes the deployment. The only deployment that cannot be done directly with CruiseControl is one for our live servers. We leave this MSBuild command line just so that we don’t accidentally press a button, or someone who has access to the CC.NET web dashboard just plays.

0
source share

All Articles