Using PowerApps Checker PowerShell Module we can perform the solution check functionality from outside the PowerApps Maker Portal. This can be useful for automated build and release pipelines. Apart from that some of the notable capabilities of the module include
- Support for both managed and unmanaged solution.
- Support for On-Premise.
- Support for more than one solution at a time.
To get started à
Open the PowerShell (as administrator) and install the module
- install-module Microsoft.PowerApps.Checker.Powershell
Next, we need to register an Azure Active Directory application in a tenant with PowerApps or Dynamics 365 licensing, even if it is on-premise environment (solution) against which we want to run it.
- Login to Azure Portal
- Click on New registration to register a new application
- Provide the below details
Type: Public client (mobile & desktop)
Redirect URI: urn:ietf:wg:oauth:2.0:oob
Copy the values of Application id and Directory (tenant) Id which we will use later and click on View API Permission to give the required permission to the app.
Click on Add a permission (we’d see Sign and read user profile added by default)
API level permissions to the PowerApps-Advisor first party Microsoft AAD application
Application permissions to Analysis.All
PowerApps solution checker uses Solution checker rule set. Here we are getting all the rulesets available passing our tenant’s id.
- $rulesets = Get-PowerAppsCheckerRulesets -TenantId ‘290055c6-7eb1-4ec4-93e6-81f053d13f76’
We wil be using Solution Checker rule set here.
- $rulesetToUse = $rulesets | where Name -EQ ‘Solution Checker’
Now let us run it against the Solution Zip file as shown below
- $analyzeResult = Invoke-PowerAppsChecker –ClientApplicationId ‘48131848-3b81-44f7-a999-d8362b391f25’ –TenantId ‘290055c6-7eb1-4ec4-93e6-81f053d13f76’ –Ruleset $rulesetToUse –FileUnderAnalysis “C:\PowerApps\Test_1_0_0_1_managed.zip” –Output “C:\PowerApps\Result” -Verbose
Give the required consent
We can see the results download at the path specified
Result is in JSON format
IssueSummary to get the quick overview
Get all the details here
Hope it helps..