Publishing CT REx to Microsoft Marketplace
- Step 1 — Create the Offer in Partner Center
- Step 2 — Add Licensing Metadata to the Solution
- Step 3 — Build the Marketplace Package
- Step 4 — Upload Package to Azure Storage
- Step 5 — Certification, Preview, and Publishing
- Step 6 — Updating the Published Solution
- Step 7. Testing Guidance
- Step 8. Notes & Limitations
Step 1 — Create the Offer in Partner Center
| Read the full description on the Microsoft Learn. |
In Partner Center, create a new offer:
-
(Dynamics 365 & Power Apps → Power Apps offering.)
-
Microsoft Partner Center → Public Offers → New offer → Dynamics 365 apps on Dataverse and Power Apps.
-
Fill in Offer ID and Offer alias and click Create.
-
Click on the created offer and select the Offer setup tab:
-
Disable Allow customers to install my app even if licenses are not assigned.
-
Click the Technical configuration tab:
-
Fill in the URL of your package location.
You will have it after generating on Step 4 — Upload Package to Azure Storage.
-
-
Click the Plan overview tab to define at least one Plan (pricing tier):
-
To create a new plan:
-
Click Create new plan.
-
Specify Plan ID and Plan name.
-
Pricing is per user only.
-
For testing purposes, set the price $0.00, otherwise you will be charged even for a testing purchase.
-
Each plan receives a Plan ID, required later for licensing metadata.
-
-
-
Select the desired plan and click the Pricing and availability tab.
-
Specify the plan properties:
-
Markets
-
User limits
-
Billing term
-
Free Trial
-
Plan visibility (specify the customer’s Tenant ID)
-
-
Click Save draft.
-
-
(Optional) Click the Supplemental content tab to upload a PDF file containing description about how to use your solution.
Step 2 — Add Licensing Metadata to the Solution
| Read the full description on the Microsoft Learn. |
| You must do this step every time after making changing an existing plan or adding a new plan. |
A transactable offer requires license enforcement inside the solution package.
-
Clone the solution Use Power Platform CLI to:
-
Authenticate
-
Download (clone) the unmanaged solution source locally
-
-
Create licensing files (CSV)
Two CSV files must be created manually:
-
Plan Definition File:
-
Service ID (equal to the Plan ID)
-
Display Name (equal to the Plan name)
-
More info URL
Example:
plan-definition.csvService ID,Display name,More info URL test_isvconnect1599092224747.d365_isvconnect_prod_licensable.bronzeplan, Fabrikam Bronze Plan, http://www.microsoft.com test_isvconnect1599092224747.d365_isvconnect_prod_licensable.silverplan, Fabrikam Silver Plan, http://www.microsoft.com test_isvconnect1599092224747.d365_isvconnect_prod_licensable.goldplan, Fabrikam Gold Plan, http://www.microsoft.com
-
-
Plan Mapping File
-
Service ID (equal to the Plan ID)
-
Component name of model‑driven app (not display name)
Example:
plan-mapping.csvService ID,Component name test_test_isvsuccesstechdesk0071685682463430.k1-powerapps-dataverse.basic_plan, k1s_MDATest test_test_isvsuccesstechdesk0071685682463430.k1-powerapps-dataverse.basic_plan, k1s_BronzeApp test_test_isvsuccesstechdesk0071685682463430.k1-powerapps-dataverse.basic_plan, k1s_GoldAppThese files determine, which solution components become available based on purchased plan.
-
-
-
Insert metadata into solution using the Power Platform CLI:
pac solution add-license -pd <path to plan definition file> -pm <path to plan mapping file> -
Rebuild the managed solution:
msbuild /t:build /restore -p:Configuration=Release
Step 3 — Build the Marketplace Package
| Read the full description on the Microsoft Learn. |
Microsoft requires a marketplace deployment package (a SID file) containing:
-
Managed solution package file
-
[Content_Types].xml(auto-generated by Package Deployer) -
Product icon file
-
License Terms file in HTML format
-
Input.xmldescribing package assets
Construct the package according to Microsoft’s required folder structure and compress it into a .sid file.
Step 4 — Upload Package to Azure Storage
| Read the full description on the Microsoft Learn. |
-
Create an Azure Blob Storage container.
-
Upload the
.sidpackage. -
Generate a Shared Access Signature (SAS) URL.
-
Paste the SAS URL into the Technical Configuration → Package Location field in Partner Center (see Step 1 — Create the Offer in Partner Center).
Step 5 — Certification, Preview, and Publishing
Certification
Microsoft validates:
-
Deployment
-
Functionality (using your step-by-step scenario)
-
Security
-
Code sanity checks
It takes up to 3 business days. If failed, a report is provided with findings and guidance.
Step 6 — Updating the Published Solution
-
Any change (screenshots or package) requires republishing.
-
If solution components change, repeat the full packaging + metadata steps.
-
Customers receive a notification and can install the latest version without repurchasing.
Step 7. Testing Guidance
Provide Microsoft with:
-
A short step-by-step scenario covering key functionality
-
Test credentials if required (Microsoft does not test full solution depth—only main flows.)
Step 8. Notes & Limitations
-
Solution parts (Canvas + Model-driven + Dataverse) must be packaged together because the Canvas app depends on the data model.
-
No automated generator for marketplace packages exists; some XML/HTML must be created manually.
-
Marketplace only provides user feedback through ratings, not structured support channels.