Skip to content

TALXIS SDK 0.0.0.14 release#15

Merged
TomProkop merged 6 commits intoTALXIS:masterfrom
zekelinAlex:master
Apr 24, 2026
Merged

TALXIS SDK 0.0.0.14 release#15
TomProkop merged 6 commits intoTALXIS:masterfrom
zekelinAlex:master

Conversation

@zekelinAlex
Copy link
Copy Markdown
Contributor

@zekelinAlex zekelinAlex commented Apr 17, 2026

List of changes:

Support for code-first apps in Power Apps. The Solution automatically adds a RootComponent type=300 and a CanvasApps node in Customizations.xml.

New validations

  1. ValidateDuplicateGuids - scans for duplicate GUIDs across all solution metadata (forms, views, workflows, plugins, etc.). Error code TALXISGUID001. Disabled via TalxisSkipDuplicateGuidValidation.
  2. ValidateQuickFindViews - verifies that Quick Find views have search attributes configured ( with ). Warning TALXISQF001. Disabled via TalxisSkipQuickFindValidation.
  3. ValidatePcfDependencies - verifies that all PCF controls referenced in forms have a provider (RootComponent type=66). Warning TALXISPCF001. Disabled via TalxisSkipPcfDependencyValidation.
  4. EnsureAllCustomizationsNodes - automatically adds missing nodes to Customizations.xml if the corresponding files/folders exist in the project.

PDPackage
macOS support: ILRepack runs via mono on non-Windows platforms.
System.ComponentModel.Composition is automatically wired in for .NET Framework.
All ProjectReference entries default to ReferenceOutputAssembly=false.

Solution
ScriptLibrary projects are now removed from @(ProjectReference) after discovery so they are not built twice (once via ResolveProjectReferences and again via the explicit BuildScriptLibraries). Added EnsureCustomizationsNode for WebResources during the copy into metadata.
InvokeSolutionPackager
Changed the pac lookup priority: standalone Power Platform CLI is now preferred, then .dotnet/tools.

SDK
Default TargetFramework=net472.

XSD schemas update

README files updated

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR cuts a new TALXIS SDK release that adds CodeApp (code-first canvas app) support to the Dataverse Solution build pipeline, introduces additional solution/package validations, and updates packaging defaults and validation schemas/documentation.

Changes:

  • Add CodeApp project type support (build, metadata generation, and packaging into solutions).
  • Add new validations (duplicate GUIDs, Quick Find search attributes, PCF dependency validation) plus automatic Customizations.xml node completion.
  • Update solution packaging behavior (Managed/Unmanaged selection), PAC resolution priority, and refresh XSD schemas + README documentation.

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
src/Sdk/Sdk/Sdk.props Set default TargetFramework for SDK consumers.
src/Sdk/README.md Document SDK behavior and supported ProjectType values.
src/Dataverse/Tasks/msbuild/tasks/Targets/ValidateQuickFindViews.targets Add MSBuild target to invoke Quick Find validation over SavedQueries.
src/Dataverse/Tasks/msbuild/tasks/Targets/ValidateDuplicateGuids.targets Add MSBuild target to invoke duplicate GUID scanning over solution metadata.
src/Dataverse/Tasks/msbuild/tasks/Targets/PackDataverseSolution.targets Make pack PackageType configurable via $(SolutionPackageType).
src/Dataverse/Tasks/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.Tasks.targets Register new MSBuild tasks (CodeApp + validations + customizations node ensure).
src/Dataverse/Tasks/msbuild/tasks/Props/SolutionFileItems.props Fix schema file globs to locate packaged contentFiles/ValidationSchema.
src/Dataverse/Tasks/msbuild/tasks/Props/ProjectPaths.props Add default SolutionPackageType (Debug=Unmanaged, else Managed).
src/Dataverse/Tasks/ValidationSchema/Solution.xsd Schema updates for solution metadata fields.
src/Dataverse/Tasks/ValidationSchema/Sitemap.xsd Extend sitemap schema with additional optional elements.
src/Dataverse/Tasks/ValidationSchema/SharedTypes.xsd Relax version pattern; add nested Descriptions support.
src/Dataverse/Tasks/ValidationSchema/SavedQuery.xsd Allow broader attribute values and lax any-attributes.
src/Dataverse/Tasks/ValidationSchema/Role.xsd Update role schema to allow optional elements via xs:all.
src/Dataverse/Tasks/ValidationSchema/Ribbon.xsd Ribbon schema adjustments (type refs and optionality).
src/Dataverse/Tasks/ValidationSchema/Form.xsd Form schema updates (optional nodes/attributes).
src/Dataverse/Tasks/ValidationSchema/Entity.xsd Entity schema optionality updates + new attribute support.
src/Dataverse/Tasks/ValidationSchema/Customizations.xsd Extend enumerations + loosen structure for some control config nodes.
src/Dataverse/Tasks/ValidationSchema/AppModule.xsd AppModule schema optionality + additional nodes.
src/Dataverse/Tasks/Tasks/ValidateXmlFiles.cs Improve schema validation robustness + MSBuild-canonical diagnostics.
src/Dataverse/Tasks/Tasks/ValidateQuickFindViews.cs New task validating Quick Find view search attributes.
src/Dataverse/Tasks/Tasks/ValidatePcfDependencies.cs New task validating PCF control providers across PDPackage solutions.
src/Dataverse/Tasks/Tasks/ValidateJsonFiles.cs Batch JSON schema validation with better error reporting.
src/Dataverse/Tasks/Tasks/ValidateDuplicateGuids.cs New task scanning metadata for duplicate GUID identities.
src/Dataverse/Tasks/Tasks/InvokeSolutionPackager.cs Prefer standalone PAC install over dotnet tool, then PATH.
src/Dataverse/Tasks/Tasks/GenerateCodeAppMetaXml.cs New task generating CodeApp .meta.xml from config + dist output.
src/Dataverse/Tasks/Tasks/EnsureAllCustomizationsNodes.cs New task ensuring required Customizations.xml nodes exist when components present.
src/Dataverse/Tasks/README.md Update Tasks package docs (validation details, codeapp mention).
src/Dataverse/Solution/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.Solution.targets Wire in ensure-nodes + new validation targets + CodeApps import.
src/Dataverse/Solution/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.Solution.ScriptLibraries.targets Avoid double-building ScriptLibrary refs; ensure WebResources node before copy.
src/Dataverse/Solution/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.Solution.OverridePAC.targets Filter CodeApp refs out of PAC processing; use $(SolutionPackageType) when packing.
src/Dataverse/Solution/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.Solution.CodeApps.targets New Solution pipeline for probing/building/copying CodeApps + metadata generation.
src/Dataverse/Solution/README.md Document CodeApp integration and validation behavior.
src/Dataverse/Pcf/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.Pcf.targets Add npm install step and publish output copy behavior.
src/Dataverse/Pcf/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.Pcf.props Set PCF output paths + import PowerApps PCF props.
src/Dataverse/Pcf/TALXIS.DevKit.Build.Dataverse.Pcf.nuspec Add .NET Framework reference assemblies dependency.
src/Dataverse/PDPackage/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.PdPackage.targets Add PCF dependency validation hook after package generation.
src/Dataverse/PDPackage/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.PdPackage.ILRepack.targets Run ILRepack via mono on non-Windows.
src/Dataverse/PDPackage/msbuild/build/TALXIS.DevKit.Build.Dataverse.PdPackage.props Add MEF reference on .NET Framework + default ReferenceOutputAssembly=false.
src/Dataverse/PDPackage/README.md Document PDPackage defaults for ProjectReference and .NET Framework refs.
src/Dataverse/CodeApp/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.CodeApp.targets New CodeApp build integration (npm build + dist copy + discovery outputs).
src/Dataverse/CodeApp/msbuild/tasks/TALXIS.DevKit.Build.Dataverse.CodeApp.props Set default ProjectType=CodeApp.
src/Dataverse/CodeApp/msbuild/build/TALXIS.DevKit.Build.Dataverse.CodeApp.targets Import tasks targets in build folder.
src/Dataverse/CodeApp/msbuild/build/TALXIS.DevKit.Build.Dataverse.CodeApp.props Import tasks props in build folder.
src/Dataverse/CodeApp/TALXIS.DevKit.Build.Dataverse.CodeApp.nuspec New NuGet package definition for CodeApp MSBuild integration.
src/Dataverse/CodeApp/TALXIS.DevKit.Build.Dataverse.CodeApp.csproj New project packaging CodeApp targets/props into NuGet.
src/Dataverse/CodeApp/README.md Document CodeApp usage, behavior, and integration with Solution builds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Dataverse/Solution/README.md
Comment thread src/Sdk/README.md
Comment thread src/Dataverse/Tasks/README.md
Comment thread src/Dataverse/Tasks/README.md Outdated
Comment thread src/Dataverse/Solution/README.md Outdated
Comment thread src/Dataverse/Tasks/Tasks/ValidateQuickFindViews.cs Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 46 out of 46 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Dataverse/Tasks/Tasks/ValidateXmlFiles.cs
Comment thread src/Dataverse/Tasks/Tasks/GenerateCodeAppMetaXml.cs
Comment thread src/Dataverse/Tasks/Tasks/EnsureAllCustomizationsNodes.cs Outdated
Comment thread src/Dataverse/Solution/README.md Outdated
Copy link
Copy Markdown
Member

@TomProkop TomProkop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few items to address:

1. Wrong package name in docs (docs/Tasks-Package.md, line 81)

The example .csproj references the old package name:

<PackageReference Include="TALXIS.SDK.BuildTargets.Dataverse.Tasks" Version="1.0.*" />

Should be:

<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Tasks" Version="1.0.*" />

2. SDK README default value is misleading (src/Sdk/README.md)

The README documents the default for TALXISDevKitDataversePackageVersion as 0.0.0.1, but Sdk.props actually resolves it dynamically from the NuGet cache path (i.e., it matches the installed SDK version). Please update the docs to reflect the actual behavior.

3. GenerateCodeAppMetaXml — non-deterministic AppVersion

AppVersion is set to DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ"), which means every build produces a different value even with identical source code. This causes solutions to always appear "changed". Consider using a deterministic value (e.g., a project version property or git commit hash) instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants