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!
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Cookie settingsACCEPT
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.