locked
Build process with a CMS application RRS feed

  • Question

  • Hi.  I am new to Team Foundation Server, I have set up a TFS 2010 SP2 server, and configured everything successfully.  I have set up a build controller against my dev teams project collection and we have started coding against Work Items from this collection.

    My problem is that I feel I am diving in at the deep end of the pool, as our first project is non-standard, because its not a desktop app, but is instead a .NET web app with a SQL server backend, and it is built with SiteFinity 4.2. 

    The team is small, 3 developers so our TFS configuration is basic, built for a small dev team.  The SiteFinity app is built with .NET 2010 and is a web based CMS application.  We are writing custom modules and web controls for this app in C#.  Each developer has been getting the project out of TFS and now have reached the stage where our developers need to deploy this code, first to our shared development environment, and then we need to move it to the Staging (test) environment.  Sitefinity makes alot of use of SQL server, it will write many tables in the backend in response to creating pages in the front end.

    So.....

    Is it possible to use the TFS build controller to make builds of the asp .net changes and deploy out through our enviroments?  Is there any way of combining SQL server changes - these would be schema and data changes and we would want to deploy differential changes only, not over-writing the destination SQL db if possible, so we could give our business users access to the staging environment to begin adding content there.

    How should I do this?  I tried queuing a build against the project, and it errored saying there was no .sln file in the build folder, and complained about a missing Binaries directory, again in the build folder

     

    Wednesday, October 19, 2011 2:38 PM

Answers

  • Hi Slightly_Jaded_Hack,

    Have a look at this video http://www.hanselman.com/blog/WebDeploymentMadeAwesomeIfYoureUsingXCopyYoureDoingItWrong.aspx 

     

    Is it possible to use the TFS build controller to make builds of the asp .net changes and deploy out through our enviroments? Is there any way of combining SQL server changes - these would be schema and data changes and we would want to deploy differential changes only, not over-writing the destination SQL db if possible, so we could give our business users access to the staging environment to begin adding content there.

    Yes, it is possible to use TFS build services to build asp.net/sql changes and deploy the package across environments. There are several ways to achive this, one is talked about in the above link and two is a community tool know as tfs deployer read this blog post for more details http://geekswithblogs.net/TarunArora/archive/2011/05/21/tfs-deployerndash-automate-deployments.aspx

     

    How should I do this? I tried queuing a build against the project, and it errored saying there was no .sln file in the build folder, and complained about a missing Binaries directory, again in the build folder

    You get this error message because you have not configured the build template correctly. You need to tell the build process what solution file it needs to pick up for compiling your code. You also have the option to specify the configuration type you would like to build, where you would like the compiled binaries to be dropped, if you want to generate a package you can choose to pass parameters to get that done as well. Have a look at this walkthrough on msdn on how to configure a build http://msdn.microsoft.com/en-us/library/ms181716.aspx

    My recommendation to you would be,

    1. First get the build working and make sure that you have the complete package being dropped to the location correctly.

    2. Take this package and deploy this across environments locally

    3. Once you have confidence that 1 and 2 works, you can use either the web deploy method suggested in the video link or tfs deployer to automate deployments.

    HTH
    Cheers, Tarun 


    Please remember to mark the replies as answers if they help.

    Tarun Arora

    Blog: http://geekswithblogs.net/TarunArora  Subscribe in a reader

    • Marked as answer by rwb2000 Thursday, October 20, 2011 2:12 PM
    Wednesday, October 19, 2011 6:38 PM

All replies

  • Hi Slightly_Jaded_Hack,

    Have a look at this video http://www.hanselman.com/blog/WebDeploymentMadeAwesomeIfYoureUsingXCopyYoureDoingItWrong.aspx 

     

    Is it possible to use the TFS build controller to make builds of the asp .net changes and deploy out through our enviroments? Is there any way of combining SQL server changes - these would be schema and data changes and we would want to deploy differential changes only, not over-writing the destination SQL db if possible, so we could give our business users access to the staging environment to begin adding content there.

    Yes, it is possible to use TFS build services to build asp.net/sql changes and deploy the package across environments. There are several ways to achive this, one is talked about in the above link and two is a community tool know as tfs deployer read this blog post for more details http://geekswithblogs.net/TarunArora/archive/2011/05/21/tfs-deployerndash-automate-deployments.aspx

     

    How should I do this? I tried queuing a build against the project, and it errored saying there was no .sln file in the build folder, and complained about a missing Binaries directory, again in the build folder

    You get this error message because you have not configured the build template correctly. You need to tell the build process what solution file it needs to pick up for compiling your code. You also have the option to specify the configuration type you would like to build, where you would like the compiled binaries to be dropped, if you want to generate a package you can choose to pass parameters to get that done as well. Have a look at this walkthrough on msdn on how to configure a build http://msdn.microsoft.com/en-us/library/ms181716.aspx

    My recommendation to you would be,

    1. First get the build working and make sure that you have the complete package being dropped to the location correctly.

    2. Take this package and deploy this across environments locally

    3. Once you have confidence that 1 and 2 works, you can use either the web deploy method suggested in the video link or tfs deployer to automate deployments.

    HTH
    Cheers, Tarun 


    Please remember to mark the replies as answers if they help.

    Tarun Arora

    Blog: http://geekswithblogs.net/TarunArora  Subscribe in a reader

    • Marked as answer by rwb2000 Thursday, October 20, 2011 2:12 PM
    Wednesday, October 19, 2011 6:38 PM
  • Thanks for the prompt and comprehensive reply, I will try these recommendations, and check out the videos and let you know how I get on.

    (Feeling slightly less jaded)

     

    Thursday, October 20, 2011 2:12 PM