--- title: "Install and initialize Product Engineering - On premises" slug: "bc-install-and-initialize-qm-on-premises" updated: 2026-06-25T09:59:00Z published: 2026-06-25T09:59:00Z canonical: "docs.staedean.com/bc-install-and-initialize-qm-on-premises" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.staedean.com/llms.txt > Use this file to discover all available pages before exploring further. # Install and initialize Product Engineering - On premises ## Install Product Engineering apps on-premises 1. Make sure a Dynamics 365 Microsoft Dynamics 365 Business Central installation is up and running, including a database. The example below shows how to create a CRONUS demo environment. - For example: [Download Update 21.5 for Dynamics 365 Business Central 2022 Release Wave 2 from Official Microsoft Download Center](https://www.microsoft.com/en-us/download/details.aspx?id=105029) - Install your partner license, replacing the standard **Cronus.bclicense**. 2. Download the latest Quality Management package from: - [Knowledge Downloads - Support - STAEDEAN](https://support.staedean.com/ticsm?id=knowledge_downloads) 3. Open PowerShell ISE and run as **Administrator**. - Import the Quality Management scripts in PowerShell and run the following sections. > [!NOTE] > Note > > The script below is based on Quality Management as an example. Replace the app names where applicable: Engineering Change Management, TI-Lifecycle Base. ### Install the D365 BC Modules: ```plaintext Import-Module "C:\Program Files\Microsoft Dynamics 365 Business Central\220\Service\Microsoft.Dynamics.Nav.Management.psm1" Import-Module "C:\Program Files\Microsoft Dynamics 365 Business Central\220\Service\NavAdminTool.ps1" ``` ### Update the variables (replace parts as required): ```plaintext $apps = "TI-Common,Quality Management" $serverInstance = 'BC215' $buildArtifactFolder = "C:\IEMOnPrem\21.4.84356.0" $appsSplit = $apps.Split(',') $i = $appsSplit.Count ``` ### When updating an existing installation, first uninstall the extensions: ```plaintext Do{    $i--  Write-Host"Uninstall & Unpublish $($appsSplit[$i])"$installedAppVersion = Get-NAVAppInfo-ServerInstance$serverInstance|Where-Object { $_.Name -eq$appsSplit[$i] }|%{"$($_.Version.Major).$($_.Version.Minor).$($_.Version.Build).$($_.Version.Revision)"}  Uninstall-NAVApp-Name$appsSplit[$i] -ServerInstance$serverInstance-Version$installedAppVersionUnpublish-NAVApp-Name$appsSplit[$i] -ServerInstance$serverInstance-Version$installedAppVersion } Until($i-eq0) ``` ### Install or update the extensions: ```plaintext $apps.Split(',') | ForEach-Object {    $appName = $_    $AllAppFiles = Get-ChildItem -Path $buildArtifactFolder -Filter "*.app" -Recurse    foreach ($AllAppFile in $AllAppFiles) {if ((Get-NAVAppInfo -Path $AllAppFile.FullName |Select-Object -expand Name) -eq $appName){$appFileName = $AllAppFile.FullName} }    Write-Host "Install $_ ($appFileName)"    $newAppVersion = Get-NAVAppInfo -Path $appFileName|%{"$($_.Version.Major).$($_.Version.Minor).$($_.Version.Build).$($_.Version.Revision)"}    # for initial install use Install-NAVApp, for updates use Start-NAVAppDataUpgrade    Publish-NAVApp -Path $appFileName -ServerInstance $serverInstance    Sync-NAVApp -Name $appName -ServerInstance $serverInstance -Version $newAppVersion    #Start-NAVAppDataUpgrade -Name $appName -ServerInstance $serverInstance -Version $newAppVersion    Install-NAVApp -Name $appName -ServerInstance $serverInstance -Version $newAppVersion } ``` ### Result: Once completed, the following entries appear in **Extension Management** (based on the installed apps): | Name | Publisher | Version | Is Installed | Published As | | --- | --- | --- | --- | --- | | STAEDEAN-Common | STAEDEAN | v.19.0.83403.0 | v | Global | | Product Engineering-Quality Management | STAEDEAN | v.21.0.86838.0 | v | Global | | Product Engineering-Engineering Change Management | STAEDEAN | v.22.0.93690.0 | v | Global | | STAEDEAN-Lifecycle Base | STAEDEAN | v.23.0.97743.0 | v | Global | - To access the Quality Management functionality, change to the **Quality Management Portal** role center. - To access the Engineering Change Management functionality, change to the **Product Engineering Engineering Changes Manager** role center. - Lifecycle Base has no separate role center: type **Lifecycle** in Search.