HOW TO create NAV Instances with multiple builds in the same machine

The concepts described in this post are applicable to different versions/builds, for the examples I will use an installation of NAV 2013 R2 (7.1.35473) and I will create one or more instances also for the build 7.1.36703 (Cumulative Update 7 – May 2014) in the same server.

HOW TO create NAV Instances with multiple builds in the same machine?

We have to distinguish two different operations:

  1. Creation of the first instance for a different build
  2. Add more instances for this build

HOW TO create the first instance for a different build?

Prerequisites:

After you installed NAV 2013 R2 Server side’s files will be inside the following path:

C:\Program Files\Microsoft Dynamics NAV\71\

Copy the folder 71 in a new folder 71 – Build 36703

C:\Program Files\Microsoft Dynamics NAV\71 - Build 36703\

Copy and replace all files from the NST folder, in the Cumulative Update package, to the Service folder in the following path:

C:\Program Files\Microsoft Dynamics NAV\71 - Build 36703\Service\

Run Microsoft Dynamics NAV 2013 R2 Administration Shell and execute the following PowerShell CmdLet:

New-Service 'MicrosoftDynamicsNAVServer$NewInstanceName' -BinaryPathName '"C:\Program Files\Microsoft Dynamics NAV\71 - Build 36703\Service\Microsoft.Dynamics.Nav.Server.exe" $NewInstanceName /config "C:\Program Files\Microsoft Dynamics NAV\71 - Build 36703\Service\Microsoft.Dynamics.NAV.Server.exe.config"' -DependsOn 'HTTP' -Description 'Service handling requests to Microsoft Dynamics NAV application.' -DisplayName 'Microsoft Dynamics NAV Server [NewInstanceName]' -StartupType Manual

Note: you can replace NewInstanceName with your preferred name (there are 3 references) or use another name for the folder “71 – Build 36703” (there are 2 references)

In case of error, to delete this service use the following PowerShell CmdLet:

sc.exe delete 'MicrosoftDynamicsNAVServer$NewInstanceName'

Note: don’t remove the instance using Microsoft Dynamics NAV 2013 R2 Administration because, this is the Default instance for this build and it will be removed the Service folder from the 71 – Build 36703 folder.

HOW TO add more instances for this build?

In my example the name will be SecondInstanceName

Method 1:
Using Microsoft Dynamics NAV 2013 R2 Administration tool create a new instance with name SecondInstanceName.

Copy the SecondInstanceName folder from

C:\Program Files\Microsoft Dynamics NAV\71\Service\Instances\

to

C:\Program Files\Microsoft Dynamics NAV\71 - Build 36703\Service\Instances\

Note: if the subforder Instances doesn’t exist create it.

Using Microsoft Dynamics NAV 2013 R2 Administration tool delete the instance with name SecondInstanceName.

Run Microsoft Dynamics NAV 2013 R2 Administration Shell and execute the following PowerShell CmdLet:

New-Service 'MicrosoftDynamicsNAVServer$SecondInstanceName' -BinaryPathName '"C:\Program Files\Microsoft Dynamics NAV\71 - Build 36703\Service\Microsoft.Dynamics.Nav.Server.exe" $SecondInstanceName /config "C:\Program Files\Microsoft Dynamics NAV\71 - Build 36703\Service\Instances\SecondInstanceName\SecondInstanceName.config"' -DependsOn 'HTTP' -Description 'Service handling requests to Microsoft Dynamics NAV application.' -DisplayName 'Microsoft Dynamics NAV Server [SecondInstanceName]' -StartupType Manual

The difference with the previous command is only that now we will refer to the config file inside the Instances folder.

Note: you can replace SecondInstanceName with your preferred name (there are 5 references) or use another name for the folder “71 – Build 36703” (there are 2 references)

The last step is to correct the config files inside the SecondInstanceName folder:

  • SecondInstanceName.config – correct the paths in appsettings and tenants node replacing “71” with “71 – Build 36703”
  • CustomSettings.config – insert the correct values and ports and don’t foget to refer to the Default instance for this build in the following key:
    <add key="ServerInstance" value="NewInstanceName" />

Method 2 (by ROEL BERGS):

  1. Change a registry key to the path of the new build
  2. create the SecondInstanceName using Microsoft Dynamics NAV 2013 R2 Administration tool or PowerShell (CmdLet New-NAVServerInstance). This method will create the Instance foder in the correct path.
  3. Changed the registry key value back to the default path.

Following and example of the PowerShell script (run Microsoft Dynamics NAV 2013 R2 Administration tool as Administrator):

$nstDefaultPath = "C:\Program Files\Microsoft Dynamics NAV\71\Service\"
$nstPath = "C:\Program Files\Microsoft Dynamics NAV\71 - Build 36703\Service\"

#Switch registry to correct path
set-itemproperty -path "HKLM:\SOFTWARE\Microsoft\Microsoft Dynamics NAV\71\Service" -name "Path" -value $nstPath

New-NAVServerInstance "SecondInstanceName" -DatabaseName "DBNAME" -DatabaseServer "SQLSERVER" -ClientServicesPort 7046 -SOAPServicesPort 7047 -ODataServicesPort 7048 -ManagementServicesPort 7045

#Switch registry to default
set-itemproperty -path "HKLM:\SOFTWARE\Microsoft\Microsoft Dynamics NAV\71\Service" -name "Path" -value $nstDefaultPath

Note: don’t foget to insert set the corret values in the parameters and you can replace SecondInstanceName with your preferred name (there is 1 reference) or also use another name for the folder “71 – Build 36703” (there is 1 reference).

The last step is to correct the config file inside the SecondInstanceName folder:
CustomSettings.config – insert the correct values and ports and don’t foget to refer to the Default instance for this build in the following key:

<add key="ServerInstance" value="NewInstanceName" />

Did my HOW TO help you? Leave a reply.

HOW TO know the SQL Server version installed

There are different methods how to know the SQL Server version installed.

My preferred, for me the easiest to remember, is run the following query:

Select @@version

An example of the output of this query is as follows:

Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)   Mar 29 2009 10:11:52   Copyright (c) 1988-2008 Microsoft Corporation  Express Edition (64-bit) on Windows NT 6.1  (Build 7600: )

For further info, please, use the reference link.

Reference: How to determine the version and edition of SQL Server and its components

Did my HOW TO help you? Leave a reply.

The client version does not match the server version

—————————
Microsoft Dynamics NAV
—————————
The client version does not match the server version. You can only connect to a server with a matching version.

Client version: {ClientVersionNumber}

Server version: {ServerVersionNumber}
—————————
OK
—————————

The client version does not match the server version

Cause:
I’ve installed more builds of NAV 2013 in the same pc and I receive the error message when I try to run an object from the Microsoft Dynamics NAV Development Environment or activate the Debugger.
To install more builds in the same machine I created a copy of the subfolder 70 and renamed the copy in 70 – 34346.
You should receive the same error message if you install NAV 2013 R2 although it has a subfolder 71.

Solution:
To run an object you could create a different icon to run the correct version of the client before to try to run an object from the Development Environment but this workaround doesn’t work if you want to activate the Debugger.
Create a .reg file, using a text editor like Notepad, for each build or version that you’ve installed.
Each time you have to work with a particolar version or build you have to use the correct reg file to override the registry key.

NAV2013.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DYNAMICSNAV\Shell\Open\Command] 
@="C:\\Program Files (x86)\\Microsoft Dynamics NAV\\70\\RoleTailored Client\\Microsoft.Dynamics.Nav.Client.exe -protocolhandler \"%1\""

NAV2013_34346.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DYNAMICSNAV\Shell\Open\Command] 
@="C:\\Program Files (x86)\\Microsoft Dynamics NAV\\70 - 34346\\RoleTailored Client\\Microsoft.Dynamics.Nav.Client.exe -protocolhandler \"%1\""

NAV2013R2.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DYNAMICSNAV\Shell\Open\Command] 
@="C:\\Program Files (x86)\\Microsoft Dynamics NAV\\71\\RoleTailored Client\\Microsoft.Dynamics.Nav.Client.exe -protocolhandler \"%1\""

NAV2009.reg
NOTE: for the version 2009 or 2009 R2 you have to remove the -protocolhandler parameter

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DYNAMICSNAV\Shell\Open\Command] 
@="C:\\Program Files (x86)\\Microsoft Dynamics NAV\\60\\RoleTailored Client\\Microsoft.Dynamics.Nav.Client.exe \"%1\""

Did my solution solve your problem? Leave a reply.

Microsoft Visual Studio 2005 Service Pack 1 installation fails on Microsoft Windows 7

When you try to install the Microsoft Visual Studio 2005 Service Pack 1 on Microsoft Windows 7 appears the following error message:

The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch.

in Italian:

Impossibile installare la patch di aggiornamento perché il programma da aggiornare manca oppure la patch è progettata per aggiornare una versione differente di tale programma. Assicurarsi che il programma da aggiornare sia disponibile nel computer in uso e che la versione della patch di aggiornamento sia corretta.

Solution:

Download and install SP1 from the following link:
Microsoft® Visual Studio® 2005 Team Suite Service Pack 1

Update:

After you can install the following update:
Visual Studio 2005 Service Pack 1 Update for Windows Vista (This update also applies to Windows 7, Windows Server 2008, and Windows Server 2008 R2)

Did my solution solve your problem? Leave a reply.