Hello all,
I have recently started using CRM DeveloperToolKit for deploying my plugins.
It gives an option for deploying single plugins(in one assembly)
Below is a weird behavior that I am not able to understand:
Steps :
In the CRMDeveloperToolKit - deploy 2 plugins in the same assembly .
We change the content for both the plugins and only deploy one of them (with the single deploy option CRM Tools-> Deploy ).
Expected : Only one plugin should be updated and the previous plugin's functionality should remain as is.
Actual : Both the plugins get updated. We can verify this using the Plugin Trace log.
Is there any way we can update only 1 plugin in an assembly.
*This post is locked for comments
The 'Deploy' option for the plugins is really to deploy the message processing step(s) associated with the plugin you have selected.
So every time you deploy, it will always update the entire assembly (how could it not) but it will also deploy or update any message processing step for the selected plugins according to the configuration in the crmregister file.
I agree it is confusing, and I also think that they should provide an option which just deploys the assembly without having to select one or more plugins, as most of the time you only want to deploy a new version of the assembly without changing any message processing steps.
One plugin assembly can have multiple plugins.
Hence all plugins in assembly will be updated.
To avoid it you can comment your new code that you do not want to deploy.
Even though I understand that this is the expected functionality, what I don't understand is why is there a separate Deploy page for deploying single plugins. This seems very misleading as a developer.
As everyone else suggested, this is expected behavior.
Similar to deploying workflows from one instance to the other, results in the original workflow being replaced, even if no changes are made.
As long as the GUIDs (of the workflows/plugins) are same, it doesnt matter.
The registration tool does more of an Upsert action. Creates new plugins/plugin steps and updates the existing ones.
If my answer helps you, please mark as verified as this will help other users in the community to resolve the same or similar issues.
Hi
CRM will not keep different versions of DLLs, it will only use one version of the DLL and that's why all get updated. I don't think there is a way around this unless you separate your code into multiple DLLs.
When you deploy from Visual Studio using the developer toolkit, it will overwrite the DLL with a new version effectively updating all the steps.
If this is the expected behavior. I don't see a reason why they have an option for deploying a single plugin, (In the deploy solution page or by Crm Tools-> Deploy) when there is no way to deploy(Update) that plugin only.
Deploying the plugin for the first time(creating new single plugin) as far as I can see, works fine , the issue is when we try and update a single plugin.
Split your plugin into 2 different DLL. No other way.
Hello,
Since you only have one plugin assembly (dll), the changes you make there impacts all the plugins registered for that assembly. What you are seeing is expected behavior.
What you'd like to achieve could be done via different plugin assemblies (dll) and isolate the plugins one from each other.
Regards,
Radu
Stay up to date on forum activity by subscribing. You can also customize your in-app and email Notification settings across all subscriptions.
André Arnaud de Cal... 291,240 Super User 2024 Season 2
Martin Dráb 230,149 Most Valuable Professional
nmaenpaa 101,156