Building the CRM Developer Toolkit Solution (CrmPackage) in the Cloud (TFS Online)

As most of you probably know, Microsoft released an online version of  TFS that is host in the cloud. You can find more information about this http://tfs.visualstudio.com/.

This allows you to store and manage all the artefacts related to your application life cycle management in the cloud. This includes source control, work item management and testing.

One of the cool features that TFS provides is Automated Builds. This can among other things compile your code in a consistent way and also run automated tests and produce packages such as your CRM solutions.

TFS online comes with a hosted pre-configured build controller that you can use to build your software. This comes pre-configured with a list of software packages. These don’t include the CRM Developer Toolkit. As such trying to compile any Visual Studio projects created using the CRM Developer Toolkit will not work by default.

In this post I will show you how to configure your CrmPackage project to make it compatible with the hosted build controller.

A typical project created using the CRM Developer Toolkit will look something like the below. This contains Plug-in,Workflow and  XAML Workflow projects. It also contains the CrmPackage Project that is used to deploy all the previous components.
EmptyDeveloperToolkitProject

Once you created the projects, you will notice that all references to the CRM Sdk and Developer Toolkit Libraries are pointing to the local installation folder of the Developer Toolkit which will not be available on the Hosted Build Server.

DeveloperToolkitPluginDefaultReference

To get everything to build online, you will need to store all CRM Sdk libraries in source control and change all the references in your projects (Plugins, Workflows, XAML Workflows) to point to the relative path in your workspace.

SampleLibDeveloperToolkitPluginLocalReference

The next step is to fix the CrmPackage Project. Right click on the project and select Unload.

UnloadPackageProject

Then Right click and edit.

EditPackageProject

Locate the import statement below. This imports the developer toolkit targets from the installation directory.

  1. <ImportProject=$(MSBuildExtensionsPath32)\Microsoft\CRM\Microsoft.CrmDeveloperTools.12.targets />

Before you change that, you will need to copy the files from the installation directory below and store them in source control along with the CRM Sdk binaries.

DeveloperToolkitTargetsDirectory

Now change the import statement to the relative path in your source control workspace as below.

  1. <ImportProject=..\Lib\CrmSdk\Microsoft.CrmDeveloperTools.12.targets />

Now you can save and reload the package project.

ReloadPackageProject

At this stage you should be able to rebuild the package project successfully  and all the dependencies should be in your workspace together with your source code. Check-in all your changes into source control.

The next step is to create a Build Definition. For example you can create a build definition to compile your code and run your uni tests every time somebody check-in any code. This will ensure that the latest version of your code is always working.

More information on creating build definitions can be found http://msdn.microsoft.com/en-us/library/ms181716.aspx

In my next posts I will show you how to configure and modify your Build definitions to make them more useful. This will include things such as producing CRM Solutions.

About these ads

Posted on June 12, 2013, in CRM 2011, CRM Developer Toolkit, Dynamics CRM and tagged , , , , , , , , . Bookmark the permalink. 2 Comments.

  1. Piyush Paliwal

    Really informative article. Looking forward for the second edition wherein you’ll be discussing about the build process.

  2. Thanks for taking the time to create this article, it has been really helpful

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 44 other followers

%d bloggers like this: