Skip to content
Rishan Solutions
Rishan Solutions
  • PowerApps
  • SharePoint online
    • Uncategorized
    • Uncategorized
  • PowerAutomate
Rishan Solutions
Latest Posts
  • Agentic AI: The Dawn of Autonomous Intelligence Revolutionizing 2025 June 24, 2025
  • Recursive Queries in T-SQL May 7, 2025
  • Generating Test Data with CROSS JOIN May 7, 2025
  • Working with Hierarchical Data May 7, 2025
  • Using TRY_CAST vs CAST May 7, 2025
  • Dynamic SQL Execution with sp_executesql May 7, 2025

Custom Control Manifest Files

Posted on April 30, 2025April 30, 2025 by Rishan Solutions

Loading

When building custom controls for Power Apps using the PowerApps Component Framework (PCF), developers must understand the structure and function of Custom Control Manifest Files. These manifest files are an essential part of the development process, as they define how a custom control behaves, how it interacts with the Power Platform, and what resources it requires to operate correctly. Without these manifest files, custom controls would be unable to function as expected within Power Apps.

In this article, we will explore what Custom Control Manifest Files are, their structure, and how to effectively use them when developing custom controls for Power Apps. We will also discuss best practices, common issues developers face when working with these files, and provide examples of how to create and manage them.


1. What is a Custom Control Manifest File?

A. Definition and Role of the Manifest File

A Custom Control Manifest File is an XML file used in the Power Apps Component Framework (PCF) to define essential metadata and configuration for custom controls. This file tells Power Apps how the control should be rendered, the properties it exposes, its events, and other settings required to operate seamlessly within a Power App.

The manifest serves as a configuration blueprint for the custom control, enabling it to be correctly instantiated, rendered, and interacted with inside a Power Apps application. In essence, the manifest file outlines how the custom control integrates with Power Apps and the associated data model.

The manifest file itself is included as part of the PCF project, and it is typically located in the root directory of the project. It carries key information, such as the control’s name, version, the type of data it supports, and the resources needed to load and render the control.

B. Key Functions of the Manifest File

  1. Defining Control Metadata: The manifest contains key metadata such as the name of the control, version, and the type of control (e.g., standard, read-only, editable, etc.).
  2. Specifying Properties: It defines the input and output properties of the control. These properties allow the control to interact with its environment, such as data binding with entities or fields in a model-driven app.
  3. Defining Events: Custom controls can emit events based on user interactions or system triggers. These events are also specified in the manifest file.
  4. Defining Resources: The manifest defines the JavaScript files, CSS files, images, or other resources that are necessary for the control to function properly.
  5. UI Behavior and Rendering: The manifest helps specify how the control should be rendered within the Power Apps interface, enabling customization of the UI.

2. Structure of the Custom Control Manifest File

A typical Custom Control Manifest File is written in XML format. Here is a breakdown of the core components of the manifest file.

A. Root Element

The root element of the manifest file is <control>, which encloses all the control-specific metadata and properties.

<control namespace="custom" constructor="CustomControl" version="1.0.0">
    ...
</control>
  • namespace: The namespace is a unique identifier for the control (typically, this is the name of the developer or organization).
  • constructor: The constructor attribute points to the JavaScript function used to initialize the control.
  • version: The version number of the control, used to track different versions of the control during development and deployment.

B. Control Properties

The <properties> element defines the input and output properties for the control. These properties allow interaction between the control and the Power Apps platform.

<properties>
    <property name="label" type="String" usage="input" />
    <property name="value" type="Decimal" usage="output" />
</properties>
  • name: The name of the property.
  • type: The data type of the property (e.g., String, Decimal, DateTime).
  • usage: Specifies whether the property is an input or output property.

C. Control Events

The <events> element in the manifest defines the events that the control can emit. These events may be triggered by user actions or other conditions.

<events>
    <event name="onChange" />
    <event name="onClick" />
</events>
  • name: The name of the event (such as onChange or onClick), which will be used in the control’s code to trigger specific actions.

D. Control Resources

The resources required by the control, such as JavaScript and CSS files, are specified in the <resources> element. This ensures the control is loaded correctly when the app is rendered.

<resources>
    <js src="customControl.js" />
    <css src="customStyle.css" />
</resources>
  • js src: Specifies the path to the JavaScript file that contains the logic for the control.
  • css src: Specifies the path to the CSS file that defines the styling for the control.

E. Data and Binding Information

In the <data> element, the manifest specifies how the custom control interacts with the Power Apps data model. This section defines the types of data the control can bind to (such as Dataverse entities) and the attributes of those entities.

<data>
    <dataSet name="entityData" type="Entity" />
</data>
  • dataSet: Specifies the data set the control will interact with.
  • name: The name of the dataset.
  • type: The type of data the control will use (e.g., Entity or Field).

3. Creating and Customizing the Manifest File

A. Creating a Basic Manifest File

Let’s take a look at a simple example of a manifest file for a custom control that allows the user to input and submit their name:

<control namespace="myCompany" constructor="NameInputControl" version="1.0.0">
    <properties>
        <property name="label" type="String" usage="input" />
        <property name="userName" type="String" usage="output" />
    </properties>
    <events>
        <event name="onSubmit" />
    </events>
    <resources>
        <js src="nameInput.js" />
        <css src="nameInput.css" />
    </resources>
</control>

In this simple control:

  • label is an input property that allows the user to set a label for the input field.
  • userName is an output property, representing the user input.
  • onSubmit is an event that is triggered when the user submits their name.
  • The required JavaScript and CSS resources are included.

B. Adding Custom Logic and Resources

Once the basic manifest file is created, developers can modify it to incorporate custom logic and resources, such as handling user input or customizing the control’s appearance. This could involve linking to external libraries, adding additional input fields, or using the Power Apps API to interact with the platform’s data layer.

For example, you might add functionality for interacting with the Power Platform’s Dataverse data model:

<data>
    <dataSet name="userRecords" type="Entity" />
</data>

This addition would tell Power Apps that the custom control is interacting with the userRecords entity and expects to work with data of type Entity.


4. Deploying the Custom Control

After developing the custom control and manifest file, the next step is to deploy the control. The deployment process for custom controls typically involves:

  1. Packing the Control: The custom control and manifest file must be packaged together into a .pcf file. This file includes the control’s resources, JavaScript, and other necessary assets.
  2. Uploading to Power Apps: Once the control is packaged, it is uploaded to the Power Platform and registered with the environment. This allows users to add it to their apps.
  3. Testing and Validation: After deployment, it’s crucial to test the control thoroughly to ensure it behaves as expected in all scenarios, including proper rendering, handling of properties, and events.

5. Best Practices for Working with Custom Control Manifest Files

A. Use Descriptive Names and Versions

For easy maintenance and versioning, always use descriptive names and consistent versioning practices. This allows other developers to quickly understand the functionality of your custom control and track changes over time.

B. Follow Naming Conventions

To ensure that your manifest file and custom control adhere to naming conventions, it’s a good practice to keep control names clear and meaningful. This also helps when you need to manage multiple controls across different apps and environments.

C. Test Offline Scenarios

Ensure that your custom controls work in offline environments if they are intended to be used in mobile apps. Testing your control’s offline functionality can prevent user frustration and improve overall performance.

D. Maintain Resources and Dependencies

Keep track of all resources and external dependencies (such as libraries or CSS files) in the manifest file. It is important to manage these resources efficiently to ensure that the control performs optimally.


6. Common Issues and Troubleshooting

A. Missing Resources

If the control fails to load or render correctly, it could be due to missing or incorrectly specified resources in the manifest file. Double-check the paths to JavaScript and CSS files to ensure they are correct.

B. Property Type Mismatches

If a control does not work as expected, it could be due to mismatched property types. Ensure that input and output properties in the manifest match the expected data types in the control code.

C. Event Handling Issues

If events are not firing as expected, make

sure the event names in the manifest match the names used in the JavaScript code. Additionally, ensure the control logic is correctly handling the event bindings.


Posted Under Dynamics365App Development App Resources Control Deployment Control Events Control Metadata Control Versioning CSS Resources Custom Control Development Custom Control Manifest Files Custom Controls Data Binding data models Dataverse Entity Integration event handling Input Properties JavaScript integration Manifest File Structure Mobile Apps Offline Scenarios Output Properties PCF Power Apps Power Apps Best Practices Power Apps Customization Power Apps testing Power platform PowerApps Component Framework Troubleshooting PCF. User Interface XML

Post navigation

Offline PCF Controls
Tab Visibility Based on Conditions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Agentic AI: The Dawn of Autonomous Intelligence Revolutionizing 2025
  • Recursive Queries in T-SQL
  • Generating Test Data with CROSS JOIN
  • Working with Hierarchical Data
  • Using TRY_CAST vs CAST

Recent Comments

  1. Michael Francis on Search , Filter and Lookup in power apps
  2. A WordPress Commenter on Hello world!

Archives

  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • March 2024
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • June 2023
  • May 2023
  • April 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • January 2022

Categories

  • Active Directory
  • AI
  • AngularJS
  • Blockchain
  • Button
  • Buttons
  • Choice Column
  • Cloud
  • Cloud Computing
  • Data Science
  • Distribution List
  • DotNet
  • Dynamics365
  • Excel Desktop
  • Extended Reality (XR) – AR, VR, MR
  • Gallery
  • Icons
  • IoT
  • Java
  • Java Script
  • jQuery
  • Microsoft Teams
  • ML
  • MS Excel
  • MS Office 365
  • MS Word
  • Office 365
  • Outlook
  • PDF File
  • PNP PowerShell
  • Power BI
  • Power Pages
  • Power Platform
  • Power Virtual Agent
  • PowerApps
  • PowerAutomate
  • PowerPoint Desktop
  • PVA
  • Python
  • Quantum Computing
  • Radio button
  • ReactJS
  • Security Groups
  • SharePoint Document library
  • SharePoint online
  • SharePoint onpremise
  • SQL
  • SQL Server
  • Template
  • Uncategorized
  • Variable
  • Visio
  • Visual Studio code
  • Windows
© Rishan Solutions 2025 | Designed by PixaHive.com.
  • Rishan Solutions