DevOps for Dynamics/PowerApps – Q & A
In the last several weeks, I wrote a few blog posts on the devops topic. However, I also meant to conclude those series with a dedicated Q & A post, so here it goes…
1. Why did I use PowerApps build tools?
Quite frankly, it was, mostly, out of curiosity. There are other community tools available out there, but I was curious to see how “native” tools will measure up. Turned out they can be very useful; however, they are missing a bunch of parameters for solution import and/or for the solution packages:
- we can’t “stage for upgrade” our managed solutions while importing
- we also can’t choose a mapping file for the solutionpackager
2. What are the caveats of XML merge?
This is a painful topic. We can probably go on and on about how merging XML files might be confusing and challenging – the only way to mitigate this would be to merge often, but even that is not, always, possible.
However, that issue aside, there is one very specific problem which you might encounter.
Imagine that you have a dev branch where you’ve been doing some work on the solution, and you need to merge the changes that occurred on the master branch into your dev branch. Imagine that, as part of those changes, one or more of the solution components have been removed. For example, another developer might have deleted a workflow that’s no longer required.
In this scenario, you will need to also delete the files which are no longer needed from the branch you’ll be merging into. So you might try to use the following git command to ensure that, when merging, git would prioritize the “master”:
git merge –squash -X theirs master
The problem with “theirs” is that git might not delete any of the files you have in your local branch. And, still, it would merge the XML, so that XML wouldn’t be referencing workflow file anymore, but the file itself would still be sitting there in the solution folders.
So, when you try to re-package your solution with the solutionpackager, that operation will fail.
If this happens, you may need to actually delete the file/folder, and, then, checkout that folder from the master branch into your local branch:
git rm –r <folder>
git checkout master –<folder>
For more details on this issue, have a look at the discussion below, for example: https://stackoverflow.com/questions/25254037/git-merge-strategy-theirs-is-not-resolving-modify-delete-conflict
3. How do we store passwords for EasyRepro?
EasyRepro is not supposed to work with the connection strings – it’s a UI testing framework, so it needs to know the user name and password in order to “type them into” the login dialog. Which means those parameters may have to be stored somewhere as regular text. It’s not the end of the world, but you may want to limit test user account permissions in your environment since that password won’t be too secure anymore.
4. What about the unit tests for various plugins etc?
I have not used them in my demo project. If you want to explore the options, Fake Xrm Easy might be a good place to start.
5. What about the “configuration data”?
Again, this is something I did not do in the demo project; however, things are starting to get interesting in this area. It used to be that utilizing the Configuration Migration tool would be a semi-manual process. However, there is a powershell module now:
https://www.powershellgallery.com/packages/Microsoft.Xrm.Tooling.ConfigurationMigration/1.0.0.12
Eventually, this is going to be a “go to” option.
For the time being, since it’s only the first release (and I still have to try it…. maybe it’s what I’ll do next), you may still find other options useful. For example, I’ve been using the approach described here on one of the client projects.
This was originally posted here.

Like
Report
*This post is locked for comments