A few years back I wrote about beginning to work with the CRM Package Deployer out of the CRM SDK tools folder. Check out the article here. Back then, we were liking the flexibility of being able to deploy multiple solutions with sample data and not needing to write our own installer. We have continued to use that in all of our customer implementations since and it has worked well for us.
With the change to Microsoft Dynamics CRM and the recent rebranding to Dynamics 365, Microsoft has taken the approach of allowing apps by ISV’s, which are tested and approved by Microsoft Dev, be released to their app store. We have successfully navigated this new method and now have two apps published in the AppSource! Find them here. During the process, we were happy to see Microsoft standing behind their tools and they requested apps to be delivered in a CRM deployment package. Plus, we had already done most of the work for that. Win!
There were two items that we came across when getting our apps certified that may save others time when looking to certify their app.
We found that it was necessary to use the Dynamics 365 SDK version of the Package Deployer. The Dynamics CRM 2016 SDK would not connect to the online instances.
When placing your Solution files into the package, the files need to exist directly under the package folder instead of being placed in the content folder as recommended in the documentation. The package will build and run independently during your tests, but when sending to Microsoft for certification, their automated package tester will fail. We have mentioned this to the certification team. They are aware that this is happening and are looking to correct the issue. Until that is fixed, this is the only way to get past the certification process.
It is really great to see Microsoft leveraging their own tools and hope that it will continue to work on and improve the tool going forward. There is certainly plenty of room for improvement, but with the ability to add your own custom code, we can find our way around most of the current limitations. As new changes come about, I’ll try to pass those changes along in future articles. In the meantime, if you have any questions, let us know!