Free Analysis Tools for Dynamics 365 Solutions
From the Solution Checker to the XrmToolBox. An overview of the free tools, what each of them can do and how to combine them.
Analyzing Dataverse solutions does not necessarily cost money. There is a handful of free tools that, with a bit of time invested, carry you surprisingly far, provided you know which one is good for what. A tour of the most useful ones.
Solution Checker
Microsoft's built-in checker, directly in the maker interface. Static analysis of code and configuration against Microsoft's rule set, with severities and documentation links. Its conditions: it only runs on unmanaged solutions and only with access to the environment. For everything it covers, it is a given, and with the pipeline integration it becomes a permanent fixture. Keep in mind, though, that run times of up to 48 hours are to be expected. A late abort is also possible and may deliver only an unsatisfying amount of detail. A closer look at what it checks and where it stops is in what is the Microsoft Solution Checker.
Power Platform CLI
The command line tool pac is inconspicuous and a workhorse for analysis purposes: export solutions, unpack them into individual files, check them with pac solution check. Unpacking in particular is underrated. An unpacked solution is searchable, versionable and comparable, and many of the checks from this blog become a plain text search afterwards.
XrmToolBox
The community's Swiss army knife: a free desktop application with hundreds of plugins written by volunteers. For analysis purposes, a few stand out. The Metadata Browser for a quick look at tables and fields. FetchXML Builder for rebuilding and checking queries. Tools for comparing environments and for the layer analysis of individual components. Solution overviews that make component lists exportable.
The limitations lie in the nature of the thing: quality and maintenance vary from plugin to plugin, everything needs connection rights to the environment, and the responsibility for which plugin gets access rests with the user. For internal use with your own environments, this is established and proven. Caution: this tool needs access to your environment in a user context. Only use this software if you trust it.
The platform's own metadata view
Half forgotten, but there: the platform itself can show quite a lot. The dependency view per component, together with the solution layer analysis. For individual questions (along the lines of: why is my customization not in the production environment even though it is in the solution?) a direct look at this spot is often faster than any other tool. It makes a lot of sense to dig deeper into the concept of solution layering, because quite a few small pitfalls lurk here; the basics are covered in managed vs. unmanaged solutions.
And the gap in between
Named honestly: all of these tools answer individual questions or check code rules. What none of them delivers is the coherent report on the state of a solution, meaning documentation level, consistency, legacy and risks in one document. One that you can pass on, and the assessment of someone else's solution entirely without access to the environment. That is the gap in which paid tools like ours work. To sum it up: whoever only has an individual question now and then gets very far with the free toolbox. Whoever regularly takes over or assesses solutions, or wants to stay informed about the state of their own solution, will eventually tire of the manual work.
My advice, regardless of budget: set up pac for unpacking and make the Solution Checker part of the routine. These two cost nothing, run everywhere and raise the baseline quality immediately. Once a solution is unpacked, a search for dead components is a good first exercise.
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