Deploy-App.psm1
function RIT-Deploy-App-OnPrem { Param( [string] $serviceTier = 'BC170', [string] $RoleTailoredPath = "C:\Program Files (x86)\Microsoft Dynamics 365 Business Central\170\RoleTailored Client\", ) $appPath = Get-ChildItem -Path "$env:System_ArtifactsDirectory\*.app" -Recurse Import-Module $RoleTailoredPath\"Microsoft.Dynamics.Nav.Apps.Management.psd1" Import-Module $RoleTailoredPath\"Microsoft.Dynamics.Nav.Management.dll" $Instance = Get-NAVServerInstance $serviceTier -Force if($Instance.State -eq 'Stopped'){ Start-NAVServerInstance -ServerInstance $serviceTier -Force } $appPath | ForEach-Object { $version = (Get-NAVAppInfo -Path $_).Version $appName = (Get-NAVAppInfo -Path $_).Name $oldappName = (Get-NAVAppInfo -ServerInstance $serviceTier -Name "$appName").Name if ($oldappName){ $oldVersion = (Get-NAVAppInfo -ServerInstance $serviceTier -Name "$appName").Version $oldVersion = $oldVersion[0].ToString() } Publish-NAVApp -ServerInstance $serviceTier -Path $_ -SkipVerification Sync-NAVTenant $serviceTier -Mode Sync -Force Sync-NAVApp -ServerInstance $serviceTier -Name $appName -Version $version -Force if (!$oldappName){ Install-NAVApp -ServerInstance $serviceTier -Name $appName -Version $version }else{ Start-NAVAppDataUpgrade -ServerInstance $serviceTier -Name $appName -Version $version Unpublish-NAVApp -ServerInstance $serviceTier -Name $appName -Version $oldVersion } } } Export-ModuleMember -Function RIT-Deploy-App-OnPrem |