diff --git a/src/Dataverse/Tasks/TALXIS.DevKit.Build.Dataverse.Tasks.csproj b/src/Dataverse/Tasks/TALXIS.DevKit.Build.Dataverse.Tasks.csproj index d2b008a..5ec13b0 100644 --- a/src/Dataverse/Tasks/TALXIS.DevKit.Build.Dataverse.Tasks.csproj +++ b/src/Dataverse/Tasks/TALXIS.DevKit.Build.Dataverse.Tasks.csproj @@ -23,24 +23,14 @@ - + - - - $(PkgMicrosoft_PowerApps_CLI_Core_linux-x64)\tools\SolutionPackagerLib.dll - true - - - $(PkgMicrosoft_PowerApps_CLI_Core_linux-x64)\tools\System.IO.Packaging.dll - true - - TALXIS 2025 NETWORG diff --git a/src/Dataverse/Tasks/Tasks/InvokeSolutionPackager.cs b/src/Dataverse/Tasks/Tasks/InvokeSolutionPackager.cs index c8b6d04..19f547d 100644 --- a/src/Dataverse/Tasks/Tasks/InvokeSolutionPackager.cs +++ b/src/Dataverse/Tasks/Tasks/InvokeSolutionPackager.cs @@ -2,7 +2,7 @@ using System.Diagnostics; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; -using Microsoft.Crm.Tools.SolutionPackager; +using TALXIS.Platform.Metadata.Packaging; public class InvokeSolutionPackager : Task { @@ -32,15 +32,30 @@ public override bool Execute() { try { - var arguments = BuildArguments(); - if (arguments == null) + var options = BuildOptions(); + if (options == null) { return false; } - var packager = new SolutionPackager(arguments); - packager.Run(); - return true; + var packager = new SolutionPackagerService(); + + switch (Action.ToLowerInvariant()) + { + case "pack": + Log.LogMessage(MessageImportance.High, $"Packing solution from '{SolutionRootDirectory}' to '{PathToZipFile}'..."); + packager.Pack(SolutionRootDirectory, PathToZipFile, options); + Log.LogMessage(MessageImportance.High, "Solution packed successfully."); + return true; + case "unpack": + Log.LogMessage(MessageImportance.High, $"Unpacking solution from '{PathToZipFile}' to '{SolutionRootDirectory}'..."); + packager.Unpack(PathToZipFile, SolutionRootDirectory, options); + Log.LogMessage(MessageImportance.High, "Solution unpacked successfully."); + return true; + default: + Log.LogError($"Unsupported action: {Action}"); + return false; + } } catch (Exception ex) { @@ -56,9 +71,9 @@ public override bool Execute() } } - private PackagerArguments BuildArguments() + private SolutionPackagerOptions BuildOptions() { - if (!TryParsePackageType(out var packageType)) + if (!TryParseManaged(out var managed)) { return null; } @@ -69,75 +84,55 @@ private PackagerArguments BuildArguments() return null; } - PackagerArguments arguments; + var options = new SolutionPackagerOptions + { + Managed = managed, + ErrorLevel = errorLevel, + Localize = Localize, + UseUnmanagedFileForMissingManaged = UseUnmanagedFileForMissingManaged, + }; - switch (Action.ToLowerInvariant()) + if (!string.IsNullOrWhiteSpace(LogFilePath)) { - case "pack": - arguments = new PackagerArguments - { - Action = CommandAction.Pack, - PathToZipFile = PathToZipFile, - Folder = SolutionRootDirectory, - PackageType = packageType, - ErrorLevel = errorLevel, - Localize = Localize, - UseUnmanagedFileForManaged = UseUnmanagedFileForMissingManaged, - }; - break; - case "unpack": - arguments = new PackagerArguments - { - Action = CommandAction.Extract, - PathToZipFile = PathToZipFile, - Folder = SolutionRootDirectory, - PackageType = packageType, - AllowDeletes = AllowDelete.Yes, - AllowWrites = AllowWrite.Yes, - ErrorLevel = errorLevel, - Localize = Localize, - }; - break; - default: - Log.LogError($"Unsupported action: {Action}"); - return null; + options.LogFilePath = LogFilePath; } if (!string.IsNullOrWhiteSpace(MappingFilePath)) { - arguments.MappingFile = MappingFilePath; + options.MappingFilePath = MappingFilePath; } - if (!string.IsNullOrWhiteSpace(LogFilePath)) + if (!string.IsNullOrWhiteSpace(LocalTemplate)) { - arguments.LogFile = LogFilePath; + options.SourceLocale = LocalTemplate; } - if (!string.IsNullOrWhiteSpace(LocalTemplate)) + if (string.Equals(Action, "unpack", StringComparison.OrdinalIgnoreCase)) { - arguments.LocaleTemplate = LocalTemplate; + options.AllowDeletes = true; + options.AllowWrites = true; } - return arguments; + return options; } - private bool TryParsePackageType(out SolutionPackageType packageType) + private bool TryParseManaged(out bool managed) { if (string.IsNullOrWhiteSpace(PackageType) || string.Equals(PackageType, "Unmanaged", StringComparison.OrdinalIgnoreCase)) { - packageType = SolutionPackageType.Unmanaged; + managed = false; return true; } if (string.Equals(PackageType, "Managed", StringComparison.OrdinalIgnoreCase)) { - packageType = SolutionPackageType.Managed; + managed = true; return true; } Log.LogError($"Unsupported package type: {PackageType}"); - packageType = default; + managed = false; return false; } }