Skip to content

feat: use TALXIS.Platform.Metadata.Packaging library for solution pack/unpack#43

Merged
TomProkop merged 2 commits into
TALXIS:masterfrom
metjuperry:feature/use-packaging-library
Jun 12, 2026
Merged

feat: use TALXIS.Platform.Metadata.Packaging library for solution pack/unpack#43
TomProkop merged 2 commits into
TALXIS:masterfrom
metjuperry:feature/use-packaging-library

Conversation

@metjuperry

@metjuperry metjuperry commented May 7, 2026

Copy link
Copy Markdown
Member

Summary

Refreshes InvokeSolutionPackager to use the published TALXIS.Platform.Metadata.Packaging package instead of the direct in-project SolutionPackagerLib integration introduced by the net10 host migration.

Baseline / context

  • TALXIS/platform-metadata v0.7.0 is published and provides TALXIS.Platform.Metadata.Packaging 0.7.0
  • tools-devkit-build PR feat: upgrade Dataverse tasks to net10 host #65 already moved the Dataverse tasks host to .NET 10 / MSBuild 18+
  • Because of that, the older net472 fallback design is no longer the target architecture for this PR

Changes

  • Keep the Dataverse tasks project on the current net10.0 host baseline from PR feat: upgrade Dataverse tasks to net10 host #65
  • Add TALXIS.Platform.Metadata.Packaging 0.7.0 to TALXIS.DevKit.Build.Dataverse.Tasks.csproj
  • Remove the direct Microsoft.PowerApps.CLI.Core.linux-x64 / SolutionPackagerLib assembly wiring from the tasks project
  • Update InvokeSolutionPackager to delegate pack/unpack to TALXIS.Platform.Metadata.Packaging.SolutionPackagerService
  • Preserve the existing MSBuild task surface:
    • Action
    • PackageType
    • SolutionRootDirectory
    • PathToZipFile
    • ErrorLevel
    • LogFilePath
    • MappingFilePath
    • Localize
    • LocalTemplate
    • UseUnmanagedFileForMissingManaged
  • Keep task logging/error reporting and surface stack traces on failure

Validation

  • dotnet build TALXIS.DevKit.Build.slnx -c Release
  • dotnet build src/Dataverse/Tasks/TALXIS.DevKit.Build.Dataverse.Tasks.csproj -c Release
  • dotnet pack src/Dataverse/Tasks/TALXIS.DevKit.Build.Dataverse.Tasks.csproj -c Release
  • Verified task project output and packed .nupkg contain the required packaging runtime DLLs:
    • TALXIS.Platform.Metadata.Packaging.dll
    • SolutionPackagerLib.dll
    • System.IO.Packaging.dll
    • related runtime dependencies under tasks/net10.0/

Related

…k/unpack

On .NET 10+ (MSBuildRuntimeType=Core), InvokeSolutionPackager now uses
the TALXIS.Platform.Metadata.Packaging library directly instead of
shelling out to PAC CLI. This eliminates the PAC CLI runtime dependency
and provides faster, more reliable solution packing/unpacking.

On .NET Framework (net472), the PAC CLI fallback is retained since the
packaging library targets net10.0.

Also upgrades Tasks TFM from net472;net6.0 to net472;net10.0 and
updates the .targets assembly path accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Refreshes the Dataverse MSBuild task InvokeSolutionPackager to use the published TALXIS.Platform.Metadata.Packaging library (via SolutionPackagerService) instead of directly wiring SolutionPackagerLib from Microsoft.PowerApps.CLI.Core.

Changes:

  • Replace direct SolutionPackagerLib usage with TALXIS.Platform.Metadata.Packaging.SolutionPackagerService for pack/unpack.
  • Add TALXIS.Platform.Metadata.Packaging 0.7.0 dependency and remove the Microsoft.PowerApps.CLI.Core.linux-x64 reference/hint-path assembly wiring.
  • Keep the existing MSBuild task surface and continue to log stack traces on failure.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/Dataverse/Tasks/Tasks/InvokeSolutionPackager.cs Switches pack/unpack implementation to SolutionPackagerService and maps MSBuild task properties into SolutionPackagerOptions.
src/Dataverse/Tasks/TALXIS.DevKit.Build.Dataverse.Tasks.csproj Replaces explicit CLI DLL wiring with a package dependency on TALXIS.Platform.Metadata.Packaging 0.7.0.

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

Comment thread src/Dataverse/Tasks/Tasks/InvokeSolutionPackager.cs Outdated
Normalize optional SolutionPackager paths to null/omitted values and only opt into unpack-specific delete/write flags when running unpack so the MSBuild task continues to mirror the previous argument semantics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@TomProkop TomProkop merged commit 11b98a3 into TALXIS:master Jun 12, 2026
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