Skip to main content

Creating Continuous Integration in TFS 2010 for SharePoint 2010 projects




Setting up Continuous Integration for the code in a project is a common procedure followed in projects. The Continuous Integration (CI) becomes more important in development projects using Agile methodology or for geographically distributed teams. You can create build definitions in Team Foundation Server (TFS) 2010 to build your codebase.

But the important question is – how do you setup CI for SharePoint projects? Because by TFS 2010 build agent will not be able to compile SharePoint code. This is because SharePoint code refers to the SharePoint assemblies. And these SharePoint assemblies are not available in the server where the TFS is configured. You could ask why don’t we just install SharePoint 2010 on the same server as TFS 2010. Installing SharePoint 2010 on TFS 2010 server is not recommended for performance reasons obviously.

So, the easiest way to successfully compiling SharePoint 2010 code on TFS 2010 server is to copy the SharePoint 2010 assemblies on the build server. The process is well documented on MSDN. There is also a PowerShell script what will collect the SharePoint 2010 assemblies and install them on the build server.

Please go through the below steps to achieve the same.

•    Follow the procedures defined on MSDN – How to Build SharePoint projects with TFS team build

Also keep in mind that the script may not copy all the required assemblies to build server. Make sure you also consider the following assemblies for copy.

•    Microsoft.Office.Server.dll
•    Microsoft.Office.Server.UserProfiles.dll
•    Microsoft.SharePoint.Client.dll
•    Microsoft.SharePoint.Client.Runtime.dll
•    Microsoft.SharePoint.Client.ServerRuntime.dll
•    Microsoft.SharePoint.Linq.dll
•    Microsoft.SharePoint.Portal.dll
•    Microsoft.SharePoint.Publishing.dll
•    Microsoft.SharePoint.Taxonomy.dll
•    Microsoft.SharePoint.WorkflowActions.dll
•    Microsoft.Web.CommandUI.dll

Now that your build server can compile SharePoint codebase, you have to create a build definition in TFS 2010 for CI.

Creating Build Definition – Process Overview

1.    Make sure that your VS 2010 is connected to the TFS 2010 server. Now from the team explorer select New Build Definition on the Builds node.
 2.    Give the Build Definition a name and description
 3.    In Trigger tab, select Continuous Integration – Build each check-in.
 4.    In Workspace tab, select the source of your SharePoint codebase
 5.    In Build Defaults tab, specify output files drop folder
 6.    In Process tab, specify the solutions and projects to include in the build
 7.    In Retention Policy tab, specify how long builds should be kept. By default, last 10 builds are kept.
8.    Save the build definition

9.    Now go to the newly created build definition, right click and select Queue New Build.

10.    The build explorer window will show the build activity.

Hope this article will at least serve as a reference point for configuring TFS 2010 to build SharePoint 2010 code. Configuring CI for SharePoint projects involve much more planning and research. I would suggest you to go through the links specified in the article and in the reference section below.

Reference

http://blogs.msdn.com/b/sharepointdev/archive/2011/08/25/creating-your-first-tfs-build-process-for-sharepoint-projects.aspx
http://msdn.microsoft.com/en-us/library/ff622991.aspx
http://archive.msdn.microsoft.com/SPPwrShllTeamBuild

-    Vighnesh Bendre

Comments

Popular posts from this blog

Create list view - Conditional Formatting in SharePoint Designer 2010

In this example, we are going to format a column based on certain condition. Here I already have a list called Projects. I also have workflow associated with it. So whenever I create a new item in the list, workflow status column shows ‘In Progress’. Subsequently when the workflow in completed, the workflow status column shows ‘Completed’. For demonstration purpose, I will set the background color of workflow status column to yellow when the status is ‘In Progress’ and to green when the status is ‘Completed’. In SharePoint Designer open the site on which you are working. Click on ‘Lists and Libraries’ link. Choose the ‘Projects’ list. In SharePoint Designer Navigation, choose ‘Lists and Libraries’. In the list settings page, click on ‘New’ in ‘Views’ section. Provide appropriate name for the view and click OK. After choosing list, click on ‘New’ in the Views section. Give appropriate name to the list. Now click on any column, then in the ribbon, click on List View Tools-&g

SharePoint 2013 (SP 15) - Creating Custom Lists

As I am exploring SharePoint 2013, I found out that there are lot of things that are new and there are lot of thing that are old but presented in a different manner as compared to SharePoint 2010. For example, Site Actions was on the top left corner in SP 2010. But in SP 15 (SharePoint 2013) we dont have ‘Site Actions’ button. But instead we have a settings icon which is placed at top right corner. When you click on the settings icon select Add an App. This will basically allow you to add custom lists, documents libraries etc. Add an App is basically the same as More Options in SharePoint 2010. From now on custom lists & libraries will be called apps. Just like in Apple store or Android store you can develop apps for SharePoint and sell it. You can find more information here: http://officepreview.microsoft.com/en-us/store/apps-for-sharepoint-FX102804987.aspx When you click on Add an App you will be navigated to a different scree which will display different opti

Working with large xml files in c# .net

Working with large (huge) xml files is always a pain in the … The reason? These files can’t be loaded in to memory. On my desktop, where I have 2 gigs memory, I can’t open the file in even notepad. I was presented with a challenge recently to manipulate one such large xml file. The xml file was of 550+ MB. I know many would say I have seen bigger xml files than this. But the heart of the matter is if I can’t open 550+ MB file in notepad or in xmldocument in c#, then I can’t open any file bigger than this. And hence the logic to play with these files would remain same. The scenario: We have an xml file from which we want to remove a single node without removing its children. In the below sample xml fragment, the node has to be removed. The children nodes, must then be attached to ( node’s parent) node. One Two 100.22 GoodDay 3 4 Five 200.09 Cra