TALXIS.DevKit.Build.Dataverse.Tasks
1.1.0
Prefix Reserved
dotnet add package TALXIS.DevKit.Build.Dataverse.Tasks --version 1.1.0
NuGet\Install-Package TALXIS.DevKit.Build.Dataverse.Tasks -Version 1.1.0
<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Tasks" Version="1.1.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="TALXIS.DevKit.Build.Dataverse.Tasks" Version="1.1.0" />
<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Tasks"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add TALXIS.DevKit.Build.Dataverse.Tasks --version 1.1.0
#r "nuget: TALXIS.DevKit.Build.Dataverse.Tasks, 1.1.0"
#:package TALXIS.DevKit.Build.Dataverse.Tasks@1.1.0
#addin nuget:?package=TALXIS.DevKit.Build.Dataverse.Tasks&version=1.1.0
#tool nuget:?package=TALXIS.DevKit.Build.Dataverse.Tasks&version=1.1.0
TALXIS.DevKit.Build.Dataverse.Tasks
Core MSBuild tasks and targets library shared by all TALXIS.DevKit.Build.Dataverse.* packages. Provides custom C# MSBuild tasks for Git-based version generation, solution XML patching, solution packaging via PAC CLI, schema validation, CMT data merging, code app metadata generation, and web resource management. Most users do not reference this package directly -- it is pulled in as a dependency of the higher-level packages (Plugin, Solution, Pcf, etc.).
Installation
<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Tasks" Version="0.0.0.1" PrivateAssets="All" />
Typically this package is referenced transitively through one of the component packages.
How It Works
The package ships compiled task assemblies for net472 and net6.0. At build time, the correct assembly is selected based on MSBuildRuntimeType (Core vs Full Framework).
Registered MSBuild tasks
| Category | Tasks |
|---|---|
| Versioning | GenerateGitVersion, ApplyVersionNumber, ApplyPcfVersionNumber, ApplyPluginVersionNumberInSolution |
| Solution packaging | InvokeSolutionPackager, PatchSolutionXml, EnsureCustomizationsNode, EnsureAllCustomizationsNodes |
| Component metadata | EnsurePluginAssemblyDataXml, EnsureWorkflowActivityAssemblyDataXml, EnsureWebResourceDataXml, AddRootComponentToSolution, GenerateCodeAppMetaXml |
| Validation | ValidateXmlFiles, ValidateJsonFiles, ValidateDuplicateGuids, ValidateQuickFindViews, ValidatePcfDependencies |
| CMT data | MergeCmtDataXml, MergeCmtDataSchemaXml, AppendCmtDataFileToImportConfig, PostProcessImportConfig |
| Utilities | RetrieveProjectReferences, ResolveWebResourceName |
Key targets
- GenerateVersionNumber -- requires the
Versionproperty. RunsGenerateGitVersionusing the major/minor fromVersion, the current Git branch, andApplyToBranchesrules to produce a full four-part version number. - ApplyVersionNumber -- patches the generated version into solution metadata folders (
SolutionXml,PluginAssemblies,Workflows,Controls,SdkMessageProcessingSteps). - ApplyPcfVersionNumber -- updates the version in
ControlManifest.xmlfor PCF controls. - PackDataverseSolution -- invokes the PAC solution packager to produce a
.zipfrom the working directory. - ValidateSolutionComponentSchema -- validates all solution XML files against bundled XSD schemas (22 schemas covering Solution, Entity, Form, Ribbon, Relationship, AppModule, Sitemap, OptionSet, Workflow, PluginAssembly, and more) and JSON files against JSON schemas (
Flow.schema.jsonfor Power Automate flows). Runs in batch mode -- collects all errors across all files before failing the build, with MSBuild-canonical error format (file(line,col): error CODE: message) for IDE click-through support. - InitializeSolutionPackagerWorkingDirectory -- copies solution source files into the intermediate working directory for packaging.
- CleanupWorkingDirectory -- removes temporary localization and working directories after build.
Validation
The ValidateXmlFiles and ValidateJsonFiles tasks ship with 22 XSD schemas and 1 JSON schema covering all Dataverse solution component types. Schemas are bundled in the NuGet package under contentFiles/ValidationSchema/.
All XSD schemas share the null target namespace and are loaded into a single XmlSchemaSet, so cross-schema type references (e.g. CrmCascadeSecurityLinkType defined in Customizations.xsd but used in Relationship.xsd) are resolved automatically at compile time.
Error codes emitted by validation tasks:
| Code | Task | Meaning |
|---|---|---|
TALXISXSD001 |
ValidateXmlFiles |
XML file violates its XSD schema. |
TALXISXML001 |
ValidateXmlFiles |
XML file is not well-formed. |
TALXISJSON001 |
ValidateJsonFiles |
JSON file is not valid JSON. |
TALXISJSONSCHEMA001 |
ValidateJsonFiles |
JSON file violates its JSON schema. |
Schema validation is not wired into the build pipeline automatically. To run it, invoke the ValidateSolutionComponentSchema target manually, e.g. dotnet build -t:ValidateSolutionComponentSchema.
MSBuild Properties
Versioning
| Property | Default | Description |
|---|---|---|
Version |
(required) | Base version (Major.Minor); used by GenerateGitVersion to produce the full version. |
ApplyToBranches |
(none) | Semicolon-separated branch rules (e.g. master;hotfix;develop:1;pr:3;feature/*:2). |
LocalBranchBuildVersionNumber |
0.0.20000.0 |
Fallback version used when the current branch does not match ApplyToBranches. |
Solution packager paths
| Property | Default | Description |
|---|---|---|
SolutionRootPath |
. |
Relative path to the solution source root. |
SolutionPackagerWorkingDirectory |
$(IntermediateOutputPath) |
Working folder for pack/unpack operations. |
SolutionPackagerMetadataWorkingDirectory |
$(SolutionPackagerWorkingDirectory)Metadata |
Metadata folder used by version update targets. |
SolutionPackagerLocalizationWorkingDirectory |
(none) | Optional localization working folder (cleaned by CleanupWorkingDirectory). |
SolutionPackageLogFilePath |
$(IntermediateOutputPath)SolutionPackager.log |
SolutionPackager log file path. |
SolutionPackageZipFilePath |
$(OutputPath)$(MSBuildProjectName).zip |
Output path for the packed solution .zip. |
PCF versioning
| Property | Default | Description |
|---|---|---|
PcfOutputPath |
(none) | Output directory containing ControlManifest.xml (used by ApplyPcfVersionNumber). |
Related Packages
This is the foundational package in the ecosystem. The following packages depend on it:
TALXIS.DevKit.Build.Dataverse.PcfTALXIS.DevKit.Build.Dataverse.PluginTALXIS.DevKit.Build.Dataverse.WorkflowActivityTALXIS.DevKit.Build.Dataverse.ScriptLibraryTALXIS.DevKit.Build.Dataverse.CodeAppTALXIS.DevKit.Build.Dataverse.SolutionTALXIS.DevKit.Build.Dataverse.PdPackage
Learn more about Target Frameworks and .NET Standard.
-
.NETFramework 4.7.2
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages (7)
Showing the top 5 NuGet packages that depend on TALXIS.DevKit.Build.Dataverse.Tasks:
| Package | Downloads |
|---|---|
|
TALXIS.DevKit.Build.Dataverse.Solution
Dataverse MSBuild Solution |
|
|
TALXIS.DevKit.Build.Dataverse.PdPackage
Dataverse MSBuild PDPackage |
|
|
TALXIS.DevKit.Build.Dataverse.Plugin
Dataverse MSBuild Plugin |
|
|
TALXIS.DevKit.Build.Dataverse.ScriptLibrary
Dataverse MSBuild ScriptLibrary |
|
|
TALXIS.DevKit.Build.Dataverse.Pcf
Dataverse MSBuild Pcf |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0 | 24 | 5/1/2026 |
| 1.0.0 | 85 | 4/29/2026 |
| 0.0.0.16 | 325 | 4/28/2026 |
| 0.0.0.15 | 380 | 4/26/2026 |
| 0.0.0.14 | 329 | 4/25/2026 |
| 0.0.0.13 | 668 | 3/13/2026 |
| 0.0.0.12 | 510 | 3/11/2026 |
| 0.0.0.11 | 347 | 3/6/2026 |
| 0.0.0.10 | 442 | 2/24/2026 |
| 0.0.0.9 | 418 | 2/12/2026 |
| 0.0.0.8 | 302 | 2/11/2026 |
| 0.0.0.7 | 306 | 2/11/2026 |
| 0.0.0.6 | 305 | 2/10/2026 |
| 0.0.0.5 | 300 | 2/10/2026 |
| 0.0.0.4 | 307 | 2/10/2026 |
| 0.0.0.3 | 371 | 9/28/2025 |
| 0.0.0.2 | 343 | 9/26/2025 |
1.1.0:
Shared validation package
- XSD schemas and validation logic now come from TALXIS.Platform.Metadata.Validation (v0.1.3)
- 23 XSD files + 1 JSON schema removed from this repo (now embedded in shared package)
- ~400 lines of validation code replaced with thin MSBuild task wrappers
- Error codes preserved: TALXISXSD001, TALXISGUID001, TALXISJSONSCHEMA001
- .targets backward compatible (SchemaFiles property accepted but no longer required)
1.0.0:
First stable release
What's included
- Dataverse solution build tasks (pack, unpack, validate, version stamping)
- Plugin assembly generation and registration during build
- Workflow activity assembly support
- XSD schema validation with nil element normalization
- Solution component schema validation (UniqueName pattern, nillable address fields)
- PCF control build support
- Package Deployer integration
Release process
- Unified release workflow: GitHub Release trigger, SemVer versioning
- Cumulative release notes embedded in NuGet packages
- Separated build/deploy pipeline jobs
Breaking change
- Version scheme changed from 0.0.0.x to SemVer (1.0.0)
0.0.0.16:
What's Changed
* fix: add IsHidden attribute to OptionSet.xsd option element by @TomProkop in https://github.com/TALXIS/tools-devkit-build/pull/20
* fix: XSD schema updates, nil normalization, circular dependency removal by @TomProkop in https://github.com/TALXIS/tools-devkit-build/pull/21
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.15...v0.0.0.16
0.0.0.15:
What's Changed
* code app added to slnx by @zekelinAlex in https://github.com/TALXIS/tools-devkit-build/pull/19
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.14...v0.0.0.15
0.0.0.14:
What's Changed
* Logging when calling SolutionPackager. Autogenerated ImportConfig.xml update by @zekelinAlex in https://github.com/TALXIS/tools-devkit-build/pull/14
* TALXIS SDK 0.0.0.14 release by @zekelinAlex in https://github.com/TALXIS/tools-devkit-build/pull/15
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.13...v0.0.0.14
0.0.0.13:
What's Changed
* CMT merge tasks update by @zekelinAlex in https://github.com/TALXIS/tools-devkit-build/pull/13
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.12...v0.0.0.13
0.0.0.12:
What's Changed
* Plugin publishing update. GenerateGitVersion update by @zekelinAlex in https://github.com/TALXIS/tools-devkit-build/pull/12
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.11...v0.0.0.12
0.0.0.11:
What's Changed
* Unmanaged components now can be used in Managed Solutions and add ResolveGitBranch target by @zekelinAlex in https://github.com/TALXIS/tools-devkit-build/pull/11
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.10...v0.0.0.11
0.0.0.10:
What's changed
* Update versioning of PCFs, output LastCommitDateTime from GenerateGitVersion to be used in PCF, update PCF versioning docs.
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.9...v0.0.0.10
0.0.0.9:
What's Changed
* WorkflowActivity added to slnx. Main README updated by @zekelinAlex in https://github.com/TALXIS/tools-devkit-build/pull/10
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.8...v0.0.0.9
0.0.0.8:
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.7...v0.0.0.8
0.0.0.7:
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.6...v0.0.0.7
0.0.0.6:
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.5...v0.0.0.6
0.0.0.5:
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.4...v0.0.0.5
0.0.0.4:
What's Changed
* New targets for PDPackage, ScriptLibrary and SDK, fixes and improvements by @zekelinAlex in https://github.com/TALXIS/tools-devkit-build/pull/8
New Contributors
* @zekelinAlex made their first contribution in https://github.com/TALXIS/tools-devkit-build/pull/8
Full Changelog: https://github.com/TALXIS/tools-devkit-build/compare/v0.0.0.3...v0.0.0.4
0.0.0.3:
0.0.0.2: