Managed vs. Unmanaged Solutions in Dynamics 365
The difference between managed and unmanaged solutions decides what you can still change later. What really matters in practice.
Anyone importing a solution into Dynamics 365 for the first time will sooner or later stumble over this decision: managed or unmanaged. At first the answer looks like a formality. It is not, because it determines how much freedom of movement you want to have in the target environment and how much effort it takes to roll customizations back.
The difference in one sentence
An unmanaged solution is a working copy. Everything in it can still be edited, and when the solution is deleted, the components stay behind in the environment. A managed solution is a sealed package. Its components are protected against direct changes, and when it is uninstalled they disappear together with the data stored in them.
It is exactly this second property that surprises many people. Uninstalling a managed solution also removes the tables it brought along. And with the tables, the records in them.
Where this hurts in practice
In the development environment you almost always work in unmanaged solutions. That is right, because there you need to rename fields, rebuild forms and throw things away again.
The mistake happens one step later. If the same unmanaged solution is also imported into test and production, a second editable state is created there. From that moment on, customizations can be made directly in production without ever reaching development. After a few months nobody knows for sure which environment holds the true state.
What follows for everyday work
The common recommendation is: work unmanaged in development, deliver to test and production exclusively as managed. That keeps the development environment the single source of truth, and nobody can tinker with forms in production unnoticed.
This rule has a price. You need a working way to move changes through the environments, and you have to accept that quick fixes directly in production are no longer possible. Anyone unwilling to pay that price should at least make the decision consciously instead of skipping it.
How to tell what you are dealing with
In the solution export, the information is in the manifest as the field Managed. If it says 0, the solution is unmanaged. In the Power Apps interface you can see it in the column of the solutions overview.
It gets trickier when an environment has grown over years. Then several layers are often stacked on top of each other: a managed base, customizations from a second managed solution above it, and at the very top unmanaged changes that someone made directly. Which layer wins in the end follows fixed rules, but it is hard to see through without tooling. Free tools for exactly this layer analysis are covered in the overview of free analysis tools.
Before importing into production
Before a solution moves into a production environment, three things should be checked. Each of them can make imports fail or cause confusion afterwards.
- Dependencies: Which other managed solutions must already exist in the target environment? If one of them is missing, the import aborts, and only after several minutes of waiting.
- Environment-specific values: Does the solution contain environment variables with a value shipped along? These values travel with the import and like to overwrite a correct configuration in the target environment with the one from development.
- Unmanaged leftovers: Are there already unmanaged customizations to the same components in the target environment? They take precedence over everything you deliver as managed and lead to the classic sentence "but it looks different on my screen".
If you want to go deeper, the unmanaged variant with its peculiarities has its own article on unmanaged solutions. The publisher and prefix you choose when creating a solution are just as permanent as this decision; more on that in choosing publisher and prefix.
In short
Unmanaged means editable and therefore right for development. Managed means protected and therefore right for everything after that. Whoever mixes the two does not lose anything immediately, but gradually loses track of where the real state lives.
Laden Sie Ihren Solution-Export hoch und erhalten Sie in Minuten eine Auswertung: Sicherheitsrisiken, technische Schulden, Dokumentationsgrad und Migrationsrisiko. Kein Zugriff auf Ihre Umgebung nötig, erste Kennzahlen kostenlos.
Lösung analysieren