Thursday, January 8, 2015

Setting up a Microsoft.Net Autobuild machine

If you are in the process of setting up an Autobuild machine to execute your .NET Builds, here are some of the tools that I like to have on my autobuild machines to be able to easily build my .NET solutions:

  1. If you are not planning on using a separate autodeploy server (highly recommended), you will also want to ensure that you have IIS properly configured on your autobuild machine so that you can test your deployment strategy as part of your autobuild process.
  2. An edition of Visual Studio that can build and run all of your tests such as Premium or ideally Ultimate edition
  3. MSBuild Extension Pack to add additional functionality to the MSBuild engine
  4. Attrice MSBuild Sidekick to easily create and edit MSBuild files
  5. Jetbrains Resharper to provide Intellisense while editing existing MSBuild files
  6. A plain old text editor such as EditPlus or JGSoft EditPad Pro to view and load large log files as well as generalized text editing
  7. A CI Build server such as TFS Build or Jetbrains TeamCity.  My preferred build engine overall is still Jetbrains TeamCity since it offers numerous features still not available in TFS Build as well as being much easier to get set up and running with customized builds.
  8. Access to a SQL Server if you are doing any database testing or storing your build configuration information in SQL Server (such as with Jetbrains TeamCity).
  9. An installation or packaging tool such as Advanced Installer or InstallShield.  If you have access to InstallShield, you will only need to install the InstallShield Standalone Build executable to build your InstallShield packages.  If you have licensing for InstallShield, it might be worthwhile to also have the full version of InstallShield on the build server so you can design and troubleshoot any packaging problems you encounter.

Once you have all of the necessary software installed on your autobuild machine, your MSBuild file and your CI Server are going to be the glue that holds everything together.  If you are using a CI Server such as Jetbrains TeamCity, TeamCity will basically manage pulling all of the source code from your repository and then executing your MSBuild file to run your specific Targets.  TeamCity can automatically build Visual Studio solutions using a built-in build runner as well as execute Tests using the MSTest engine, but any other customized build processes will need to be included in your MSBuild file such as autodeployment, assembly versioning, packaging etc.

That is pretty much all there is to it!

No comments:

Post a Comment