Blog Archives

Upgrade from CRM 2013 to CRM 2015 : A Step by step guide

Top_bottom banner

Recently, we did an upgrade from Microsoft CRM 2013 to Microsoft CRM 2015 and thought it would be helpful for someone who is keen to do that soon.

Pre requisites:

  • .Net 4.5.2 needs to be installed
  • Reporting Extension should be removed
  • Microsoft CRM 2013 SP1 should be installed

Time taken:

It took 30 minutes for me to finish the upgrade and it depends on the server and availability of resources.

Lets start the upgrade;

  1. Download the Microsoft CRM 2015 installer from MSDN site.
  2. Double click on the installer

Windows Server 2012 - CRM0 Read the rest of this entry


Associate/Disassociate plugin messages in CRM 2011/2013

In CRM, the Associate or Disassociate event happens:

If you have a N:N relationship between two entities and when you try to associate or disassociate records either from Associated view or Sub grid.

In Plugins, the Associate & Disassociate messages behave little different than other messages.

When you register a plugin on Associate message, you have to leave “Primary and Secondary” entities as ‘none’.

Since we don’t provide entity names, the registered Plug-in step triggers on all “Associate” operations, so we have to check few conditions to let the “Association” trigger happen only between intended entities.
You can use the below code template for Associate or Disassociate plugins

EntityReference targetEntity = null;

string relationshipName = string.Empty;

EntityReferenceCollection relatedEntities = null;

EntityReference relatedEntity = null;

if (context.MessageName == “Associate”) {

// Get the “Relationship” Key from context

if (context.InputParameters.Contains(“Relationship”)) {

relationshipName = context.InputParameters[“Relationship”].ToString();


// Check the “Relationship Name” with your intended one

if (relationshipName != “{YOUR RELATION NAME}”) {



// Get Entity 1 reference from “Target” Key from context

if (context.InputParameters.Contains(“Target”) && context.InputParameters[“Target”] is EntityReference) {

targetEntity = (EntityReference)context.InputParameters[“Target”];


// Get Entity 2 reference from ” RelatedEntities” Key from context

if (context.InputParameters.Contains(“RelatedEntities”) && context.InputParameters[“RelatedEntities”] is EntityReferenceCollection) {

relatedEntities = context.InputParameters[“RelatedEntities”] as EntityReferenceCollection;

relatedEntity = relatedEntities[0];