TALXIS SDK 0.0.0.14 release#15
Conversation
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
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
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