This is a common issue everyone would have faced once in a while that the customizations were not getting applied on the target instance through solution deployment. This is due to the direct changes on the component which is part of managed solution.
A component which is managed, gets an unmanaged layer as soon as you edit it directly on the instance. This unmanaged (active) layer lays on top of all other layers, which are coming from the different solutions containing this component. The layer on top is always winning, hence you can’t see the new changes coming from new deployments.
To avoid this issue, Microsoft introduced a new feature called “Solution Layers” where you can see all solutions where this component is part of it. You can see one “Active” solution on top of all solutions if you would have changed something directly on the instance. So, to get rid of the unmanaged customizations on managed component, you have to follow the below steps.
- Select the component and Click on “Solution Layers” button (some times you can see this option under “More Actions” drop down menu).
2. On click of this button, it will show the list of all solutions which included selected component, as shown in the below screenshot.
3. Select the 3 dots (…) of “Active” solution row, select “Remove Active Custmoziations” option and confirm.
4. That’s all you have to do to remove all unmanaged customizations, after that the changes will be affected which are coming from new deployments.
I faced this situation so many times, the changes I have done for ex. in web resources in dev instance couldn’t transfer to UAT/Prod instance due to the “Active” solution layer. So with this new feature, you could remove this unwanted solution layer with a single button click.
Note: Microsoft not yet rolled out this feature for some components like Views and Fields. (Thanks Viswanath for highlighting this in your comment)
Hope it is helpful….