Publishing CT REx to Microsoft Marketplace

Step 1 — Create the Offer in Partner Center

Read the full description on the Microsoft Learn.

In Partner Center, create a new offer:

  1. (Dynamics 365 & Power AppsPower Apps offering.)

  2. Microsoft Partner Center → Public OffersNew offerDynamics 365 apps on Dataverse and Power Apps.

  3. Fill in Offer ID and Offer alias and click Create.

  4. Click on the created offer and select the Offer setup tab:

    1. Disable Allow customers to install my app even if licenses are not assigned.

    2. Click the Technical configuration tab:

    3. Fill in the URL of your package location.

      You will have it after generating on Step 4 — Upload Package to Azure Storage.
  5. Click the Plan overview tab to define at least one Plan (pricing tier):

    1. To create a new plan:

      1. Click Create new plan.

      2. 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.

    2. Select the desired plan and click the Pricing and availability tab.

    3. Specify the plan properties:

      • Markets

      • User limits

      • Billing term

      • Free Trial

      • Plan visibility (specify the customer’s Tenant ID)

    4. Click Save draft.

  6. (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.

  1. Clone the solution Use Power Platform CLI to:

    • Authenticate

    • Download (clone) the unmanaged solution source locally

  2. 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.csv
        Service 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.csv
        Service 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_GoldApp

        These files determine, which solution components become available based on purchased plan.

  3. 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>
  4. 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.xml describing 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.
  1. Create an Azure Blob Storage container.

  2. Upload the .sid package.

  3. Generate a Shared Access Signature (SAS) URL.

  4. Paste the SAS URL into the Technical ConfigurationPackage 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.

Preview

  • Created automatically after passing certification.

  • Appears within up to 4 hours.

  • Internal team can test licensing, installation, and functionality.

Go Live

Publishing takes ~1 hour after clicking Publish.

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.

``