ILMerge

CRM plugin hard won learnings
If you need to use ILMerge, you must use an unencrypted strong name key for your assembly If you change the strong name key for your assembly, CRM thinks it’s a whole new assembly, so it might pay to create new ones explicitly If you are now including the generated CRM early-bound classes through ILMerge instead of as a source include, remember to add [assembly: Microsoft.Xrm.Sdk.Client.ProxyTypesAssemblyAttribute()] to all deployed assemblies #