Creating Deployment Scripts in PowerShell vs Using TFS

automationccontinuous integrationteam-foundation-server

I'm experimenting with automatic deployment / continuous integration and had a talk with my team lead.

I told him I'm investigating creating build/deployment scripts in PowerShell and he said automatic deployment is very easy to set up in TFS using a GUI and I should research that instead. I have zero experience with TFS except for commiting to source control from VS.

In which situations would TFS fail and would you be better off with PowerShell for automatic deployment?
What other reasons and advantages are there to choose PowerShell instead of TFS?

And another thing: Could I run a third party tool that, for example, minifies JS files from TFS?

Some advantages of PowerShell I could think of:

  • PowerShell offers maximum flexibility
  • You can easily switch to another source control system such as Mercurial
  • The scripts will be easier to maintain than what TFS generates
  • PowerShell is light weight: you can run the script on any PC

Best Answer

I think you hit the nail on the head with the advantages you listed. Powershell gives you mobility and lets you move from source control to source control, but more importantantly lets you move from build server to build server, like Jetbrains' TeamCity. Since the scripts are independent and can be run from the command line, you can fire them off from anywhere, including (like you said) your local machine.