In this blog, I wanted to discuss about one of the topics that many people tend to ignore- CRM Solution Publishers.
When creating solutions, most people tend to use the default publisher for the solution. The only thing most people understand about publisher is that it allows us to set the prefix and optionset limits.
This is fine if we are only dealing with Unmanaged solutions.
With every single day, the importance of managed solutions are increasing especially after Microsoft announced Appsource for vendors to publish their Apps. And Microsoft wants all the vendors to publish apps so that the load of development on core CRM platform is low.
Developers and even experts have struggled a little understanding and maintaining managed solutions.
Lets understand what are solutions:
Solutions in Microsoft Dynamics CRM is a method to let you group and manage your custom components for a particular set of functionality or release.
If you delete an unmanaged solution, you just delete the group used to contain references to solution components. The solution components in an unmanaged solution remain in the system but they are no longer associated with the unmanaged solution you deleted.
What are Managed solutions:
Managed solutions on the other hand can be edited and only removed by uninstalling/removing the solution, all the components and all the data. It’s all gone permanently, even if you then re-imported the managed solution all the data would be gone
One of the key aspects of Managed solution is Publisher.
Publishers in Managed solution:
When you intend to distribute managed solutions, the solution publisher record associated with your managed solution is created in each organization that installs your solution. Use the solution publisher to provide information about how people who install your solution can contact you.
The solution publisher for a managed solution is also important if you want to release an update to your managed solution. If you use the same solution publisher you can create a new managed solution with the ability to update a managed solution you previously released.
Publishers in Managed-Sister Solutions:
If you have a second managed solution or App, independent of your first one but there are some components that are being re-used across both the solutions.
In this case, you want to leverage the entities from your original one, you can do it as long as both the solutions have the same Publisher.
Lets say both the managed solutions have a common configuration entity, so you can re-use the entity instead of creating a new configuration entity if you are using same publisher for the solution.
This is also true for updates of your managed solution.
So, it is recommended that you always take care of the publisher when you are dealing with Managed solutions
Important Links for Better understanding:
PS: The definitions provided above are referenced from MSDN site