Change Log¶
All notable changes to the "ALOps" extension.
[v2.485] - 2026-10-13¶
- All Tasks: the Azure DevOps v3 tasks now pin ALOpsV3.Module 0.1.11643-alpha, which carries the v3 fixes in this release (v3)
- ALOpsAdminCenterAPI: fix client certificate authentication failing with "does not contain a method named 'GetRSAPrivateKey'" right after the certificate is loaded — client secret authentication is unchanged (GitHub #1024) (v3)
- ALOpsAppCompiler: fix AL1022 on Microsoft test libraries (Tests-TestLibraries, System Application Test Library, ...) when compiling for W1 with bc_version NextMinor or NextMajor (GitHub #1006) (v3)
- ALOpsAppCompiler: with bc_version NextMinor or NextMajor, all Microsoft symbols, test libraries included, come from the BC insider artifacts (country artifact first, then platform) — the MSSymbols NuGet feed is no longer contacted; released BC versions are unchanged (GitHub #1006) (v3)
- ALOpsAppCompiler: insider builds copy only the Microsoft apps the workspace depends on (about 15 instead of ~140), so the missing-symbol pre-check finishes much faster (GitHub #1006) (v3)
- ALOpsAppCompiler: localized insider builds use the right Base Application — Applications.
takes precedence over the rest of the country artifact and the platform (GitHub #1006) (v3) - ALOpsAppCompiler: the log lists every copied insider symbol with its version and source (country artifact or platform) (GitHub #1006) (v3)
- ALOpsAppCompiler: fix NextMinor and NextMajor builds with an alcachepath that does not exist yet — the folder is now created before symbols are copied (GitHub #1006) (v3)
- ALOpsAppCompiler: fix updateruntime LATEST with bc_version NextMajor or NextMinor writing altool's "The version string is not valid." usage text into app.json as the runtime, which then failed with AL1039 (GitHub #1022) (v3)
- ALOpsAppCompiler: updateruntime LATEST resolves against the version of the downloaded insider artifact (for example 30.0) in Serial and Parallel mode; %BC_VERSION% in appfilenametemplate still reads NextMajor or NextMinor (GitHub #1022) (v3)
- ALOpsAppCompiler: updateruntime LATEST accepts a major-only bc_version such as 30, looked up as 30.0 (GitHub #1022) (v3)
- ALOpsAppCompiler: altool's answer is validated before it reaches app.json — a failed lookup stops the step with a clear message suggesting a newer altool_package_version or an explicit updateruntime X.Y value (GitHub #1022) (v3)
- ALOpsAppCompiler: fix "The process cannot access the file '...\Analyzers\
.dll' because it is being used by another process" when several agents on one machine compile with the same custom code analyzer from the repository (GitHub #1023) (v1 and v2) - ALOpsAppCompiler: a repository analyzer is only copied into the shared BC artifact cache when it differs from the cached copy — an identical copy is reused, an updated analyzer is still picked up (GitHub #1023) (v1 and v2)
- ALOpsAppCompiler: when a different version of the analyzer is locked by another build, the task fails with "a different version is in use by another process" instead of a raw file-access error (GitHub #1023) (v1 and v2)
- ALOpsAppCompiler: a repository analyzer is found with or without the .dll extension in al_analyzer (v1) and alcodeanalyzer (v2); alcodeanalyzer entries are now trimmed as in v1 (GitHub #1023) (v1 and v2)
- ALOpsAppCompiler: the Azure DevOps v3 task help text is updated for alcachepath and additional_probing_paths (GitHub #1019), bc_localization (GitHub #1008), allowed_publisher_names (GitHub #1012), and bc_version / auto_resolve_ms_symbols (GitHub #1006) (v3)
- ALOpsExtensionAPI: fix client certificate authentication (azure_app_client_certificate) failing with "does not contain a method named 'GetRSAPrivateKey'" — no change to the Entra app registration is needed (GitHub #1024) (v3)
- ALOpsNuGetPublish: the Azure DevOps v3 task help text for nuget_username, nuget_password and nuget_source_apikey explains Azure DevOps Artifacts authentication — System.AccessToken or a PAT with Packaging (Read & write) scope (GitHub #1013) (v3)
- ALOpsOpenAPI: fix client certificate authentication failing with "does not contain a method named 'GetRSAPrivateKey'" (GitHub #1024) (v3)
- ALOpsPackageImport: fix client certificate authentication in API mode failing with "does not contain a method named 'GetRSAPrivateKey'" (GitHub #1024) (v3)
- ALOpsPackageImport: a certificate without a private key, or a non-RSA certificate, fails with the clear "Certificate does not contain an RSA private key" message (GitHub #1024) (v3)
[v2.484] - 2026-09-23¶
- ALOpsAppCompiler: additional_probing_paths is honoured in Parallel compilation mode — the altool workspace compile call now receives --assemblyprobingpaths, so .NET add-in references no longer fail with AL0451 "could not be found in the assembly probing paths ''" (GitHub #1019) (v3)
- ALOpsAppCompiler: Parallel mode resolves assembly probing paths the same way Serial mode does — the .NET assembly folders found below alsourcepath plus the additional_probing_paths entries, joined comma-separated for altool (v3)
- ALOpsAppCompiler: additional_probing_paths entries may be comma- or newline-separated; entries are trimmed, surrounding double or single quotes are stripped, empty entries are dropped and duplicates are removed, in Serial and Parallel mode (v3)
- ALOpsAppCompiler: a quoted additional_probing_paths entry no longer reaches the compiler with its quote characters, which made alc ignore or truncate the folder — in Serial mode such an entry was previously wrapped in a second pair of quotes (v3)
- ALOpsAppCompiler: a warning names every assembly probing path that does not exist, in Serial and Parallel mode, so an AL1018 from the compiler can be traced to the offending entry (v3)
- ALOpsAppCompiler: alcachepath accepts several folders, comma-separated — the full list is passed to alc and altool as the package cache path (v3)
- ALOpsAppCompiler: with several alcachepath folders, the first folder is the target for symbols downloaded by the auto_resolve_* inputs, the NextMajor and NextMinor platform symbol copies, the force_download_mssymbols cleanup and the Serial-mode symbol copies (v3)
- ALOpsAppCompiler: the missing-symbol pre-check indexes every alcachepath folder — a comma-separated alcachepath previously flagged every dependency as MISSING SYMBOL, because the joined string was looked up as one folder that does not exist (v3)
- ALOpsAppCompiler: quotes around alcachepath entries are stripped as well, and each folder is resolved on its own against the working folder (v3)
- ALOpsAppCompiler: the Resolve Source & Symbol Paths log section lists each symbol cache folder (v3)
- ALOpsAppCompiler: help text for alcachepath and additional_probing_paths clarified — comma-separated for several folders, do not wrap entries in quotes, probing paths are searched recursively (one Service folder entry is enough) while the symbol cache is not (list each folder) (v3)
- ALOpsAppCompiler: the Azure DevOps task definition and the GitHub action definition show the updated help text for alcachepath and additional_probing_paths (v3)
- ALOpsAppLicenseCheck: fix "The argument type 'Microsoft.Dynamics.Nav.Types.PermissionMask' is not the same as the enum type 'Microsoft.Dynamics.Nav.Types.PermissionMask'" (Enum.HasFlag) on BC 28 and earlier in a PowerShell 7 session (pwsh input enabled) — a regression introduced by the BC 29 change in v2.483 (GitHub #1020) (v1)
- ALOpsAppLicenseCheck: Microsoft.Dynamics.Nav.Types.dll is loaded with Assembly.LoadFrom instead of Assembly.LoadFile — under PowerShell 7, LoadFile isolates the assembly in its own load context, so a second copy of Nav.Types resolved elsewhere in the session yielded two distinct PermissionMask types (v1)
- ALOpsAppLicenseCheck: the license reader and the per-object permission check now bind to the same Nav.Types assembly in the default load context, as they did with Import-Module before v2.483 (v1)
- ALOpsAppLicenseCheck: when LoadFrom cannot load the Types assembly, the task falls back to LoadFile (the v2.483 behaviour) and logs "*** LoadFrom failed for BC Types DLL, falling back to LoadFile" — BC 29 cannot end up worse than in v2.483 (v1)
- ALOpsAppLicenseCheck: Windows PowerShell sessions (pwsh input disabled) are unaffected — LoadFile and LoadFrom behave identically there (v1)
- ALOpsAppLicenseCheck: no pipeline or license change is needed to pick up the fix (v1)
[v2.483] - 2026-09-21¶
- All Tasks: Business Central 29 (NextMajor) containers now load the management module correctly — BC 29 ships Microsoft's pure-PowerShell management modules (.psd1 + .psm1) in Service\Admin next to a .NET 10 binary that imports in neither Windows PowerShell 5.1 nor PowerShell 7, so ALOps now imports the module manifest instead of the DLL (GitHub #1016, #998) (v1 and v2)
- All Tasks: fixes "Could not load file or assembly 'Microsoft.Data.SqlClient, Version=6.0.0.0' ... Uncaught exception during type initialization (0x80131534)" when a task loads the management module of a BC 29 container in a PowerShell 7 session (GitHub #1016) (v1)
- All Tasks: fixes "Could not load file or assembly 'System.Runtime, Version=10.0.0.0'" when a task loads the management module of a BC 29 container in a Windows PowerShell session (v1)
- All Tasks: BC 29 no longer requires PowerShell 7 — the module manifest imports in Windows PowerShell 5.1 as well as in PowerShell 7, so the pwsh input is optional again (v1)
- All Tasks: the automatic switch to a PowerShell 7 container session for BC 29+ containers, introduced in v2.482, is removed — the session follows the pwsh input again (v1)
- All Tasks: the alops_pwsh_autodetect pipeline variable introduced in v2.482 is no longer used and can be removed from pipelines (v1)
- All Tasks: container sessions no longer open an extra probe session with two recursive Service folder scans before connecting to the container (v1)
- All Tasks: ALOps no longer enables PowerShell remoting inside a BC 29 container as a side effect of the PowerShell 7 auto-switch (v1)
- All Tasks: the module manifest is only used when it is a real script module — a manifest that merely wraps the binary (BC 28 Admin folder) keeps the existing DLL handling (v1 and v2)
- All Tasks: the Apps management module follows the same rule — Microsoft.BusinessCentral.Apps.Management.psd1 is preferred on BC 29, with the DLL as fallback (v1 and v2)
- All Tasks: BC14 to BC28 containers and artifacts resolve the management module exactly as before — tier 1 and tier 2 are unchanged (v1 and v2)
- All Tasks: the Admin folder is matched as a path segment — a search path that merely contains the text "Admin", such as C:\Users\Administrator, no longer skews the management module lookup (v1 and v2)
- All Tasks: the task log shows "tier 3, Admin folder, PowerShell module manifest" when the BC 29 module manifest is used (v1 and v2)
- All Tasks: the "enable the pwsh input" warning is only logged on the binary fallback path, no longer for every BC 29 container (v1 and v2)
- All Tasks: the "management module not found" error no longer claims that BC 29 requires PowerShell 7 (v1 and v2)
- All Tasks: the assembly-resolve fallback is only attached when a binary module is imported, not for a module manifest (v1)
- All Tasks: Business Central 29 support — the BC management cmdlets are imported from Microsoft.BusinessCentral.Management.psd1 on BC 29 and later, and from Microsoft.Dynamics.Nav.Management.dll on BC 28 and earlier (GitHub #1016, #998) (v3)
- All Tasks: the same management module is chosen whether a task runs inside a container or against a local service tier (v3)
- All Tasks: with several Business Central versions installed side by side, the newest install wins (v3)
- All Tasks: the Apps management module is always taken from the same install as the management module, never paired across BC versions (v3)
- All Tasks: BC24 to BC28 keep loading the binary module — the Admin manifest of those versions only wraps the binary and is not used (v3)
- All Tasks: modules below a LegacyDlls folder are ignored by the management module lookup (v3)
- All Tasks: the task log shows which BC management module was imported — binary module or PowerShell module manifest — with its full path (v3)
- All Tasks: a missing management module fails with a message naming both module files that were searched (v3)
- All Tasks: unapproved-verb warnings from the BC modules no longer surface as pipeline warnings, so importing the module cannot mark a step as partially succeeded (v3)
- All Tasks: the Azure DevOps v3 tasks now pin ALOpsV3.Module 0.1.11608-alpha, which carries the v3 fixes in this release (v3)
- ALOpsAppClean: removing apps in a BC 29 container works in a Windows PowerShell session — the management module is imported from the module manifest (v1)
- ALOpsAppCompiler: the v2 compiler loads the management module from BC 29 artifacts through the module manifest — this path was broken on BC 29 with no workaround, not even the pwsh input (v2)
- ALOpsAppCompiler: management module lookup on a BC 29 service tier uses the module manifest (v1)
- ALOpsAppLicenseCheck: the Business Central Types assembly is loaded with Assembly.LoadFile instead of Import-Module, which cannot load the .NET 10 build shipped with BC 29 ("Could not load file or assembly 'System.Memory, Version=4.0.2.0'") (v1)
- ALOpsAppPublish: publishing into a BC 29 container works with the pwsh input disabled (v1)
- ALOpsAppPublish: fix "Unable to find type [Microsoft.Dynamics.Nav.Types.Apps.NavAppSyncState]" on BC 29 — the app sync state is compared as text ('Synced', 'VersionRemoved'), which behaves identically on BC14 to BC28 (v1)
- ALOpsAppPublish: the uninstall-before-sync check for apps in the VersionRemoved state works on BC 29 (v1)
- ALOpsAppPublish: the safety sync before a data upgrade works on BC 29 (v1)
- ALOpsAppPublish: fix "Microsoft.Dynamics.Nav.Management.dll not found" when publishing into a BC 29 container (v3)
- ALOpsAppPublish: local (non-Docker) mode uses the same BC 29 aware management module lookup as Docker mode (v3)
- ALOpsAppPublish: install_al_test_tool — test apps are de-duplicated correctly on BC 29, where the app id is a plain GUID; previously every test app could be skipped silently (v3)
- ALOpsAppSource: management module lookup against BC 29 artifacts uses the module manifest (v1)
- ALOpsAppTest: the management module inside a BC 29 container is imported from the module manifest (v1)
- ALOpsDockerExec: BC 29 containers run the script in a Windows PowerShell session again by default — the v2.482 switch to PowerShell 7 is undone; enable the pwsh input to opt in to PowerShell 7 (v1)
- ALOpsDockerExec: the BC management cmdlets (Get-NAVAppInfo, Publish-NAVApp, ...) are available to the script on BC 29 in both Windows PowerShell and PowerShell 7 sessions (v1)
- ALOpsDockerExec: fix the BC management cmdlets not being available to the script on BC 29 containers ("Microsoft.Dynamics.Nav.Management.dll not found") (v3)
- ALOpsDockerExec: the BC 29 module manifest is imported in the Windows PowerShell container session the task uses (v3)
- ALOpsDockerRemove: the SQL backup works on BC 29 containers in a Windows PowerShell session (v1)
- ALOpsDockerRemove: the SqlServer / SQLPS compatibility fallback stays in place for pipelines that enable the pwsh input (v1)
- ALOpsDockerRemove: fix publishsqlbackup failing on BC 29 with "Microsoft.Dynamics.Nav.Management.dll not found in container" (v3)
- ALOpsDockerRemove: the SQL backup resolves the server instance from the newest BC install instead of the first match (v3)
- ALOpsNuGetPublish: management module lookup against BC 29 artifacts uses the module manifest (v1)
- ALOpsPackageImport: the management module inside a BC 29 container is imported from the module manifest (v1)
- ALOpsPackageImport: fix RapidStart package import on BC 29 (v3)
- ALOpsPackageImport: fix RapidStart import via cmdlet on BC 27 and BC 28 — Microsoft.Dynamics.Nav.Apps.Management.dll was imported unconditionally, a file that no longer exists from BC 27 on (v3)
- ALOpsPackageImport: package error retrieval (Get-NAVConfigPackageError) works on BC 29 (v3)
- ALOpsPackageImport: Docker and local mode both use the BC 29 aware management module lookup (v3)
[v2.482] - 2026-09-15¶
- All Tasks: Business Central 29 (NextMajor) containers work again — BC 29 dropped Service\Management\Microsoft.Dynamics.Nav.Management.dll and only ships the PowerShell 7 build in Service\Admin, so every v1 task that loads the management module inside a BC 29 container failed with "Cannot bind argument to parameter 'Path' because it is an empty string" (GitHub #998) (v1)
- All Tasks: the Business Central management module lookup now has three tiers — BusinessCentral outside Admin, Microsoft.Dynamics.Nav for BC14 to BC28, and the BC29+ Admin folder — so BC14 to BC28 containers keep their current behaviour, including Windows PowerShell sessions (v1 and v2)
- All Tasks: container sessions detect a BC 29+ container and switch to PowerShell 7 automatically, even when the pwsh input is not enabled (v1)
- All Tasks: new alops_pwsh_autodetect pipeline variable — set it to false to keep the Windows PowerShell container session (v1)
- All Tasks: a warning is logged when only the PowerShell 7 build of the management module exists but the session runs Windows PowerShell — enable the pwsh input or install PowerShell 7 in the container (v1 and v2)
- All Tasks: a missing management module now fails with a clear message naming the search path, instead of an empty-path binding error (v1 and v2)
- All Tasks: the task log shows the resolved management module tier and its full path (v1 and v2)
- All Tasks: the Azure DevOps v3 tasks now pin ALOpsV3.Module 0.1.11592-alpha, which carries the v3 fixes in this release (v3)
- ALOpsAppClean: management module lookup inside the container updated for BC 29 (v1)
- ALOpsAppCompiler: management module lookup updated for BC 29 in the v2 compiler; the Apps management module import is now guarded when the DLL is absent (v2)
- ALOpsAppCompiler: allowed_publisher_names honours a publisher supplied by a governing directory.app.props.json (BC 2025 wave 2 and later) — fixes "Cannot bind argument to parameter 'Publisher' because it is an empty string" (GitHub #1012) (v3)
- ALOpsAppCompiler: publisher, name, runtime and the other directory.app.props.json properties are merged into the effective app manifest — app.json wins when both define a property, and $(variable) tokens from the variables section are resolved, including chained variables (v3)
- ALOpsAppCompiler: app.json is never written with values inherited from directory.app.props.json; only the compiled result uses them (v3)
- ALOpsAppCompiler: the compilation order, group labels and the App Information log show the effective publisher and version of governed apps instead of empty values (v3)
- ALOpsAppCompiler: appfilenametemplate placeholders %APP_PUBLISHER% and %APP_NAME% use the effective values, so the output file name no longer silently loses the publisher (v3)
- ALOpsAppCompiler: Parallel mode matches and collects the compiled .app of a governed app correctly — the publisher mismatch previously caused the package to be skipped (v3)
- ALOpsAppCompiler: Parallel mode now enforces allowed_publisher_names as well; disallowed projects fail before the workspace is created and their app.json is left untouched (v3)
- ALOpsAppCompiler: an app without a publisher in app.json or in a governing directory.app.props.json fails with an actionable error when allowed_publisher_names is set, instead of a binding exception (v3)
- ALOpsAppCompiler: a runtime supplied by directory.app.props.json is recognised, so the "track_source_build_metadata requires runtime >= 12" warning no longer fires for governed apps (v3)
- ALOpsAppCompiler: the log states which values were inherited from directory.app.props.json, and warns when an unresolved $(variable) remains in name or publisher (v3)
- ALOpsAppCompiler: duplicate-app detection no longer throws when a version contains an unresolvable $(variable) (v3)
- ALOpsAppCompiler: allowed_publisher_names help text documents the directory.app.props.json support (v3)
- ALOpsAppCompiler: auto_resolve_ms_symbols resolves individual Microsoft apps localized-first — the localized package Microsoft.
. .symbols is preferred and the W1 package is used only when no localized version matches bc_version (GitHub #1008) (v3) - ALOpsAppCompiler: fixes AL1022 for German localisation apps such as E-Document for Germany, ELSTER VAT Localization for Germany and Intrastat DE on bc_localization de with bc_version 28.x, whose W1 packages are frozen at 27.0 (v3)
- ALOpsAppCompiler: a Microsoft dependency package is only downloaded when one of its versions matches bc_version; stale candidates are skipped at info level and a single warning is logged when nothing matches (v3)
- ALOpsAppCompiler: bc_localization is trimmed and case-insensitive for individual Microsoft apps as well (blank or w1 = W1) (v3)
- ALOpsAppCompiler: HTTP 404 responses from the MSSymbols feed are no longer retried — about 6 seconds and two warnings less per missing package, which also speeds up AppSource dependency probing (v3)
- ALOpsAppCompiler: bc_localization help text documents the localized-first resolution of individual Microsoft apps (v3)
- ALOpsAppPublish: publishing into a BC 29 container works again — the management module is found in Service\Admin and loaded in a PowerShell 7 session (v1)
- ALOpsAppTest: management module lookup inside the container updated for BC 29 (v1)
- ALOpsDockerExec: management module lookup inside the container updated for BC 29 — fixes "Cannot bind argument to parameter 'Name' because it is an empty string" (v1)
- ALOpsDockerRemove: management module lookup for the SQL backup updated for BC 29 (v1)
- ALOpsDockerRemove: SQL backup works in a PowerShell 7 container session — the SqlServer or SQLPS module is loaded through Windows PowerShell compatibility when Invoke-Sqlcmd is not available (v1)
- ALOpsNuGetPublish: fix 401 (Unauthorized) when pushing to an Azure DevOps Artifacts feed — nuget_username and nuget_password are now sent as basic authentication, as the v1 task did (GitHub #1013) (v3)
- ALOpsNuGetPublish: nuget_username defaults to 'AzureDevOps' when only nuget_password is supplied (v3)
- ALOpsNuGetPublish: nuget_source_apikey and basic authentication can be combined — the API key is sent alongside the credentials (v3)
- ALOpsNuGetPublish: the feed is registered in an isolated, per-push NuGet.Config in the agent temp folder that is deleted after the push — the agent's user-level NuGet.Config is no longer modified and no secret reaches a command line (v3)
- ALOpsNuGetPublish: fix the package icon being dropped from every .nupkg ("Number of entries expected in End Of Central Directory does not correspond to number of entries in Central Directory") — the logo is now read from the .app through the NAVX package reader and packaged as logo.
(v3) - ALOpsNuGetPublish: jpg and jpeg logos are declared in the package content types (v3)
- ALOpsNuGetPublish: help text for nuget_username, nuget_password and nuget_source_apikey explains Azure DevOps Artifacts authentication (System.AccessToken with Contributor rights on the feed, or a PAT with Packaging Read & write scope) (v3)
- ALOpsPackageImport: management module lookup inside the container updated for BC 29 (v1)
[v2.481] - 2026-09-08¶
- All Tasks: v3 tasks in the Azure DevOps extension now pin the ALOpsV3.Module version that shipped with the release, instead of resolving the newest prerelease on PSGallery on every run — every agent runs identical module code (v3)
- All Tasks: new alops_module_latest pipeline variable — set it to any value to override the pin and pull the newest ALOpsV3.Module prerelease from PSGallery (v3)
- All Tasks: GitHub Actions keep resolving the newest ALOpsV3.Module prerelease on every run (v3)
- All Tasks: ALOpsV3.Module installation is serialised with a machine-wide lock, so parallel jobs under the same agent account no longer race on the module folder (GitHub #997) (v3)
- All Tasks: ALOpsV3.Module installation is retried three times with a 15 second delay on transient PSGallery or network failures (v3)
- All Tasks: in latest mode, when the PSGallery lookup fails the newest already-installed ALOpsV3.Module is imported instead of failing the step (v3)
- All Tasks: the task log shows the loaded ALOpsV3.Module version including its prerelease tag and the configured pin (v3)
- ALOpsAdminCenterAPI: new set_update_window interaction to set the environment update window with update_window_start, update_window_end and update_window_timezone (GitHub #990) (v1 and v3)
- ALOpsAdminCenterAPI: new environment_update_schedule interaction to select the target Business Central version and date for the next environment update — refresh a sandbox with environment_copy and schedule its update in the same pipeline (v1 and v3)
- ALOpsAdminCenterAPI: new update_target_version input — leave empty to select the latest released (GA) version (v1 and v3)
- ALOpsAdminCenterAPI: new update_datetime input (ISO 8601, UTC assumed) — leave empty to update as soon as the update window allows; a date without time is scheduled at 12:00 UTC (v1 and v3)
- ALOpsAdminCenterAPI: new ignore_update_window input to start the scheduled update at the selected date-time even outside the update window (v1 and v3)
- ALOpsAdminCenterAPI: a clear hint is logged when the Admin Center rejects the schedule because an update is already planned outside the new window (ScheduledUpgradeConstraintViolation) — run set_update_window before environment_update_schedule (v1 and v3)
- ALOpsAdminCenterAPI: api_version input now also available on v3 (default v2.28); set_update_window requires API v2.13 or later (v3)
- ALOpsAdminCenterAPI: fix set_application_insightskey ignoring the supplied key — the application_insightskey input was read under the wrong name (v1)
- ALOpsAdminCenterAPI: fix set_application_insightskey overwriting the ALOPS_BCSAASENV_LOCATION variable; the key is now published as ALOPS_BCSAASENV_INSIGHTKEY (v1)
- ALOpsAdminCenterAPI: maxtries is now enforced while waiting for environment copy, rename and delete — a timeout fails the step with a clear message instead of polling forever (v1)
- ALOpsAdminCenterAPI: maxtries is now enforced while waiting for app_install and app_uninstall operations (v1)
- ALOpsAppCompiler: al_analyzer accepts custom analyzers by DLL file name (e.g. BusinessCentral.LinterCop.dll, ALCops.LinterCop.dll) located anywhere below the working folder (GitHub #994) (v1)
- ALOpsAppCompiler: with usedocker enabled, custom analyzer DLLs found on the host are copied into the container automatically (v1)
- ALOpsAppCompiler: fix custom analyzer copy into the container failing with "Cannot find path 'C:\Users\ContainerAdministrator\Documents...dll'" (v1)
- ALOpsAppCompiler: analyzer names are trimmed and a folder prefix such as .alcops/ALCops.LinterCop.dll is accepted (v1)
- ALOpsAppCompiler: analyzer lookup supports the flat AL Language 18 / BC29 VSIX layout where the cops sit directly in extension\bin — fixes NextMajor and alternativevsixurl 'Latest' builds failing with "Cannot find path '...\bin\Analyzers\'" (GitHub #1007) (v1 and v2)
- ALOpsAppCompiler: additionalprobingpaths — relative paths are resolved against the working folder (inside the container when usedocker is enabled) instead of the compiler's current directory (v1)
- ALOpsAppCompiler: additionalprobingpaths that do not exist are skipped with a warning instead of aborting the compiler with AL1018 (v1)
- ALOpsAppCompiler: a non-zero alc exit code now always fails the step with the compiler output, instead of "Compile OK" followed by "Cannot find path '...app'" (v1)
- ALOpsAppCompiler: with usedocker enabled, a failed compile inside the container fails fast on the host with the compiler errors, before the artifact transfer (v1)
- ALOpsAppCompiler: the log states when setup_working_folder is disabled and the container copy made by ALOps Docker Wait is used (v1)
- ALOpsAppCompiler: help text for al_analyzer, additionalprobingpaths and setup_working_folder documents the working-folder rules (v1)
- ALOpsAppCompiler: analyzers input accepts the built-in names CodeCop, UICop, AppSourceCop and PTECop (alias PerTenantExtensionCop), NONE, or a path to a custom analyzer DLL (v3)
- ALOpsAppCompiler: analyzer DLLs are resolved across AL tool package layouts (parent folder and runtime subfolders), so future repackaging by Microsoft no longer breaks code analysis (v3)
- ALOpsAppCompiler: an analyzer that cannot be resolved now fails the build instead of silently compiling without code analysis (v3)
- ALOpsAppCompiler: Parallel mode normalises analyzer names the same way as Serial mode (PerTenantExtensionCop → PTECop, ${AnalyzerFolder} paths stripped) (v3)
- ALOpsAppCompiler: Parallel mode warns that custom analyzer DLLs require compilation_mode Serial, instead of failing on the altool call (v3)
- ALOpsAppCompiler: AL tool installation no longer aborts when the agent lacks the privilege to create the Analyzers symbolic link (non-elevated self-hosted agents) (v3)
- ALOpsAppCompiler: info-level diagnostics (e.g. CodeCop AA0247, LinterCop and custom cops) are shown in the pipeline log again, regardless of outputalclogs (GitHub #1002) (v3)
- ALOpsAppCompiler: on GitHub Actions, info diagnostics are rendered as notice annotations with file, line and column (v3)
- ALOpsAppCompiler: on Azure DevOps, info diagnostics are logged as 'path(line,col): message' lines and never mark the step as partially succeeded (v3)
- ALOpsAppCompiler: outputalclogs now only controls the raw compiler output and pragma-suppressed or ignore-listed diagnostics — error, warning and info diagnostics are always shown (v3)
- ALOpsAppCompiler: alc_error_log — console diagnostics missing from the alc /errorlog file are merged into
_ALCErrorLog.txt, so the artifact always matches the log (v3) - ALOpsAppCompiler: alc_error_log now works in Parallel mode — ALOps generates the per-app ALCErrorLog file from the parsed diagnostics, since altool has no errorlog option (v3)
- ALOpsAppCompiler: the ALCErrorLog artifact is published even when the compile fails (v3)
- ALOpsAppCompiler: a stale ALCErrorLog file from a previous run is deleted before compiling (v3)
- ALOpsAppCompiler: rule ids from third-party analyzers keep their original casing in the log and in the error log (v3)
- ALOpsAppCompiler: fix Parallel compilation with fail_on_any crashing altool 17.x on agents without an attached console ("The handle is invalid") (v3)
- ALOpsAppCompiler: fix bc_version NextMajor / NextMinor on Linux and macOS agents failing with "downloaded package is corrupt" — BC artifacts are now unpacked with 7zz / 7z / 7za or Expand-Archive on non-Windows agents (GitHub #995) (v3)
- ALOpsAppCompiler: artifact unpack errors now include the underlying exception message instead of the generic "corrupt" text (v3)
- ALOpsAppCompiler: MS symbol resolution falls back to the W1 package (Microsoft.Application.symbols) when the feed has no localized package for the country, e.g. IE (GitHub #999) (v3)
[v2.480] - 2026-09-03¶
- All Tasks: a step that logs an error but never declares a result is now reported as failed instead of silently succeeding (v3)
- All Tasks: logged warnings now mark a step as partially succeeded (orange / SucceededWithIssues) on both Azure DevOps and GitHub Actions when no explicit result is set (v3)
- ALOpsAppCompiler: new publishxlif input to publish the generated XLIF translation files (*.g.xlf) as an 'ALOpsXLIF' build artifact, enabling the TranslationFile compiler feature (v3)
- ALOpsAppCompiler: fail_on_any now also promotes info-level compiler diagnostics to errors, and raises the compile log level in Parallel mode so those diagnostics are captured (v3)
- ALOpsAppCompiler: fix diagnostic parsing for rule codes longer than two letters (e.g. PTE0001)
- ALOpsAppPublish: per-invocation staging folder for Docker app publishing, so parallel steps on the same agent no longer collide (v3)
- ALOpsAppSign: per-invocation staging folder for Docker app signing and signature verification (v3)
- ALOpsAppSource: SAS tokens are redacted from the task log
- ALOpsAppSource: more reliable package upload handling for Azure Front Door blob URIs (v1 and v3)
- ALOpsDockerRemove: publishsqlbackup and zipsqlbackup inputs restored, plus a new sqlbackup_path output pointing at the created backup (v3)
- ALOpsExtensionAPI: altool_package_version is now required and defaults to 18.0.33.65164-beta
[v2.479] - 2026-07-14¶
- ALOpsAdminCenterAPI: new api_version input to override the Business Central Admin Center API version (e.g. 'v2.28') — leave it empty to use the ALOps default, which now tracks the latest available API version
- ALOpsAppCompiler: new updateplatform and updateapplication inputs (v1, v2 and v3) to update the 'platform' and 'application' versions in app.json before compilation — on v3 a governing directory.app.props.json is updated as well
[v2.478] - 2026-06-25¶
- ALOpsAppCompiler: bc_version help now documents the Major.Minor format and the NextMajor / NextMinor values for building against the latest Microsoft insider release (insider EULA accepted automatically)
- ALOpsAppCompiler: fix incorrect NuGet symbols resolution
- ALOpsAppSource: Seller ID input is now optional (previously required) — leave it empty to omit the Partner Center publisher header
- ALOpsAppSource: fix "ReadAsStringAsync cannot access a disposed object" exception during AppSource publishing
- ALOpsAppTest: fix "testSuite and extensionId conflict" error when the test suite is left blank (now defaults to DEFAULT)
- ALOpsDockerCreate: default the BC artifact country to w1 and exclude the non-country 'core' artifact
- ALOpsDockerCreate: fail fast with a clear error when BC artifact extraction produces no files
- ALOpsExtensionAPI: send an If-Match concurrency token when uploading extensions, including Basic-auth uploads
- ALOpsInfo: informational errors and warnings no longer mark the pipeline task as failed or partially succeeded
[v2.477] - 2026-06-12¶
- All Tasks: completes the v3 task surface — most tasks now ship a v3 generation on Azure DevOps and GitHub Actions
- All Tasks: enhanced logging across tasks
- All Tasks: Write-Host color fallback for headless Linux agents
- All Tasks: improved .NET Core SSL verification handling
- ALOpsAICli: new task (v3) for running AI coding CLIs (Claude Code, Codex, Copilot CLI) inside pipelines
- ALOpsAppCompiler: new build configuration and diagnostics parameters
- ALOpsAppCompiler: new parameters for runtime updates and resource exposure policies
- ALOpsAppPublish: validate installed extension by AppID instead of PackageID
- ALOpsAppPublish: option to (re)publish extensions with the same or newer version
- ALOpsAppPublish: improved logging of installed extension information
- ALOpsAppSource: new Seller ID input for Partner Center API calls
- ALOpsDockerExec: container retrieval falls back to the TFSBuild label when no container is found
- ALOpsExtensionAPI: improved deployment status checks and error handling
[v2.476] - 2026-05-12¶
- All Tasks: streamlined Azure credential setup with improved error handling
- All Tasks: improved SSL/TLS handling for PowerShell Core (force TLS, SSL bypass)
- ALOpsAppCompiler@3: report failed compiler output in the overview page
- ALOpsAppCompiler@3: clean up log files after compilation
- ALOpsAppCompiler@3: fix compilation failure when using the AppSourceCop analyzer
- ALOpsAppCompiler@3: artifact rename
- ALOpsAppSign: new app signing file filter
- ALOpsDockerCreate: new NAV artifact app filter
[v2.475] - 2026-04-03¶
- All Tasks: first wave of v3 tasks, available side-by-side on Azure DevOps and GitHub Actions
- All Tasks: streamlined PowerShell Core usage (removed the per-task 'pwsh' option)
- All Tasks: improved task help text and parameter descriptions, with deprecated parameters now flagged
- ALOpsALDoc: new task (v3) for generating AL documentation
- ALOpsAgentMaintenance: new v3 generation
- ALOpsAppCompiler: new v3 generation
- ALOpsAppCompiler: hardened assembly resolution for multi-app builds (handler cleanup, exclude native-platform subfolders to prevent BadImageFormatException)
- ALOpsAppCompiler: fix stack overflow in alc.exe (Compile v2)
- ALOpsAppCompiler: improved implicit System/Application symbol dependency resolution
- ALOpsAppCompiler: log full names of localized apps during compilation
- ALOpsAppCompiler: warn instead of fail when app manifest retrieval errors
- ALOpsAppLicenseCheck: new v3 generation
- ALOpsAppLicenseCheck: new [expiry_checkonly] parameter for conditional expiry validation
- ALOpsAppPublish: clean unrecognized file attributes before cross-session copy
- ALOpsAppSign: confirmation message after Sign Tool installation
- ALOpsAppSource: OAuth token caching for AppSource publishing
- ALOpsAppSymbol: new task (v3) for creating symbol-only packages
- ALOpsBCReplay: new v3 generation
- ALOpsDockerExec: fix Business Central / NAV program folder paths and folder existence checks in containers
- ALOpsExtensionAPI: new FORCE sync mode to publish extensions with the same or newer version
- ALOpsInfo: new v3 generation
- ALOpsLicenseImport: streamlined license retrieval with improved error handling and logging
- ALOpsNugetDownload: new v3 generation
[v1.474] - 2026-02-03¶
- All Tasks: pre-load assemblies to prevent version conflicts with the PowerShell runtime
[v1.473] - 2025-10-14¶
- All Tasks: ALOps Code Analysis: update for BC v27 compatibility
- All Tasks: Performance: ProgressPreference defaults to SilentlyContinue
- ALOpsAdminCenterAPI: allow deletion of production environments
- ALOpsAdminCenterAPI: Get/Set ApplicationInsightKey
- ALOpsAdminCenterAPI: New action that allows settings "Security Group" settings on an environment
- ALOpsAdminCenterAPI: Validate GUID for 'Set Security Group'
- ALOpsAppCompile: false warning op compilation started, improved log processing
- ALOpsAppPublish: new option [keep_app_filename] for keeping filename original in the package
- ALOpsAppPublish: Validate existing packages on AppID instead op PackageID
- ALOpsAppSource: maxtries and timeout now configurable
- ALOpsAppSource: new boolean [skip_version_change], can be used to publish AppSource hotfixes or updates on previous versions
- ALOpsExtensionAPI: Warning if DEV-Scope and no Devport deploy
[v1.471] - 2025-07-08¶
- ALOpsAppCompile: die /errorlog of /continuebuildonerror
- ALOpsAppCompile: v1 en v2: suppressWarnings to JSON Array
- ALOpsDockerWait: skip for powershell 7
- ALOpsNugetDownloa: new task
- ALOpsNugetPublish: new task
[v1.470] - 2025-06-04¶
- ALOps Powershell: Remove Powershell 7 stub from DockerWait and DockerExec
- ALOpsDocker: exclude builds
- Bump BcContainerhelper to v6.1.6
[v1.469] - 2025-03-13¶
- ALOpsAgentMaintenance: Docker cleanup steps are ignored if docker is not installed
- ALOpsAppCompile: improvement for Windows 10 / 11 concerning NonInteractive mode
- ALOpsAppCompiler@1: bugfix for half-defined resourceExposurePolicy objects
- ALOpsAppCompiler@1: GenerateReportLayouts compiler option can be set
- ALOpsAppCompiler@2: ALCacheFolder is now multi-root, preventing system apps from beeing overwriten
- ALOpsAppCompiler@2: bugfix for half-defined resourceExposurePolicy objects
- ALOpsAppCompiler@2: GenerateReportLayouts compiler option can be set
- ALOpsAppSign: Additional support for HSM / Azure / Trusted signing
- ALOpsExtensionAPI: Failed previous attemps will be retried, no new build required
- ALOpsLicenseCheck: Namespaces are now fully included in the license check
- ALOpsPackageImport@2: New v2 Task for processing Configuration Packages, fully supporting API
[v1.468] - 2024-11-22¶
- ALOpsAgentMaintenance: Improve delete Empty Folders
- ALOpsAgentMaintenance: Improve delete VSIX cache
- ALOpsAppCompile@1: Update runtime
- ALOpsAppPublish: bugfix, unpublish in multitenant with only one tenant
- ALOpsAppSourceDeploy: AutoPromote option
- ALOpsExtensionAPI: Prevent possible freezing with DevPortDeploy
[v1.467] - 2024-08-31¶
- All Tasks: Global boolean parameter [alops_pwsh] to enabled powershell 7 over all tasks that are pwsh enabled
- ALOpsAppCompile@2: Ability to set Runtime in app.json via parameter [updateruntime]. Use 'HIGHEST' for maximum supported runtime.
- ALOpsAppPublish: multi-tenant improvement
- ALOpsExtensionAPI: Added dev_dependencypublishingoption with options [none / default / ignore / strict]
- ALOpsExtensionAPI: added parameter [schedule] with options [current / nextminor / nextmajor]. Requires API Version 2.0
- ALOpsExtensionAPI: added parameter [schema_sync_mode] with options [add / forcesync]. Requires API Version 2.0
[v1.466] - 2024-08-21¶
- ALOpsAgentMaintenance: Improved delete routine, added failsafe in case of failure
- ALOpsAppCompile: added additional Probing Paths for building Base Application
- ALOpsAppCompile: BuildInfo Url corrected
- ALOpsAppCompile@2: Build tags for app names
- ALOpsAppCopy: Improved performance in tenant loop
- ALOpsAppLicenseCheck: Solved issue with System.Reflection.DispatchProxy
- ALOpsAppPublish: Added datacache for several static loads, improves performance
- ALOpsAppPublish: ALTool parsing
- ALOpsAppSource: Applied filter for BusinessCentral Apps only
- ALOpsDockerCreate: Double LTSC Tag
- ALOpsExtensionAPI: DEVPort Deploy freeze fix tryout for AsyncPost
- ALOpsExtensionAPI: v2.0 endpoint compatibel
- ALOpsLicenseCheck: Exclude ranges bugfix powershell 7
- AppLicenseCheck: Expiry Date Check. Use parameters 'expiry_text' (text at beginning of line), 'expiry_dateformat' (format to use for parsing), 'expiry_dayswarning' (daycount for generating warning)
- Get-AppOrder: ALTOOL Implementation
[v1.465] - 2024-05-23¶
- All Tasks: Allow translation only apps
- All Tasks: Improved assembly resolve for BC v24
- All Tasks: Overrule of BC-Artifacts used for common tasks. Environment variable 'alops_overrule_bcartifactversion'. Format 'type:version:country'. Exmaple 'onprem:14:w1'
- ALOpsAppCompile@2: Auto correct corrupted VSIX
- ALOpsAppPublish: ALTOOL for Manifest extraction
- ALOpsAppTest: allow for tests to be executed. Use bolean parameter 'allow_zero_tests'
- ALOpsDockerCreate: Added 'alternativeartifacturl'
- ALOpsDockerCreate: Double LTSC Tag
- ALOpsDockerWait: Exclude ".git" folder transfering into container. Set boolean parameter "exclude_git_folder" to true
- ALOpsDockerWait: Exclude GIT Folder from ZIP. Set boolean parameter "exclude_git_folder" to true
- ALOpsLicenseCheck: Exclude ranges bugfix powershell 7
[v1.464] - 2024-04-24¶
- All Tasks: Fix for Powershell 7 String.Split issue
[v1.463] - 2024-03-12¶
- All Tasks: NAV Management DLLs Renamed to Business Central
- All Tasks: Use ALTool for app information where possible
- ALOpsAppCompile: Performance improvement / Minimize use of Get-BCArtifactUrl
- ALOpsAppCompile@2: Use ALTool when possible
- ALOpsAppLicenseCheck: Exclude temporary tables from check
- ALOpsDockerExec: now v24 compatibel
[v1.462] - 2024-02-06¶
- ALOpsAdminCenter: Force API calls in en-US format
- ALOpsAppCompile: Added option to fail on any info/warning/error log
- ALOpsAppCompiler: Allow use of external ruleset (HTTPS)
- ALOpsAppSource: solved issue with apps without dependencies
- ALOpsAppValidation: Enabled run without license file
- ALOpsExtensionAPI: force API calls in en-US format
- Bump BcContainerHelper to v6.0.5
- Licensing: multiple PerRun subscriptions per license
[v1.461] - 2023-11-20¶
- All Docker Tasks: Improved error catching on docker command, fixed the ALOpsDockerWait timeout
- ALOpsAppRuntimePackage: Artifacts name can now be manipulated via parameter "appfilenametemplate", 'BC Version' had to be inserted into the template
- ALOpsAppSourceDeploy: Version update
- ALOpsDockerCreate: Added parameter 'usegenericImage'
- ALOpsLicenseCheck: Added check on Pages object type
- ALOpsLicenseCheck: Improved processsing, all apps are processed before failing pipeline
- ALOpsLicenseCheck: Specific Object-Types can be excluded via: exclude_tables, exclude_codeunits, exclude_pages, exclude_reports, exclude_xmlports, exclude_queries
- ALOpsLicenseCheck: Warning output is collected into environment variable "ALOPS_CHECKLICENSE_OUTPUT"
- ALOpsOpenAPI: Corrected Action Names with "Dynamics.NAV"
[v1.460] - 2023-10-31¶
- All Tasks: Migrate from insider SAS token to insider EULA
- ALOpsAdminCenterAPI: update single app with filter
- ALOpsAppCompile v1 v2: SetTrackSourceAndBuildMetadata runtime
- ALOpsAppCompile@2: Track Source via new parameter "track_source_build_metadata", default TRUE
- ALOpsAppSource: improve AZ module loading
[v1.459] - 2023-10-04¶
- All: Bump BcContainerHelper version to v5.0.7
- ALOpsAgentMaintenance: improved delete error handling, continue cleanup on failure
- ALOpsAppCompile: Extra parameter [allowed_publisher_names] for checking on Allowed Publisher Names
- ALOpsAppCompile: read AppManifest in read-only mode, improving multi-processing
- ALOpsAppLicenseCheck: extra boolean parameter [warning_only], only report as warning does not fail pipeline
- ALOpsExtensionAPI: Extra logging on authentication requests for DEV-Port deploy
- ALOpsExtensionAPI: Force API Language en-US, should solve endless status-check
[v1.458] - 2023-07-26¶
- All Tasks: added "HelpMarkDown" for all parameters, improved documentation
- All Tasks: Global Parameter [alops_disable_buildtags] for disabling build tags
- ALOpsAdminCenterAPI: Auto update AppSourceApps in BC SaaS Environment
- ALOpsAppCompile@1: Fixed ApplicationVersion template parsing
- ALOpsAppCompile@2: Improved handling of Invalid Characters in naming
- ALOpsAppPublish: Improved handling of Invalid Characters in naming
- ALOpsAppTest: Validation check on existings test, fail pipeline if no tests
[v1.457] - 2023-06-17¶
- ALOpsAppCompile: better error handling Get-ArtifactUrl, next-major catch during release
- ALOpsAppCompile: extra parameter ArtifactUrl overrule
- ALOpsAppCompile: improved error handling
- ALOpsAppCompile@1/@2: Download Artifact url once, improved performance
[v1.456] - 2023-04-15¶
- ALOpsAppCompile: VSIX Versions 'LATEST' / 'PRERELEASE' / SPECIFIC
[v1.455] - 2023-03-18¶
- All Tasks: BC v22 compatibility
- All Tasks: Bump BcContainerHelper to latest version v4.0.14
- ALOpsAppCompile @1/@2: Added parameter for enabling "External Rulesets "
- ALOpsAppCompile: Custom Linter json
- ALOpsAppLicenseCheck: Solved bug with Permissions masks for BCLicense files
- ALOpsAppTest: fixed ability to set filter on TestCodeunits to run
- ALOpsAppValidation: Increase logging on License import
[v1.454] - 2022-11-29¶
- All tasks: optimized loading of NAV Management DLLs and other modules
- ALOpsAppCompile: Added string parameter 'ignorepragmas', when not blank ignores all PRAMA's set in code.
- ALOpsAppCompile: Optimised Get-ArfitactUrl, runs only once per task.
- ALOpsAppCompile@1: Added 'AppId' for App-Downloading from NST, proper name/publisher resolve.
- ALOpsAppLicenseCheck: Can parse .bclicense files now, .flf files can still be used.
- ALOpsAppPublish: New parameter [blocksymbolsonly] with default 'true'. Check for SymbolsOnly app before publish.
- ALOpsDockerRemove: fixed some parameters not visible in visual editor
- ALOpsExtensionAPI: New parameter [blocksymbolsonly] with default 'true'. Check for SymbolsOnly app before publish.
- ALOpsOpenAPI: When parameter "exclude_company_paths" is set to 'true', Company specific paths are removed. Default Company can be set via Authentication (Header)
[v1.453] - 2022-10-12¶
- ALOpsAppCompile: Expand appversiontemplate with Major/Minor application from app.json. (* = Build Nr / ? = Original Version / A = Application Version)
- ALOpsAppCompile: override global preprocessor symbols in app
- ALOpsAppCompile: Remove internalsVisibleTo property from app.json
- ALOpsAppPublish: Improved Get-AppOrder based on AppID
- ALOpsExtensionAPI: Added SchemaSyncMode option
- ALOpsExtensionAPI: Ignore Server 503 error when checking status
- General: improved generic assembly loading
[v1.451] - 2022-07-30¶
- ALOpsAppLicenseCheck: Validate App(s) against License
- ALOpsAppPublish: Sync-CheckOnly before Publish / Breaking Change detection
- ALOpsExtensionAPI: Added Client Certificate Authentication
- ALOpsExtensionAPI: DEV-Port Deploy enabled by specifying the additional parameter [dev_endpoint]
- ALOpsOpenAPI: Added Client Certificate Authentication
[v1.450] - 2022-07-03¶
- ALOpsAppCompile: Custom CodeCop libraries
- ALOpsAppCompile: Optimize Get Latest VSIX
- ALOpsAppcompile: Use 64bit ALC.EXE when available
- ALOpsAppPublish: Allow publishing same version of an App
- ALOpsAppPublish: Increased default delays and retry count
- ALOpsAppTest: bugfix, set authentication to AAD instead of AccessControlService
- ALOpsAppTest: Testrunner Codeunit can be set with parameter [testrunnercodeunitid]
- ALOpsOpenAPI: Major performance improvents
[v1.449] - 2022-05-18¶
- ALOpsAgentMaintenance: New parameter boolean 'pruneimagesosbased', allows for cleanup of images based on old OS
- ALOpsAppCompiler: Extra parameter 'suppressWarnings' allows for overwriting in the app.json. Options: "KEEP","NONE", "
" - ALOpsAppCompiler@2: Improved Assembly resolve, fixes the missing "System.Collections.Immutable" reference
- ALOpsAppCompiler@2: Ruleset not being applied when settings.json is missing
- ALOpsDockerCreate: OS Detection for Windows Server 2019 (2022)
- ALOpsExtensionAPI: More Resilient on Deployment, delay and max retries can be configured with [checksecondsdelay] and [maxtries]
- ALOpsInfo: Add feature to detect highest used Application version in any "App.json" file, saved in variable "ALOPS_APPLICATION_VERSION", "ALOPS_APPLICATION_VERSION_MAJOR", "ALOPS_APPLICATION_VERSION_MINOR"
[v1.448] - 2022-04-21¶
- ALOpsInfo: Add feature to detect highest used Application version in any "App.json" file, saved in variable "ALOPS_APPLICATION_VERSION"
- ALOpsOpenAPI: Generate OpenAPI (Swagger) documentation based on Business Central API's
[v1.447] - 2022-01-24¶
- ALOpsAppCompile: Allow values TRUE/FALSE for setting ResourceExposurePolicy
- ALOpsAppCompile: bugfix concerning disabling parallel compile
- ALOpsAppCompile: build in compatibility with applicationInsightsConnectionString
- ALOpsAppCompile: ignore Resourceexposurepolicy on runtime <= 8.0
[v1.446] - 2021-11-25¶
- ALOpsAppCompile (v1/v2): Latest VSIX can be used by specifing "LATEST" in the alternative_vsix_path
- ALOpsAppCompile: Disable MAXDEGREEOFPARALELISM when 'Alops_DisableParallelCompile' is enabled
- ALOpsAppCompile: ResourceExposurePolicy - Auto remove ShowMyCode
- ALOpsAppCompile: Weeknumber correction, Activates on 1/1/2022
- ALOpsAppCompiler@2 - Provide support for resourceExposurePolicy
- ALOpsAppSign: improved NavSip setup for Azure Devops Hosted Agents
- ALOpsDockerCreate: catch pull failure for remote repositories with login
- ALOpsDockerStart: Map parameter for TaskScheduler
- ALOpsExtensionAPI: Error-handling on failure
- ALOpsExtensionAPI: improved failure detection, exit on timeout
[v1.445] - 2021-09-09¶
- ALOpsAgentMaintenance: Additional cleanup of temporary folder with format ????????.???
- ALOpsAppCompile: ignore download previous if AppSourceCop is not enabled
- ALOpsAppCompile: Parallel compile can now be disabled using boolean Environment Variable [Alops_DisableParallelCompile]
- ALOpsAppCompile: Solved locking issue on VSIX extract
- ALOpsCompile: Print full ALC output on failure exitcode
[v1.444] - 2021-07-05¶
- All Tasks: The Artifact Publish Folder for DevOps can be manipulated via Environment variable [Alops_ArtifactPublishFolder], defaults is [Dynamics 365]
- ALOpsAppCompile: Improved parsing of BC Compile logs
- ALOpsAppCompile: Ruleset patch matching with DefaultWorkingDirectory
- ALOpsAppCompiler@2: Added [updatebuildnumber] conform v1. Updates the Build number with the App version in the pipeline.
- ALOpsAppPublish: Implemented auto Uninstall of Apps when "Force Sync" is used
- ALOpsAppSign: Can batch sign Apps compiled with ALOpsAppCompiler, use parameter [batchsigncompiledapps] to enabled
- ALOpsAppValidation: Get countries from AppSourceCop.json is parameter [countries] is empty/blank
- ALOpsDockerStart: Added [license] parameter, works with local path or Url
- ALOpsDockerStart: Improved Copy-Addins method for larger Add-ins, fixed the PermissionDenied exception.
[v1.443] - 2021-06-07¶
- All Tasks: Fixed BC-Management module loading compatibility with BC v19
- ALOpsAgentMaintenance: Prune images based on CreationDate
- ALOpsAgentMaintenance: Remove VSIX folder when no platform of localised folders exists
- ALOpsAppCompiler@v1: Backported "AL_Analyzer=NONE" to disable analyzers
- ALOpsAppCompiler@v1: Backported "publishxlif" functionality from v2
- ALOpsAppTest: Increased interaction timeout, allowing for long running tests
- ALOpsDockerStart: "docker_pull" automatically disablen when using ALOpsDockerCreate images
- ALOpsDockerStart: Multiple Add-In DLL versions can now be used in parallell. Duplicate folder names are renamed.
[v1.442] - 2021-05-01¶
- ALOpsAgentMaintenance: New integer parameter [pruneimagesdayscreated], when not zero Images are pruned based on creationdate
- ALOpsAppCompile: BC ServiceTier folder added in AssemblyProbingPaths
- ALOpsAppCompile: Global warnings and errors are now catched from ALC output
- ALOpsAppCompile: New boolean parameter [output_alc_logs] for disabling printing the ALC logs
- ALOpsAppCompile: New multiline parameter for specifying additional AssemblyProbingPaths, comma seperated string can also be used
- ALOpsAppValidation: Added parameters for specifying InstallApps and PreviousApps
[v1.441] - 2021-04-13¶
- All Tasks : Disable script scanning for AV/Defender
- All Tasks: Fail Azure DevOps task on failed exit
- All Tasks: improved copy-item with literal path's, special character compatibility
- All Tasks: Improved performance for Expand-Archive with System.IO.Compression
- All Tasks: Improved powershell modules, Azure DevOps Diagnostics mode can be used
- ALOpsAppCompile: Detect ruleset feature, ignore when not available in ALC.EXE
- ALOpsAppCompile: Improved output parsing and Line detection
- ALOpsAppCompile: New parameter [applicationinsightskey] for registering ApplicationInsights
- ALOpsAppCompile: Print resulting app.json, allows for easy debugging
- ALOpsAppSignVerify: improved Path resolving of artifacts
- ALOpsAppTest: Implemented [ExtensionID] based test-running
- ALOpsAppTest: Configurable filename for Test-Results allowing for multiple result files
- ALOpsAppValidation: Extra parameter [containername] for overruling the default containername used for validation
- ALOpsDockerStart: Improved Additional Parameter parsing, allows for variables via parameter injection
- ALOpsDockerWait: Improved parsing of Error and Warning strings
- ALOpsDockerWait: Multiline Warning and Error string parsing
- ALOpsDockerWait: Task failed with warning on WarningString matches
- ALOpsExtensionAPI: Configurable API Version via parameter [apiversion]
- ALOpsExtensionAPI: Easy parameters for Service2Service setup
- ALOpsExtensionAPI: Improved deploymentStatus validation / Connection recovery for SaaS
- ALOpsExtensionAPI: Poll dpeloyment status as Warning instead of Error
[v1.440] - 2021-02-17¶
- ALOpsAppCompile: Parameter added to overwrite "ShowMyCode" manifest setting
- ALOpsAppCompile@1: download previous app for Breaking Changes check
- ALOpsAppCompile@1: Download previous version of App
- ALOpsAppCompile@2: improved unpacking for Artifacts
- ALOpsAppCompiler@2: Compatibility update for pre-BC-v15 versions
- ALOpsAppPublish: added parameter [forceinstall] which will force installation of Apps ignoring previous state
- ALOpsAppPublish: new parameter [publisherazureactivedirectorytenantid]
- ALOpsAppTest: Option to create test-suites on-the-fly by specifying the [testfilter] parameter
- ALOpsAppTest: Parameter added for loading DisabledTests via File or Url
- ALOpsAppValidation: new Task for running BcContainerHelper's AppValidation
- ALOpsDockerStart: improved unpacking for Artifacts
- ALOpsExtensionAPI: Alternate to BC-Artifacts when BC-Management DLL's are not available
- ALOpsExtensionAPI: Improved error catching on API calls
[v1.439] - 2021-02-05¶
- All Tasks: Use same artifact folder names when publishing pipeline artifacts
- ALOpsAgentMaintenance: improved container/image pruning
- ALOpsAppPublish: ignore/skip errors when installing AL-Test-Apps
- ALOpsDockerStart: Added option for 'multitenant' environments
- ALOpsExtensionAPI: added Service-2-Service authentication, only client_id and client_secret is required
[v1.438] - 2020-12-31¶
- ALOpsAppCompile: ALAnalyzer can be disabled by setting the parameter to 'NONE'
- ALOpsAppCompile: Ruleset can be disabled by setting it to 'NONE', Url's can be specificied for downloading remote rulesets
- ALOpsAppCompile@2: Allow custom VSIX for compilation. Filepath or Url.
- ALOpsAppCompile@2: Register NavSip in non-docker environments
- ALOpsAppSign: Improved AppFile resolving
- ALOpsAppSign: Improved path resolving / Register NavSip if required
- ALOpsDockerRemove: Action filter for SQL-Backup and EventLog extraction: Always or OnFailure
- ALOpsDockerRemove: EventLogs can be extracted from the container. Always or OnFailure.
[v1.437] - 2020-12-14¶
- ALOpsAppCompile: Read CodeAnalyzers from VSCode settings
- ALOpsAppCompile@2: Define Ruleset via parameter [ruleset], overrules VSCode settings
- ALOpsAppCompile@2: Generate hash table of generated Apps in BatchCompile Mode
- ALOpsAppCompile@2: New string Parameter [appfilenametemplate] that allows for setting custom appnames, prefixes and suffixes
- ALOpsAppCompile@2: XLIF can be publsihed as Artifact by setting boolean parameter [publishxlif]
- ALOpsAppPublish: Installation of published Apps can be skipped by setting [installpublishedapps] = false
- ALOpsAppTest: [companyname] and [profile] can now be set for executing tests
- ALOpsDockerRemove: Export Container Database via new parameters [createsqlbackup], [sqlcompression], [zipsqlbackup], [publishsqlbackup]
- ALOpsFobImport: New boolean parameter [force_full_generate_symbol_reference], will trigger a full generate symbols after FOB Import.
[v1.436] - 2020-11-25¶
- ALOPSAppCompile: implemented /parallel and /maxDegreeOfParallelism with VSCode defaults
- ALOPSAppCompile: new integer Global variable [alops_webrequest_timeout_ms] to set timeout for DownloadSymbols
- ALOPSAppCompile: Only copy Platform Apps if no Localized version exists
- ALOpsAppCompile@2: Escape AssemblyProbingPaths in pipeline log
- ALOPSAppPublish: Get-NAVAppInfo does not account for UTF-8, replace UTF8 characters in Build-Tag
- ALOPSAppPublish: Use Unique Folder for each Batch Publish
- ALOPSAppTest: New parameter [tenant] for targeting tests at a specific tenant
- ALOPSDockerCreate: Fail pipeline on Error, Force task status
- ALOPSDockerCreate: New string parameter [memory] with default 8G
- ALOPSDockerRemove: Exit status error when container does not exist
- Global: Show Task inputs for all Tasks
[v1.435] - 2020-10-11¶
- ALOpsAgentMaintenance: New task that allows for auto-cleanup of BCArtifacts, Containers and ALOps Tasks
- ALOpsAppClean: allow removal of Microsoft Apps with new boolean parameter [includemicrosoftapps]
- ALOpsAppCompile: Added warning for square brackets in AppName/AppPublisher, Improved handling of FilePaths
- ALOpsAppCompile: Force copy non default [app.json]
- ALOpsAppPublish: Strict AL Apps installation. Added bool parameter [strictappnames]
- ALOpsDockerCreate: Allow usage of "select" parameter for NextMinor/NextMajor/...
- ALOpsDockerCreate: Default MultiTenant to false
- ALOpsDockerCreate: Silent BCContainerHelper installation, ignore install errors if BCContainerHelper is present
- ALOpsDockerStart: Reset default inputs when blanked out
- ALOpsExtensionAPI: Fail task on errors in App Publish
- ALOpsExtensionAPI: OAuth authentication when running in docker
- Global: added boolean [Alops_UpdateHostsFile] Environment Variable which will set/remove the current Container in the Hosts file on the agent
- Global: Install-Update BcContainerHelper bugfix
[v1.434] - 2020-09-15¶
- ALOpsDockerCreate: Allow Clobber on BcContainerHelper
- ALOpsDockerCreate: allow usage of 'myScript' feature with multiline parameter [myscripts]
- ALOpsDockerCreate: Allow using BcContainerHelper pre-release
- ALOpsDockerCreate: Set type default to Sandbox for BcInsider
- ALOpsDockerCreate: Uninstall NavContainerHelper will not be implemented, AllowClobber and Fully Qualitified CmdLets instead
- ALOpsDockerStart: fixed bug with recycling containers
[v1.433] - 2020-08-25¶
- ALOpsAppCompile: Save Extension Artifact path in global variable $(ALOPS_COMPILE_ARTIFACT)
- ALOpsAppPublish: New parameter [publish_scope] / [tenant]
- ALOpsAppTest: Dynamicly resolve .PSM1 file in case of Multi-Version installations
- ALOpsDockerCreate: added boolean parameter [forcecreateimage] to force image creation
- ALOpsDockerCreate: added parameter [imagenametemplate] to allow setting the image template name
- ALOpsDockerCreate: Added parameters [sastoken] and [storageaccount] to allow for Insider/Custom Artifact Urls
- ALOpsDockerCreate: New task that allows creating BC-Docker images from BC-Artifacts
- ALOpsDockerStart: Improved security on DockerLogin for Windows Server 2016
- ALOpsDockerStart: Never pull images on local registry
- ALOpsDockerWait: new parameter [printlogs] which can be used to disable log printing of docker logs
- ALOpsDockerWait: Reset Container IP in global variables [ALOPS_DOCKER_IPADDRESS]
- ALOpsExtensionAPI: Set parameters [artifact_path] default to [$(System.ArtifactsDirectory)]
[v1.432] - 2020-08-03¶
- ALOpsAppCompile: UTF-8 compatibility, affects Extension names, Manifest parsing and Download Extension
- ALOpsAppPublish: Added boolean parameter [forcesync] allowing destructive changes
- ALOpsDockerStart: Compression performance, switched to DotNet ZIP instead of Powershell
- ALOpsDockerStart: Disable docker pull for local repository images bugfix
[v1.431] - 2020-06-30¶
- ALOpsAppCompile: SSL Verification can now be disabled with the global boolean parameter [alops_disable_ssl]
- ALOpsAppCompile: UrlEncode on Url-Builder can now be disabled with global boolean variable named "alops_disable_urlencoding" (Character Convert)
- ALOpsAppCompiler: only upload compile log with "PublishArtifacts" enabled
- ALOpsAppPublish: Allow ForceSync via new boolean parameter [forcesync]
- ALOpsAppTest: Import Test Suite v17 / Auto add required Apps for Test-Suite
[v1.430] - 2020-05-31¶
- All Tasks: Improved NAV/BC Module loading for Multi-Build environments
- ALOpsAppPublish: InstallAlTestTool - Auto add additional Apps required for the Test-Framework
- ALOpsAppTest: BC v16/v17 compatibility/improvements
- ALOpsDockerStart: Default value for parameter 'accept_image_outdated' set to "TRUE"
- ALOpsDockerWait: Report transfer ZIP size
- ALopsExtensionAPI: Auto select correct version of Module in Multi-Build environments
- Disable Cleanup old Tasks by default (Performance)
- Docker Based Tasks: Direct PSSession support to other container. Use global parameters [alops-docker-computer] / [alops-docker-username] / [alops-docker-password]
[v1.429] - 2020-04-30¶
- All Tasks: Allow for Windows-Authentication in docker containers (GSMA)
- All Tasks: Improved error-handling on all REST calls
- ALOpsAppPublish: Allow updating Apps in Batch-Publish cfr single publish
- ALOpsAppPublish: AppUpgrade issues are now logged to the pipeline
- ALOpsAppPublish: Batch_Publish_Folder is now copied to the container on demand
- ALOpsAppPublish: enable force install dependency by default
- ALOpsAppTest: Error and Warning close dialog enhancement
- ALOpsExtensionAPI: new tasks to handle BC-Extensions API calls
- ALOpsFobImport: added parameter [override_finsql_path] which allows to override the default finsql.exe resolving
- ALOpsLicenseImport: License-Path made dynamics (filtering) instead of literal
- ALOpsSaaSGetExtension: Task is replaced by the new Task [ALOps Extension API]
- ALOpsSaasPublishExtension: Task is replaced by the new Task [ALOps Extension API]
[v1.428] - 2020-03-29¶
- All Tasks: Dynamic resolve of Management DLL's for Multiversion NAV/BC installations
- ALOpsAppCompiler: compatibility with propagated dependencies
- ALOpsAppCompiler: improved direction of ALC.EXE output
- ALOpsAppCompiler: replace invalid path characters with underscore in App-Filename
- ALOpsAppPublish: removed 'Scope' parameter for NAV2018 compatibility
- ALOpsAppRuntimePackage: remove ShowMyCode for NAV20
- ALOpsAppTest: BC16 overwrite faulty standard Test-Libraries
- ALOpsAppTest: improved stability for BC15 / upgraded to work with BC16
- ALOpsDockerStart: auto split parameter [docker_parameters] so it can be set via Variables
- ALOpsDockerStart: only convert microsoft images to lowercase
- ALOpsDockerStart: parameter [vsix_download_path] enabled for use in docker containers
- ALOpsDockerWait: default behaviour changed, workfolder is now copied to the container on the WAIT step
- ALOpsFobImport: fixed empty "servername" parameter, improved GenerateSymbolReferences
- ALOpsFobImport: Generating symbol references can be enabled/disable with parameter [generate_symbol_reference]
- ALOpsFobImport: improved FinSql execution and error catching
- ALopsImportPackage: added parameter 'fixed_tag' for use with Docker
- ALOpsInfo: print extra information for debugging: diskspace, windows version, updates, memory stats...
- ALOpsLicenseImport: the scope of the license import can be set with parameter [license_scope]
[v1.427] - 2020-01-25¶
- ALOpsAppClean: detect ServerInstance on custom Docker images
- ALOpsAppCompile: Allow to retain version parts from app.json. '*' is replaced by the build-id, '?' specifies to retain the version part of the orriginal app.json
- ALOpsAppCompile: Allow to update build number in DevOps
- ALOpsAppCompile: check docker info credentials
- ALOpsAppCompile: Multiroot workspace support
- ALOpsAppCompiler: Remove params [AssemblyProbingPaths] and [Ruleset] for NAV2018
- ALOpsAppPublish: new parameter [batch_publish_folder] which allows for batch publishing of Apps, install order is automatically detected
- ALOpsAppPublish: Set Path Variable
- ALOpsAppRuntimePackage: New task for creating runtime packages from existing Apps
- ALOpsAppSign: added instant validation of app after signing / Improved validation of timestamp
- ALOpsAppSign: Added parameter [pfx_password] for setting password additional to the environment variable
- ALOpsDockerStart: allow login with Keyvault instead of ServiceConnection
- ALOpsDockerWait: Added parameter [error_string] which allow to set an extra exit condition
- ALOpsLicenseImport: Disable print License by default, license can be printed in the pipeline by setting parameter [print_license_info]
- Documentation: added pipeline examples in documentation section
- General: Allow for Host/Container memory monitoring
- General: Improved Json Importing, printout json on parse failure
- General: task output of all task cleaned up / bulk logging transferred to verbose
[v1.426] - 2019-11-30¶
- ALOpsAppCompile: Additional AssemblyProbingPaths via discovery
- ALOpsAppPublish: Allow for default AL Application installed in docker containers
- ALOpsAppTest: Allow selecting TestSuite via parameter [testsuite]
- ALOpsRepositoryPublish: added default icon for Apps without icon
[v1.425] - 2019-10-15¶
- ALOpsAppCompile/ALOpsAppSign: new parameter [publish_artifact] to disable artifact publishing from step
- ALOpsAppCompile: Allow to set filename suffix
- ALOpsAppCompile: clean empty entries from Compile log artifact
- ALOpsAppPublish: Dynamic Resolving of App Artifacts / new parameter [artifact_path]
- ALOpsAppPublish: Install-AL-Apps for docker / extra parameter [installaltesttool] en [install_al_app_names]
- ALOpsAppSign: Docker: Replace local artifact from container
- ALOpsAppSign: Dynamic Resolving of App Artifacts / new parameter [artifact_path]
- ALOpsAppSign: set Error instead of warning on DNSResolve
- ALOpsAppSignVerify: Dynamic Resolving of App Artifacts / new parameter [artifact_path]
- ALOpsAppTest: Wave2 compatibel, new parameters [testpage] en [installaltesttool]
- ALOpsDockerExec: new tasks that allows for running powershell scripts on the container
-
ALOpsDockerStart: Catch error on Docker login
-
ALOpsDockerStart: parameter to ignore warning with fixed_tag
- ALOpsImportFob: Dynamicly resolve .psm1 file, bypass via finsql for non standard installations
- ALOpsRepositoryPublish: Dynamic Resolving of App Artifacts / new parameter [artifact_path]
- ALOpsRepositoryPublish: New task in beta, allows publishing of the Extension to a repository in Business Central
- ALOpsSaaSPublishExtension: Allow folder upload of docker Applications for and PackageCache, new parameters [upload_package_cache] and [upload_c_applications]
- ALOpsSaaSPublishExtension: Dynamic Resolving of App Artifacts / new parameter [artifact_path]
- ALOpsSaaSPublishExtension: monitor/report deployment status
- Multi stage pipeline support
[v1.424] - 2019-09-17¶
- ALOpsAppCompiler: Now allows for dynamic resolving of "vsix_download_path", wildcards can be used.
- ALOpsAppPublish: dynamic resolving of "nav_artifact_app_filter", wildcards can be used.
- ALOpsAppSign: dynamic resolving of "nav_artifact_app_filter", wildcards can be used.
- ALOpsAppSignVerify: dynamic resolving of "nav_artifact_app_filter", wildcards can be used.
- ALOpsAppTest: extend authentication to cover all scenarios
- ALOpsAppTest: update routines from NavContainerHelper
- ALOpsDockerStart: improvements made for compatibility for in use in Release Flows
- ALOpsSaaSPublishExtension: dynamic resolving of "nav_artifact_app_filter", wildcards can be used.
[v1.423] - 2019-08-30¶
- ALOpsAppCompiler: Add 'bc_username' and 'bc_password' parameters to allow basic authentication
- ALOpsAppSign: Add 'timestamp_uri' string parameter to specify which timestamp server to use.
- ALOpsAppSign: Check Timestamp server if specified, trigger warning when offline.
- ALOpsAppTest: Add 'bc_username' and 'bc_password' parameters to allow basic authentication
- ALOpsLicenseImport: enabled FLF import from DockerHost and Repository location.
- ALOpsSaaSGetExtensions: Add 'azure_api_endpoint' string parameter to overrule API Endpoint.
- ALOpsSaaSGetExtensions: Add 'azure_api_version' picklist parameter to specify Azure API Version to use.
- ALOpsSaaSGetExtensions: Add 'bc_companyname' string parameter to specify target company.
- ALOpsSaaSPublishExtension: Add 'azure_api_endpoint' string parameter to overrule API Endpoint.
- ALOpsSaaSPublishExtension: Add 'azure_api_version' picklist parameter to specify Azure API Version to use.
- ALOpsSaaSPublishExtension: Add 'bc_companyname' string parameter to specify target company.
- ALOpsSaaSPublishExtension: Added retry loop on status check
- Docker: Retrieve ServerInstanceName from configuration for Wave2 compatibility.
- Improved Docker-Session management with Auto-Retry and Broken Connection detection.
- Improved the HelpMarkDown of all ALOps task inputs, variable names cleary visible in help.
[v1.422] - 2019-07-10¶
- ALOpsAppClean: added missing dependency to 'Get-NAVAppDependencies'
- ALOpsAppCompiler: Extended AssemblyProbingPaths with "c:\windows\assembly"
- ALOpsAppTest: Add 'failed_test_action' picklist parameter. define action (Ignore / Warning / Error) to take when a Test(s) fails
- ALOpsDockerRemove: containers exited with errors are also removed instead of skipped
- ALOpsDockerWait: detect when container exited on error and fail build
- ALOpsSaaSPublishExtension: new Task in preview mode. Publish an AL extension to Business Central SaaS
- Framework: Update VstsTaskSDK from v0.10 to v0.11
- New environment boolean variable 'Alops_PrintMemoryStats', when enabled print the current memory status at the beginning of every task
- Print execution of external executables/commands to the devops build log
- Random Vsts Task Freezes: deadlocks in the StandardOutput and StandardError stream processing of the DevOps Agent / Mitigated by force closing the environment
[v1.421] - 2019-06-25¶
- All PS1 files are CodeSigned for beter compatibility with standard powershell restrictions
- ALOpsAppClean: Add 'sync_mode' picklist parameter (Add/Clean/Development/ForceSync)
- ALOpsAppClean: enable for use in docker containers, use_docker parameter
- ALOpsAppTest: DisableNameChecking when importing Microsoft.Dynamics.Nav.Ide to avoid false warnings in pipeline
- ALOpsDockerRemove: added boolean parameter 'print_logs', default enabled. Prints logs on container remove.
- ALOpsDockerStart: Add -ltsc2019 or -ltsc2016 to Docker Image depending on OS
- ALOpsDockerStart: added parameter 'encryption_key', link a secret downloadable Url of the Encryption Key.
- ALOpsDockerStart: container can now be connected to Azure SQL Database
- ALOpsDockerStart: container can now be started based on a SQL BAK file via parameter 'sql_backup_file'
- ALOpsDockerStart: new default value for memory_gb parameter = '-1' (unlimited memory)
- ALOpsDockerStart: Print all docker parameters used for RUN command
- ALOpsFobImport: Added parameter for NAV Server Instance name
- ALOpsFobImport: allow for multiple FOB files to be imported in a single step, parameter 'filePath' can contain a filter like '.fob/*.fob'
- ALOpsFobImport: DisableNameChecking when importing Microsoft.Dynamics.Nav.Ide to avoid false warnings in pipeline
- ALOpsFobImport: integrate SQL-Database authentication for SQL mixed mode or Azure SQL
- ALOpsLicenseImport: Print flf license information before import
- ALOpsSaaSGetExtensions: new Task in preview mode, first of the SaaS enabled tasks. Displays the extensions installed in Business Central SaaS
- Templates: Corrected the version on the PublishTestResults step to Version 2, PublishTestResults@2
[v1.420] - 2019-06-17¶
- Added YAML templates for AL Projects: https://dev.azure.com/HodorNV/ALOps%20Templates
- ALOpsAppCompiler: Added boolean parameter 'download_test_symbols' for enabling explicit Test-Package download
- ALOpsAppCompiler: Added parameter 'al_analyzer', a comma separated list of Analyzers. Example: PerTenantExtensionCop,UICop,CodeCop
- ALOpsAppCompiler: Automatically add AssemblyProbingPath if projects contains external controls
- ALOpsAppSign: The PFX password should be linked to the environment variable 'pfx_password'
- ALOpsAppTest: added Auto-Retry on the "Warm-up" step for the Test-Client
- ALOpsAppTest: Added boolean parameter 'import_testtoolkit', can be used to skip the import of the default test-suite-objects.
- ALOpsDockerStart: Added multi-line parameter 'docker_parameters', these will be added to the [docker run] command
- ALOpsDockerStart: Removed 'No container found' message when not working with Fixed-Docker-Tags