
By day three of ACDC, craftsmanship is no longer about proving that something works, but about proving that it works the right way. For our Minecraft Production Order module, our deployment zip file shows most clearly in how the solution is deployed to Dynamics 365 Finance & Operations.
In Finance & Operations, the Application Object Server is the source of truth. If a module is not present under AosService\PackagesLocalDirectory, it simply does not exist from the platform’s perspective. Because of this, our deployment approach follows the same principles Microsoft uses internally: the module is delivered as a ZIP and installed directly into the PackagesLocalDirectory as its own folder.
The PowerShell installer script is intentionally simple but deliberate. It runs relative to its own location, automatically detects where Finance & Operations is installed, and extracts the module into a folder named exactly after the ZIP file. This removes environment-specific assumptions, avoids hard-coded paths, and ensures the module identity is always consistent.
Just as important, the script is safe by default. It will not overwrite an existing module unless this is explicitly requested with -Force. This reflects production thinking: destructive actions should be intentional, not accidental.
Its deployable, repeatable, and trustworthy. It behaves like a native Finance & Operations module, can be installed the same way across environments, and is ready for real DevOps scenarios.
When it comes to deploying to the raspberry Pi:
We treat it exactly like any other production environment by using Azure DevOps pipelines instead of manual SSH or copy-paste workflows. The pipeline validates the Docker configuration, connects to the Raspberry Pi as a self-hosted agent, stops any running containers, deploys the updated files, and then rebuilds and starts the containers in a controlled sequence.

Posted on saturday 😉