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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Tasks" Version="1.1.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TALXIS.DevKit.Build.Dataverse.Tasks" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Tasks">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TALXIS.DevKit.Build.Dataverse.Tasks --version 1.1.0
                    
#r "nuget: TALXIS.DevKit.Build.Dataverse.Tasks, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TALXIS.DevKit.Build.Dataverse.Tasks@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TALXIS.DevKit.Build.Dataverse.Tasks&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=TALXIS.DevKit.Build.Dataverse.Tasks&version=1.1.0
                    
Install as a Cake Tool

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 Version property. Runs GenerateGitVersion using the major/minor from Version, the current Git branch, and ApplyToBranches rules 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.xml for PCF controls.
  • PackDataverseSolution -- invokes the PAC solution packager to produce a .zip from 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.json for 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).

This is the foundational package in the ecosystem. The following packages depend on it:

  • TALXIS.DevKit.Build.Dataverse.Pcf
  • TALXIS.DevKit.Build.Dataverse.Plugin
  • TALXIS.DevKit.Build.Dataverse.WorkflowActivity
  • TALXIS.DevKit.Build.Dataverse.ScriptLibrary
  • TALXIS.DevKit.Build.Dataverse.CodeApp
  • TALXIS.DevKit.Build.Dataverse.Solution
  • TALXIS.DevKit.Build.Dataverse.PdPackage
There are no supported framework assets in this package.

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: