TODO: Version nuspec dependnecy in GitHub Actions
Warning
This project is currently in a development phase and not ready for production use. While we actively use these tools internally, our aim is to share and collaborate with the broader community to refine and enhance their capabilities. We are in the process of gradually open-sourcing the code, removing internal dependencies to make it universally applicable. At this stage, it serves as a source of inspiration and a basis for collaboration. We welcome feedback, suggestions, and contributions through pull requests.
If wish to use this project for your team, please contact us at [email protected] for a personalized onboarding experience and customization to meet your specific needs.
Caution
Only modify the source code if you use standard platform customization capabilities. Manual changes might make the source source code invalid but still importable to Dataverse. In some situations, this could cause your environment to become irreversibly corrupted.
The primary objective of this NuGet package is to help Power Platform developers customize the MSBuild process (dotnet build) for their Dataverse solution components. Customizations are done using a set of build tasks which make development workflows more productive and automated.
The package currently supports a MSBuild Tasks aimed at extending the build process for Power Platform solutions with useful steps:
Ensures XML and JSON artifacts comply with expected schemas. Supported components can be found in the ValidationSchema folder. If your build fails and you belive it should be successful create an issue in this repository or send a PR with corrected definitions.
Generates version numbers based on Git commit history, applying these versions across various solution components including Solution XML, Plugin Assembly Metadata Files, Workflow Activity Groups, Workflow Files, and SdkMessageProcessingStep Files. See here for more details.
Project dependency folders are analyzed for Git changes to be reflected in generated version numbers. See here for more details.
Tip
You can find demo steps for creating a new solution using PAC CLI and this package here.
Warning
You may have troubles building .cdsproj
projects produced by PAC CLI.
Also adding them to Visual Studio Solutins (.sln files) might not work.
To work around this you can add the following property to your .cdsproj: <DefaultProjectTypeGuid>FAE04EC0-301F-11D3-BF4B-00C04F79EFBC</DefaultProjectTypeGuid>
.
Alternatively you can rename .cdsproj
extension to .csproj
and add Sdk="Microsoft.NET.Sdk"
attribute to the Project
element in your .csproj
.
Defaults can be set per project or per folder via Directory.Build.props
file. For more information see here
<Project>
<PropertyGroup>
<ApplyToBranches>master:1;main:1;develop:2;pr/*:3</ApplyToBranches>
<LocalBranchBuildVersionNumber>0.0.12345.0</LocalBranchBuildVersionNumber>
</PropertyGroup>
</Project>
For fastest setup, use TALXIS.DevKit.Build.Dataverse.Solution
, TALXIS.DevKit.Build.Dataverse.Plugin
and TALXIS.DevKit.Build.Dataverse.Pcf
packages to replace the Microsoft.PowerApps.MSBuild.*
packages and have everything already wired in (the version is locked to the latest known compatible version).
You can use the raw targets to integrate with your existing setup. See here.
This action should work in any cloud build environment, as long as you clone the entire Git repository with deep clone.
With GitHub actions:
- uses: actions/checkout@v2
with:
fetch-depth: 0
With Azure Pipelines:
- uses: actions/checkout@v2
with:
fetch-depth: 0
See Developing.
- Solution Packaging: Facilitates the use of the PAC CLI for running the solution packager, simplifying the packaging process.
- Currently provided by
Microsoft.PowerApps.MSBuild.Solution
package.
- Currently provided by
For further information or to discuss potential use cases for your team, please reach out to us at [email protected].