An XrmToolBox plugin that simplifies Power Apps Component Framework (PCF) custom control development by providing a visual interface for building and deploying PCF controls without writing CLI commands.
PCF Custom Control Builder streamlines the entire lifecycle of PCF control development, from initialization to deployment. The tool automates command execution, manages project structure, and provides an intuitive UI for configuring control properties, resources, and deployment options.
- Visual Control Creation: Create new PCF controls with a user-friendly interface
- Template Support: Choose between Field (single field) and Dataset (grid) templates
- Framework Integration: Support for Fluent UI and other modern UI frameworks
- PCF Features API: Built-in support for device capabilities:
- Capture Audio, Video, and Images
- Barcode scanning
- Geolocation
- File picking
- Utility functions
- Web API integration
- Resource Management:
- Preview image configuration
- CSS file management
- RESX localization support
- Solution Management: Create and manage D365 CE solution packages
- Authentication Profiles: Manage multiple environment connections
- Incremental Versioning: Automatic component version management
- Build & Test: Integrated build and test project capabilities
- Direct Deployment: Deploy controls directly to D365 CE/Dataverse environments
- Node.js & npm: Install from nodejs.org (LTS version recommended)
- Visual Studio: Any recent version with C# development tools
- Power Apps CLI: Download from aka.ms/PowerAppsCLI
- XrmToolBox: Download from xrmtoolbox.com
- Open XrmToolBox
- Click on "Tool Library" (or press F1)
- Search for "PCF Custom Control Builder" or "Maverick.PCF.Builder"
- Click Install
- Restart XrmToolBox if required
Alternatively, install via NuGet Package Manager in XrmToolBox.
The tool will automatically detect:
- npm (Node Package Manager) installation
- MSBuild path from Visual Studio
- Power Apps CLI installation
- If Power Apps CLI is not detected, use the Help menu to download and install it
Configure Settings:
- Open the tool and go to Settings
- Review the path identified for MSBuild
- Set your default namespace (optional)
- Set your default publisher name and prefix (optional)
- Enter custom PowerShell execution policy command e.g. Bypass -Scope Process (optional)
- Click "New PCF Control" button
- Fill in the control details:
- Namespace: Your organization/project namespace
- Control Name: Technical name for the control
- Display Name: User-friendly name
- Description: Brief description of control functionality
- Control Type: Choose
standard
orvirtual
- Template: Select
Field
orDataset
- Additional Packages: Optionally add Fluent UI or other libraries
- Version: Component version (read-only, automatically managed)
- Click "Run 'pac' command" to initialize the project
- Use "Build project" to compile your control
- Use "Test project" to launch the test harness
- Use "Create Solution Package" when ready to deploy
- Configure Solution Details:
- Solution Name: Unique solution name
- Publisher Information: Prefix, name, and friendly name
- Solution Version: Initial version number (read-only, automatically managed)
- Configure Solution Details:
- Use "Deploy to D365 CE" to push to your environment
- Click "Edit existing PCF control" button
- Navigate to your control's root folder
- The tool will load existing manifest and project details
- Make changes to properties, resources, or features
- Build and test your changes
- Deploy updates to your environment
Edit control properties including:
- Property names and display names
- Data types and type groups
- Default values and descriptions
- Usage flags (bound/input)
- Required/optional settings
- Preview Images: Add custom preview images for the solution
- CSS Files: Include custom stylesheets
- RESX Files: Add localization resources for multi-language support
Enable device and platform capabilities:
- CaptureAudio: Record audio input
- CaptureVideo: Record video input
- CaptureImage: Capture images from camera
- GetBarcode: Scan barcodes and QR codes
- GetCurrentPosition: Access device location
- PickFile: File picker integration
- Utility: Utility functions
- WebApi: Web API integration
Manage multiple environment connections for easy deployment across development, test, and production environments.
Power Apps CLI Not Detected:
- Ensure Power Apps CLI is installed from aka.ms/PowerAppsCLI
- Restart XrmToolBox after installation
- Check that
pac
command is available in your system PATH
Build Failures:
- Verify npm is installed and in system PATH
- Check that Visual Studio Developer Command Prompt path is correct
- Ensure you have internet connectivity for npm package downloads
Project File Not Found:
- Verify the MSBuild path is correctly configured in Settings
- Check that Visual Studio is installed with the required build tools
- Ensure the MSBuild path points to the correct Visual Studio version
Deployment Issues:
- Verify authentication profile is configured correctly or you have connected to an environment in XrmToolBox
- Check that you have appropriate permissions in target environment
- Ensure solution package was created successfully before deployment
PowerShell Execution Policy:
- The tool supports custom PowerShell execution policy scripts
- If you encounter script execution errors, check your PowerShell execution policy
- Microsoft PCF Documentation: docs.microsoft.com/powerapps/developer/component-framework
- PCF Limitations: docs.microsoft.com/powerapps/developer/component-framework/limitations
- PCF Gallery: pcf.gallery
- Sample Controls: aka.ms/PCFSampleControls
- Wiki: github.com/Power-Maverick/PCF-CustomControlBuilder/wiki
Contributions are welcome! Here's how you can help:
- Report bugs via GitHub Issues
- Request features through issues with clear use cases
- Share feedback and suggestions
- Star the repository if you find it useful
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Make your changes following the existing code style
- Build and test your changes
- Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request with a clear description
- Clone the repository
- Open
Maverick.PCF.Builder.sln
in Visual Studio - Restore NuGet packages
- Build the solution
- The output will be in
Maverick.PCF.Builder/bin/Debug
orRelease
- Ensure the solution is built in Debug mode
- Navigate to
Maverick.PCF.Builder/bin/Debug
- Copy all the contents from the
Plugins
folder - Locate the XrmToolBox storage folder (typically
%AppData%\MscrmTools\XrmToolBox\Plugins
) - Paste the content copied in step 3
- Run XrmToolBox and open the PCF Builder tool
- Follow existing code structure and naming conventions
- Add XML documentation comments for public methods
- Test your changes thoroughly
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
Danish Naglekar - @DanzMaverick
- Sponsor: github.com/sponsors/Power-Maverick
- Discussions: github.com/Power-Maverick/PCF-CustomControlBuilder/discussions
- Issues: github.com/Power-Maverick/PCF-CustomControlBuilder/issues
Made with ❤️ for the Power Platform Community