I am currently responsible for deploying our project into the test and production environments. The project has a few reports which need to be installed on a few report servers. The deployment tool that I am using for the rest of my project is MSBuild so I tried to see if there was a way of getting MSBuild to deploy the reports. The only method that I found was to write an RS script file which deployed the reports and calls the Exec task to run the RS script.
So I started outright with RS script as I was not over joyed about writing VB.Net code as I am a C# coder. Then I remembered that MSBuild is customizable as it allows custom tasks to be written. So I stopped writing my VB.Net code went back C# and created a few tasks that are commonly needed to deploy: AddReportUser, CreateReportFolder, CreateConnectionSoruces, DeployReports and SetReportsDataSource. The task code was easy to write. I did have to change some of the auto generated code. I changed the refence.cs file by changing the ReportingService2005 method to accept a string as it called and removed all references to the setting file and app.config. I also deleted the setting file and app.config that was created by the Visual Studio.