Use External DLL's in MS CRM Online Plugin
Hi folks, In this blog i will demonstrate how to use External dll in CRM Online Plugin.
At first let me tell about storage options available in Microsoft Dynamics CRM (Online or On-Premise)
MS CRM Online: If you want to register plugin assembly in Dynamics CRM Online that is Sandbox mode(Partial Trust). You will have only one option available i.e "Database". You can't use other options available for storing assemblies.
Advantage: If you have Multiple Dynamics CRM environment then registering plugins in database is the best option as you can include it in solution and easily migrate from one instance to other.
Dis-Advantage: If you register plugins in Database you can't include external dll.
MS CRM On-Premise: If you are using Dynamics CRM on-premise instance then you will have other options to store assemblies like GAC or Disk.
GAC: If u register plugin in GAC, external dll can be included and also versioning is used, By using GAC Versioning we can avoid conflict of multiple assemblies.
Disk: You can use external dll. It will be stored in CRM Server bin folder. Debugging is easy if we use disk for storing plugins.
Now let us dig into the concept of merging dll's with an scenario.
Suppose you are using Dynamics CRM Online instance and you want to send data from CRM Online plugin to Third Party Web API, To achieve this you will be using some external dlls to serialize or deserialize the data.
For merging external dll, we can use "ILMerge".
ILMerge is used to merge multiple .Net assemblies into single assembly.
Step 1: Install ILMerge dll from the Nuget solution manager.
- Click Properties
- Set Copy Local to True.
- Finally Rebuild the solution.
By Default below assemblies will be set to true.
- Microsoft.Xrm.Sdk.dll
- Microsoft.Crm.Sdk.Proxy.dll
- Microsoft.IdentityModel.dll
Register the updated assembly. It will work as charm.
Hope it's Helpful. Happy Coding
No comments:
Post a Comment