Search Results for

    Updates

    • Update Service
    • Project Lifecycle

    [1.2.1]

    • Fixed an issue where a group could not be assigned to a deployment circle for a package with a forward slash (/) in the package ID.

    [1.2.0]

    This release introduces several new features and enhancements to Update Service. Focusing on client management and update control and several user experience improvements:

    Schedule Windows

    This new feature allows users to define which days and what part of a day clients can update, providing more control over the update.

    Client Groups

    Now, users can organize clients into groups for more efficient management. This feature also includes the ability to assign these groups to deployment circles, streamlining the deployment process. Additionally, users can apply a schedule window to an entire client group, further enhancing update management efficiency.

    Other notable changes

    • We have added a filtering feature to all lists on the server interface. This feature makes it easier for users to find and manage specific data.
    • We have made changes to the installer details page. These changes include the addition of chips and a different dialog, enhancing the user experience.
    • Now users can open installers directly from the server web interface, instead of downloading and running them manually.
    • For improved security, sensitive information on the server settings page is now obfuscated.
    • We have upgraded the server interface from Vue 2 to Vue 3. This technical upgrade enhances the application's performance and ensures compatibility with the latest web technologies.

    [1.1.1]

    • Fix "Bad request" error when Windows's clock in format is HH.ss instead of HH:ss.
    • Fixed "No file list provided." error, when updating packages installed from local cache.

    [1.1.0]

    We are excited to announce our latest release, packed with new features and improvements aimed at enhancing your user experience and quality of life. This update introduces the ability to create a support package on both the client and server, a new servers page on the client for efficient management, and significant enhancements to the installed components page. We've also added a feature for system restart prompts in case of certain installation failures. Alongside these, we've made numerous fixes and minor improvements to further enhance your user experience. We hope you find these updates beneficial.

    Create a Support Package on Client and Server

    You can now generate a support package on both the client and server. This package includes all necessary data and information for troubleshooting and support purposes.

    On client: GenerateSupportPackageClient

    GenerateSupportPackageClientBug

    On server: GenerateSupportPackageServer

    New Servers Page on Client

    We've added a new servers page on the client for more efficient server management. The new features include:

    • The ability to add, edit, and remove servers.
    • A functionality to test the connection to the server.
    • An option to log out of server.
    • The capability to change the priority of servers.

    Servers

    Improved Installed Components Page on Client

    The installed components page on the client now includes:

    • A filter for easy navigation.
    • An icon showing users if an update is available for a component or instance.

    InstalledComponents

    Restart Computer on Failure on Client

    Now, if an installation failure occurs, involving a package sensitive to Windows updates, the user will be alerted and instructed to complete all pending Windows updates, followed by a system restart before attempting to try again. Post-restart, the installation wizard will automatically launch, allowing the user to proceed with the installation process.

    RestartRequired

    Component History Page on client

    On the client, a new Component History page is now available. This page allows you to view the history of each component, including details on when it was installed, updated, or removed.

    Windows Event Logs included with Install Telemetry

    The install telemetry now includes Windows event logs for better tracking and troubleshooting. The telemetry can be viewed on the server portal under Installs and by opening a failed installation report.

    Automatic Storage Cleanup on Client

    Files in storage older than 60 days are now automatically removed. You can manually clean all files either via the settings page on the client app or by using the Clear-UscFileStorage command.

    Other notable changes

    • Added a loading spinner after login on the client.
    • Added a button to clear all notifications on the server.

    Fixes and minor improvements

    • Fixed arguments being reset when changing the instance name in the installer wizard.
    • Fixed when browser cache was serving older version of page (server).
    • Fixed personal access token page hanging on server for certain time zones.
    • Fixed error when piping PSCustomObject to New-UssPackage.
    • Fixed IIS's Bad gateway (502.3) error, due to timeout.
    • Made dropdown parameter case insensitive.
    • If downloaded compressed hash does not match server's, then check the file hash. In case the server has incorrect compressed hash.
    • The client service (background service) is now set to Automatic delayed to ensure all services are started during Windows startup.

    [1.0.0]

    This major update includes a complete rewrite of our server, making it ready for SaaS deployment. While we've made significant changes under the hood, we've maintained backward compatibility for our clients. To upgrade, users will need to migrate their existing Go Current server to Update Service, which we've made as easy as possible.

    Most notable changes:

    • New server: The server has been completely rewritten to utilize a modern .NET architecture, ASP.NET Core, making it more future-proof and SaaS-ready.
    • REST API: The new REST API allows for the invocation of any server operation, providing greater flexibility and control.
    • Azure Storage: Update Service now utilizes Azure Storage to securely store and serve files, ensuring the safety and privacy of your data.
    • Authentication and authorization using Azure Active Directory: Users can restrict server and/or client access, create Personal Access Tokens for use in scripts and automation, and view audit logs to see who made changes to the server's settings and data.
    • SaaS ready: The server is now fully compatible with Azure services, allowing it to be easily hosted in the cloud for greater accessibility and convenience.

    Other notable changes:

    • Users can now track ongoing installations on the server interface.
    • A new feature lets users import packages directly from the server interface.
    • Users can view package dependencies and parameters in the package version details.
    • The server interface now has a dark and light mode option.
    • A notification system has been added to the server interface for ongoing processes.

    [0.22.0]

    Added

    • Packages can now create messages that are displayed to the user after a successful or failed installation, for example, to provide the user with instructions on how to open the installed application or to create a more user-friendly error message.
    • SQL database selection improved:
      • Detects and auto selects existing SQL server if no default server exists.
      • Default SQL server is updated when the user selects a different local server.
      • Manually entered SQL servers are added to history for later selection through drop-down.
      • Throws validation error if a connection to SQL server cannot be established.
    • Error is thrown if there is not enough space on the machine.
    • User can now cancel an installation by pressing cancel in the installation wizard.
    • User can now change the instance name in the installation wizard.
    • User can now change the update strategy in the installation wizard.
    • Arguments and settings were added to the summary in the installation overview.
    • New drop-down widget was added to allow the user to select arguments from a dropdown.
    • New property added to package manifest, MinClientVersion, to specify a minimum client version that can execute the package. If the package is relying on a feature not present in an older client.

    Changed

    • Passwords in SQL connection string are now masked in logs.

    Fixed

    • Fixed an error when creating deployment circle for a package, client fails to install package where no version is selected.
    • Added protection when writing configuration files to disk when space runs out.
    • Fixed when the database name field is changed, it clears out.
    • Fixed when the client is updated to a new version, Windows start menu still points to the old version, due to caching.

    [0.19.1]

    Fixed

    • UpdateInstanceMode not honored when optional package included in updates from Workspace (VS Code extension).
    • Installer hangs in some cases.

    [0.19.0]

    Added

    • Support for removing individual packages in an instance.
      • Now, packages in an instance are uninstalled when removed from a bundle update.
      • New parameter added to Install-GocPackage, -UpdateInstanceMode Replace|Merge which determines the behaviour when -UpdateInstance is used.
        • Replace: To replace to change the selected packages in an instance.
        • Merge: To merge incoming packages supplied to Install-GocPackage with the current list of packages in an instance. ### Changes
    • Communication layer to the isolated agent improved and fallback mode was added. ### Fixed
    • Too large logs from package execution resulted in a failed install.

    [0.18.0]

    Added

    • Server and client executables are now code-signed (Server + Client).
    • Installers can be signed, with a code signing certificate (Server).
    • Parameters with password widget are now masked in logs (Client).
    • Directly open client logs after a failed installation in the wizard (Client).
    • Text warping and scrollbars added for errors in-app (Client). ### Changed
    • Improved package removal logic to be less reliant on the server. ### Fixed
    • "An item with the same key has already been added" when removing instance and Servers.json contains the same server multiple times.
    • Running the client as the "NT Authority/System" user does not throw "Must run as administrator" in any case.

    [0.17.0]

    Added

    • Client cmdlets are now autoloaded into the PowerShell session, allowing the user to omit "Import-Module GoCurrent".
    • New client setting InstancesInstallDir added, where user can specify where instances are installed. The default install location also changed from %ProgramData%\LS Retail\Go Current\Client\Instances to %ProgramFiles%\LS Retail\Update Service\Instances
    • New cmdlet Set-GocSettings [-InstancesInstallDir] to update the client settings from PowerShell.
    • New view in the Go Current app, Settings with a field to specify InstancesInstallDir.

    [0.16.3]

    Changed

    • Include version query constraints from installed packages when a version cannot be determined.

    Fixed

    • Install error "Could not connect to isolated process." when the username contains space.

    [0.16.2]

    Fixed

    • Correct install sequence not honored in edge cases.

    [0.16.1]

    Fixed

    • Client service user created without admin privileges on a localized Windows.

    [0.16.0]

    Added

    • Now, the server priority can be specified on the client cmdlets and ignore the server specified in Servers.json.

    [0.15.0]

    Added

    • The go-current-server package has the following improvements (Server package, GOC-278):
      • Parameters added to the package to configure on install. (Server)
      • After installation, the new server is automatically added to the client's servers list with top priority. (Server)
      • Port is automatically added to Windows Firewall.
    • New package parameter widgets added: (Client, GOC-268)
      • NewDatabase to specify a new database, which will fail validation if the database already exists.
      • OpenDatabase to specify an existing database, which will fail validation if the database doesn't exist.
    • Package parameters can now have hint text for additional explanation. (GOC-269)
    • New property added to package manifests, WindowsUpdateSensitive. If set to true, the user is warned if Windows updates are pending, before installation and asked to install the updates and restart the machine. (GOC-106)
    • Users can now run multiple installations at the same time if there are no conflicts between them. When a conflict occurs the user receives an error. (GOC-284)

    Changed

    • Installers in Go Current app are now sorted alphabetically. (Client)
    • The server cmdlets, New-GocsDatabase and Set-GocsDatabase, now returns the server's GUID. (Server, GOC-278)

    Fixed

    • Install overview text was "Click Install" when button was "Update". (Client, GOC-270)
    • Install overview button was "Update" when user expected "Install". (Client, GOC-270)
    • Already installed packages were on the arguments page in the wizard. (Client)
    • Unnecessary downloads skipped for packages being updated with no update command. (Client, GOC-283)
    • Temporary directory used during installation moved from %TEMP%. When space is getting tight on a machine, Windows automatically tries to delete the content in %TEMP% which resulted in failed installation.

    [0.14.0]

    Added

    • Now packages can substitute other packages, by specifying SubstituteFor in package manifest.
      • Consider the package the-substitute, which specifies SubstituteFor as to-substitute in it's manifest.
      • Consider the package the-dependent which has a dependency to the package to-substitute.
      • Selecting and installing only the-dependent will also install to-substitute.
      • Now, selecting and installing the-dependent and the-substitute will not install to-substitute, as the-substitute will satisfy the dependency.

    [0.13.9]

    Fixed

    • Pipeing multiple packages to Test-GocIsInstance returned result for first package, instead of any of the bunch.

    [0.13.8] - 2020-02-18

    Added

    • Version query priority.

    Fixed

    • Install sequence not honored for some 2nd level shared dependencies.
    • In rare cases, when client updates package list from server, packages where missing from the list, resulting in client not updating to the new version.
    • Dependency calculation improved for edge cases.

    [0.12.4]

    Changed

    • Version parameter for Install-* and Update-GocPackage changed to VersionQuery, to simplify piping.

    Fixed

    • Recalculating dependency graph resulted in error, now fixed.

    [0.12.3]

    Added

    • New environment variable "$Context.Environment.IsContainer" passed to package, indicating if package is executing inside a Docker container.

    Changed

    • Default user "GoCurrentUser" creation improved for performance.

    Fixed

    • Fixed parameters not being resolved correctly for packages with "/" in package id.

    [0.12]

    Added

    • Version range now supports filtering by pre-release tags, for example: "*-rc" will return 1.0.0-rc.1, 1.0.0-rc.2 and 2.0.0-rc.1 but not 1.0.0-nightly.1, 1.0.0 and 2.0.0. (Client, Server, GOC-241)

    Fixed

    • Package version was not re-selected when version query constraint was removed, resulting in incorrect selection. (Client, Server, GOC-243)

    [0.11.6] - 2019-10-25

    Added

    • Added ConvertTo-GocSemanticVersion to client cmdlets. Similar to ConvertTo-GocsSemanticVersion (server cmdlets).

    Changed

    • Version query with no version range but control characters, [*][^|_] now resolves to [*][^|_]! for consistency (Server, Client).

    Fixed

    • Fixed error "Bad Request (400)" in web interface by allowing the "content-type" header in REST requests for browsers that do not support allow all headers.

    [0.11.5]

    Changed

    • Version query "1.0-alpha" now resolves to ">=1.0-alpha <1.0-alphb" instead of ">=1.0-alpha <1.0" for consistency.

    [0.11.4]

    Added

    • Report progress during package execution to UI (Client, GOC-237)
    • New cmdlet Get-GocFile added to the client cmdlets (this is the same as Get-GocsFile in the server cmdlets) (Client, GOC-235)

    [0.11.3]

    Added

    • Validation to ensure files listed in manifest file are included in the package being imported. (Server)
    • Added Test-GocIsInstance cmdlet. (Client cmdlets)

    Fixed

    • Fixed error which occurred when file paths were to long for Windows when importing package. (Server, GOC-216)

    [0.11.2] - 2019-09-06

    Added

    • Empty directory cleanup after package installation. (GOC-231, client)
    • Instance name validation. (Client)

    Changed

    • Server selection priority: preferred (last installed or from installer), order in Servers.json, available, has package, any. (GOC-227, client)
    • Instances will be allocated instance directory at CLIENTDIR\Instances\INSTANCENAME[+N] instead of CLIENTDIR\Instances\INSTANCENAME\RANDOM. (Client)

    Fixed

    • Fixed GoC server installer not creating database with PS execution policy restricted. (GOC-229)
    • Fixed invalid data time format from in rest api (client install telemetry). (GOC-228, server)
    • Fixed missing description when Copy-GocsInstallerFromServer to copy non-existing installer. (Server)

    [0.11.1] - 2019-08-21

    Fixed

    • Removing package resulted in an error.
    • Error occurred when using checkbox widget with no default value.

    Project Changes

    All notable changes to the scaffolded project scripts will be documented here.

    Full-text and semantic extractions for search, SQL feature required in Business Central 25.0. (2024-10-21)

    Business Central 2024 Wave 2 (v25) now requires the Full-text and semantic extractions for search feature in SQL Server. This feature is available in the advanced edition of SQL Server Express, which has not been included in Update Service before and therefore is likely you need to upgrade your SQL server.

    We have released a new package for the advanced edition, sql-server-express-advanced, which includes the Full-text search feature by default. The package can also be used to upgrade an existing SQL server to the advanced edition. If an existing SQL server is detected with the instance name SQLEXPRESS, the package will upgrade the instance if needed and add the Full-text search feature to it. It does not matter if the SQL server is installed as part of the Update Service or not.

    We recommend:

    • to individually upgrade the SQL server from the bundle.
    • to test the upgrade in your test lab using a setup as similar as possible to the POS machine to identify any potential issues (see known issues below).
    • begin the rollout slowly, starting with one or a few, then gradually increase the pace.

    Known issues:

    • You may need to uninstall ODBC and OLE driver before upgrading the SQL server due to conflicts. alt text

    Project lifecycle changes

    Update GetLsCentralPackages.ps1 and NewBundlePackage.ps1 by replacing sql-server-express with sql-server-express-advanced.

    Runtime apps for Business Central are no longer necessary (2024-06-12)

    From Business Central 22.0, runtime versions of the Business Central apps are no longer necessary and may cause licensing issues. This means that you can now use the standard Business Central apps in your projects.

    To remove the runtime apps from your project, follow these steps:

    1. In GetLsCentralPackages.ps1 and NewBundlePackage.ps1, rename the following packages:
      • bc-base-application-LOCALIZATION-runtime -> bc-base-application-LOCALIZATION
      • bc-system-application-runtime -> bc-system-application
      • bc-application-runtime -> bc-application

    Business Central Management module moved (2023-05-30)

    In Business Central 22.0, the PowerShell management module has been relocated to a subdirectory called management, whereas in earlier versions it was located in the same directory as the service tier executable. This change may impact scripts that reference the module.

    Previously, the path to the module was: path\to\servicetier\Microsoft.Dynamics.Nav.Management.dll, but it is now path\to\servicetier\management\Microsoft.Dynamics.Nav.Management.dll.

    As a result, the UpdatePosMaster.ps1 script needs to be updated as follows:

    Before:

    Import-Module (Join-Path $BcServer.Info.ServerDir 'Microsoft.Dynamics.Nav.Management.dll')
    

    After:

    $ModuleDir = $BcServer.Info.ServerDir
    if (!(Test-Path (Join-Path $ModuleDir 'Microsoft.Dynamics.Nav.Management.dll')))
    {
        $ModuleDir = Join-Path $BcServer.Info.ServerDir 'Management'
    }
    Import-Module (Join-Path $ModuleDir 'Microsoft.Dynamics.Nav.Management.dll')
    

    Support for .bclicense files (2023-04-18)

    You can now generate a license package that includes both the new .bclicense type and the older .flf type. The appropriate license type will be applied based on the Business Central version in use.

    To incorporate support for this in your current project, simply replace your existing NewLicensePackage.ps1 script with the one provided below. Remember to retain the version number from your original script and update it accordingly in the new script. You must also update the package ls-package-tools to version 0.8.2 or later.

    param(
        $Path,
        [switch] $Import,
        $Server,
        $Port,
        [switch] $Force
    )
    
    $ErrorActionPreference = 'stop'
    
    Import-Module LsPackageTools\LicensePackageCreator
    Import-Module (Join-Path $PSScriptRoot 'Utils.psm1')
    
    $Config = Get-ProjectConfig
    
    if (!$Path)
    {
        $Path = Join-Path $Config.InputDir 'License'
    }
    
    $Arguments = @{
        Id = "$($Config.PackageIdPrefix)-license"
        Name = "$($Config.Name) License"
        Version = '1.0.0'
        LicensePath = $Config.InputDir
        OutputDir = $Config.OutputDir
    }
    
    $Package = New-LicensePackage @Arguments -Force:$Force
    $Package
    if ($Import)
    {
        $Package | Import-UssPackage -Server $Server -Port $Port -Force:$Force
    }
    

    DLL's removed in 20.5 (2022-10-08)

    In LS Central 20.5, the toolbox add-in was removed and therefore no longer needed. Previously, the Data Director add-in was also removed.

    When updating to LS Central 20.5, you must remove any references to the packages ls-central-toolbox-server and ls-dd-server-addin in your project.

    1. In GetLsCentralPackages.ps1 and NewBundlePackage.ps1, remove any lines where ls-central-toolbox-server and ls-dd-server-addin occur.
    2. If you have extended the project with more bundles or scripts:
      1. Open the root folder (i.e. C:\LS Retail\My Project) with VS Code.
      2. Press CTRL + SHIFT + F, and type in ls-central-toolbox-server
      3. Remove any references to package.
      4. Repeat step 2. for ls-dd-server-addin.
    3. Continue with updating the application and platform.

    Localization app changes (2021-06-16)

    There have been changes to the localized LS Central apps. In general, now there are up to two apps for each locale, one app for the languages and one app for localized functionality.

    These apps are available in Update Service as ls-central-LANGUAGENAME-language and ls-central-app-LOCALE, respectively. In addition to the new LS Central localization apps, we have also included the Business Central language apps in Update Service, bc-base-application-is-is-language.

    To simplify the selection of available localization apps in Update Service, we introduce a new locale package called locale/ls-central-LOCALE-runtime (where LOCALE is a locale).

    The locale packages bear some similarities to bundle packages, as they only have dependencies on the relevant packages for the specific locale. For example:

    • IS Locale: locale/ls-central-is-runtime has dependencies to
      • ls-central-icelandic-language (IS specific)
      • bc-base-application-is-is-language (IS specific)
      • ls-central-app-runtime
      • bc-base-application-is-runtime (IS specific)
      • bc-system-application-runtime
    • US Locale: locale/ls-central-us-runtime has dependencies to
      • ls-central-app-na-runtime (NA specific)
      • ls-central-north-america-languages (NA specific)
      • bc-base-application-en-us-language (US specific)
      • ls-central-app-runtime
      • bc-base-application-us-runtime (US specific)
      • bc-system-application-runtime

    Update Project lifecycle and Hybrid cloud components project

    The following guide describes how to upgrade your existing project to use the new locale/ls-central-LOCALE-runtime packages instead of the old localization app.

    Steps

    1. In your project directory, change the following package ID:
      • ls-central-app-xx-runtime to locale/ls-central-xx-runtime
      • Replace xx with your preferred locale.
    2. In the following files:
      • GetLsCentralPackages.ps1
      • NewBundlePackage.ps1
    3. Get LS Package, to download the new packages to your server.
    4. Update POS bundle, to include the new locale package in your bundle.

    New script NewAppPackages.ps1 (2021-06-16)

    With the latest version of ls-package-tools, when scaffolding projects for Business Central 15.0 and above, a new scripts called NewAppPackages.ps1 is created instead of NewAppPackage.ps1 (notice plural/singular). The new script uses New-AppPackageFromContext instead of New-AppPackage and can create packages for multiple apps and automatically adds dependencies to them.

    To get the new script, NewAppPackages.ps1:

    1. Update ls-packages-tools to the latest version:

      Install-UscPackage -Id 'ls-package-tools'
      
    2. Scaffold a new project.
    3. Copy the new script NewAppPackages.ps1 to your existing project.
    4. See here for usage.

    Upgrade from NA to CA, MX or US

    In Business Central 17.0, Microsoft released three localizations CA, MX or US which replace the NA localization.

    The following guide describes how to upgrade existing project from NA to CA, MX or US. No actions are required if the project was started in 17.0 or later.

    Make sure to:

    • Update to the latest Update Service server.
    • Get the latest version of ls-setup-helper:
      • Copy-UssPackageFromServer -Id 'ls-setup-helper' -Version '' -SourceServer 'gocurrent.lsretail.com' -SourcePort 443 -SourceUseSsl -SourceIdentity 'lsretail.com'
      • Or using Server to Server in the Update Service Server management portal.
    • Update the client to the latest version, before upgrading an instance to CA, MX or US.

    In your project directory, change the following package IDs:

    • bc-base-application-xx-runtime to bc-base-application-xx-runtime
    • ls-central-app-xx-runtime to locale/ls-central-xx-runtime
    • Where xx can be ca, mx or us

    In the following files:

    • GetLsCentralPackages.ps1
    • NewBundlePackage.ps1

    Then proceed with updating the application and platform as instructed here.

    In This Article
    Back to top Generated by DocFX