How to Deploy Changes Using Solution Layers in Power Platform
You must deploy changes in Power Platform and Dynamics 365 carefully. Understanding solution layering helps you keep everything safe and organized.
Environments act like walls, allowing you to separate development, testing, and production.
Solutions contain your customizations, such as apps and flows, making them easier to manage.
When you deploy changes using managed solutions, you gain greater control and reduce errors.
This approach ensures you achieve the expected results and your deployment goes smoothly.
Key Takeaways
Use managed solutions to protect your changes and control updates in test and production.
Always make and track changes in unmanaged solutions during development. This helps keep layers neat and simple to manage.
Check solution layers often to find and remove unmanaged layers. These layers can block updates and cause problems.
Set up different environments for development, testing, and production. This keeps your work clean and helps you avoid mistakes.
Use tools like Solution Explorer and XrmToolBox to watch and manage solution layers. This helps make deployments go smoothly.
Power Platform Solution Layers
Solution Layering Basics
When you build or change apps, you use solution layers. Each layer is like a block in a stack. The base solution layer has the main setup, like Dataverse tables and standard apps. This layer does not change much and gives you a strong base. Extension layers add new features or business rules. Customization layers let teams change forms, views, or workflows for their needs. Patch layers help you fix small problems fast without changing everything. Managed solutions are the top layer in most places outside development. These layers keep your changes neat and simple to handle.
Tip: Using good solution layering helps keep business rules, calculations, and plugins the same in all environments.
Managed vs. Unmanaged Layers
It is important to know about managed and unmanaged layers. Unmanaged solutions let you edit, add, or delete parts anytime. You use these in development to try new things or make quick changes. Managed solutions lock parts after you bring them into test or production. This keeps your work safe and the environment steady. The table below shows the main differences:
Impact on Deployments
Solution layers matter every time you deploy. If you put unmanaged solutions in production, unmanaged layers can sit on top of managed ones. This can hide your managed changes and make things confusing. Making changes right in production creates unmanaged layers that are hard to follow. If you have customizations in many layers, you can get conflicts and surprises. You can stop these problems by always using managed solutions in higher environments. Test your solution layering in a test environment before using it in production. Check for unmanaged layers often and remove them to keep your deployment clean and easy to understand.
Deploy Changes
Prepare Environments
To use solution layers, you need to set up environments first. Each environment is a different space for work. You use one for development, one for testing, and one for production. Here are the steps to get ready:
Plan your environments and set them up. Decide if you want Dataverse when you make each one.
In development, make an unmanaged solution. This holds all your parts.
Set up environment variables. These help you change things like data connections.
Build your Power Platform parts, like apps and flows, in the unmanaged solution. Add every change you need.
Test your solution in a safe place. When you finish, export it as a managed solution. This is called converting to managed.
Bring the managed solution into production. You can also use Azure DevOps pipelines to do this automatically.
Tip: Use a special admin account for things that need an owner. This helps if someone leaves your company.
Make and Track Changes
Always make changes in the unmanaged solution in development. This keeps your layers neat. Write down every change you make. Use tools like Git to keep track of updates. Give flows and other parts to a service account. This stops problems if someone’s account is turned off.
Never change things right in production. If you have to, write down what you did. Do the same changes in development later. Remove extra unmanaged layers after you update your managed solution. Use Solution Explorer in Maker portal to see all layers for each part. This tool shows which layer made each change.
Note: Use managed solutions to keep control. Managed solutions lock your work and stop unwanted changes.
Check Solution Layers
Before you move a solution to a higher environment, check the layers for each part. Solution layers show the order of changes and which solution made them. In Maker portal, pick a part and click "See solution layers." You will see all layers, including unmanaged and managed ones.
Tools like XrmToolBox help you look closer. Use plugins like Solution Layer Explorer or Solution Layer Removal to see and manage layers. These tools help you find unmanaged layers that might block updates.
Checking layers before you move changes helps you avoid problems and keeps your spaces healthy.
Remove Unmanaged Layers
Unmanaged layers can stop updates from managed solutions. You need to remove them so your deployment works right. Here is how to delete unmanaged layers:
In Maker portal, go to Solutions and open the one with the part you want to fix.
Find the part, click the three dots, and pick Advanced > See solution layers.
Look for layers called "Unmanaged layer."
Pick the unmanaged layer and click "Remove active customizations."
Do this for each unmanaged layer you want to delete.
You can also use XrmToolBox plugins like Solution Layer Removal or Command checker. These tools help you find and remove unwanted unmanaged layers fast.
Caution: Only remove unmanaged layers if you do not need those changes. Removing them will delete the changes in that layer.
Taking out unmanaged layers before you bring in a managed solution makes deployment better. It makes sure all parts get the newest updates and fixes. This step keeps your layers clean and stops update problems.
Remember: Always convert to managed before you bring a solution into production. Using a managed solution keeps your spaces steady and helps with version control.
Best Practices
Move to Managed Solutions
You should use managed solutions when you move changes up. This means using them in test or production environments. Managed solutions help you control changes and keep things steady. When you make parts managed, you stop unwanted edits. This keeps your work safe. Managed solutions also make it easier to give flows and apps to others. You can organize better and use parts in different places. If you use managed solutions, you make your deployments stronger. Managed solutions help your system grow and keep things the same.
Tip: Use one publisher for every solution. This makes your solution layers clear and stops confusion.
Regular Audits
You need to check your solution layers often. Regular checks help you find problems before they hurt production. The table below shows how often each role should check solution layers:
Change your audit schedule as your system gets bigger. This keeps your solution layers healthy and current.
Block Unmanaged Customizations
You can stop unmanaged customizations in production to block unwanted changes. Go to Power Platform Admin Center and pick your environment. Turn on "Block unmanaged customizations." This stops users from importing unmanaged solutions or making direct changes. Blocking unmanaged customizations keeps your managed solutions safe. It also stops deployment problems. Many teams have avoided big issues by using this setting. It helps keep your production environment steady and safe.
Note: This feature does not work in the default environment.
Handle Conflicts
Conflicts happen when solution layers try to change the same part. Power Platform uses a "top wins" rule. The top layer decides what you see and use. Managed solutions are above unmanaged ones. The last managed solution you import controls what happens. You can use Solution Explorer to compare layers and see changes. If you design solutions to avoid cross-solution links, you get fewer conflicts. Always plan your solution layers and use upgrades or patches to join changes. This keeps your system working right.
You can make deployments easy if you follow simple steps. First, set up your environments. Always use managed solutions in production. Check your solution layers often to keep things the same and stop mistakes.
Automated pipelines let you make changes the same way each time. This helps you avoid errors.
Making small updates often lets you get feedback fast. You can fix things quickly.
Gated deployments add safety because someone must approve changes before they go live.
Monitoring tools help you see problems early and fix them fast.
Check your layers a lot to stay ahead of problems. Doing this keeps your deployments strong and your environments safe.
FAQ
What is a solution layer in Power Platform?
A solution layer is like a stack of changes. Each layer shows what you changed and when. You can see which solution made each change.
Why should you use managed solutions in production?
Managed solutions keep your changes safe. You cannot edit them by mistake. This helps you control updates and avoid problems in production.
How do you check for unmanaged layers?
Go to the Maker portal. Pick a part, then click "See solution layers." You will see all layers, including unmanaged ones.
What happens if you do not remove unmanaged layers?
Unmanaged layers can block updates from managed solutions. You might not see new changes. Removing them keeps your system working right.
Can you use tools to help manage solution layers?
Yes. Tools like XrmToolBox help you find and remove unwanted layers. These tools make it easier to keep your solution layers clean.