Upgrade from version 9.16 to 9.17 ↪
Upgrading from versions later than 9.17 ↪
Preconditions
- The conserver server must have an agent installed, pointing to the repserver and with the distribution module enabled in the agent profile.
- The agent installed on the conserver must have an agent profile with no list of communication nodes.
Upgrade from version 9.16 to 9.17
⚐ Note: Installation of the Conserver requires that the server has version 4.8 of the .NET framework or later
1. Create a file with .bat extension (e.g., UpdateConserver.bat)
2. Copy and edit the following script in the created file and save it.
⚐ Note:
- Enter in the variablepath
the route where the conserver is installed.
- Enter in the variableconserver
the full name of the conserver installer
- If you have more than one conserver and they are installed on a different path, you must create a different .bat and project for each of the conservers
:: Ingresar en la variable path la ruta donde se encuentra instalado el conserver
SET path = C:\"Program Files (x86)"\Aranda\Conserver
:: Ingresar el nombre del instalador .exe del conserver
SET conserver = Aranda.Conserver.Installer.9.17.0.0.exe
SET config = Aranda.Conserver.Windows.Service.exe.config
MsiExec.exe /X{96E7810B-02CE-40D1-A17D-4FDAC64B5B0C} /qn
@timeout /t 6 /nobreak
cd %TEMP%
cmd.exe /c %conserver% /S /v/qn
@timeout /t 20 /nobreak
del %path%\%config%
copy %TEMP%\%config% %path%
sc start ArandaConserverWindowsServiceV9
del %TEMP%\%conserver%
del %TEMP%\%config%
1. Create a file with an extension .config
and name it Aranda.Conserver.Windows.Service.exe.config
2. Copy, configure key fields <appSettings> and save.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="local" connectionString="Data Source=Data\local.dat;busytimeout=60" providerName="System.Data.SQLite.EF6" />
</connectionStrings>
<appSettings>
<add key="dataConfiguration:defaultDatabase" value="local" />
<add key="Serilog:MinimumLevel" value="Debug" />
<add key="Serilog:WriteTo:0:Name" value="File" />
<add key="Serilog:WriteTo:0:Args:path" value="Logs\log.txt" />
<add key="Serilog:WriteTo:0:Args:shared" value="true" />
<add key="Serilog:WriteTo:0:Args:rollingInterval" value="Day" />
<add key="Logging:LogLevel:Default" value="Information" />
<add key="serverAddress" value="" />
<add key="enableProxy" value="false" />
<add key="proxyAddress" value="" />
<add key="proxyUser" value="" />
<add key="proxyPassword" value="" />
<add key="privateIp" value="" />
<add key="publicIp" value="" />
<add key="mqttServerPort" value="1884" />
<add key="mqttIp" value="" />
<add key="publicServerPort" value="80" />
<add key="privateServerPort" value="80" />
<add key="p2pPort" value="9501" />
<add key="maxDistributionSleepMsPerThread" value="8" />
<add key="maxDistributionThreads" value="4" />
<add key="enableDiscoveryCommon" value="1" />
<add key="SecondsPingRemoteServer" value="60" />
<add key="enableSecurity" value="false" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<entityFramework>
<providers>
<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetZip" publicKeyToken="6583c7c814667745" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.14.0.0" newVersion="1.14.0.0" />
</dependentAssembly>
<dependentAssembly>
<publisherPolicy apply="no" />
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="4.121.0.0 - 4.65535.65535.65535" newVersion="4.122.19.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.1" newVersion="6.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration.EnvironmentVariables" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.1" newVersion="6.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.23.1.0" newVersion="6.23.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Tokens" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.23.1.0" newVersion="6.23.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.23.1.0" newVersion="6.23.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="RestSharp" publicKeyToken="598062e77f915f75" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-106.13.0.0" newVersion="106.13.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration.Binder" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.1" newVersion="6.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.6" newVersion="6.0.0.6" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OpenIdConnect" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Logging" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Options" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Primitives" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.JsonWebTokens" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.23.1.0" newVersion="6.23.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Protocols" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.23.1.0" newVersion="6.23.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Protocols.OpenIdConnect" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.23.1.0" newVersion="6.23.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Abstractions" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.23.1.0" newVersion="6.23.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite.EF6" />
<add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Aranda.Conserver.Ws.Service1">
<endpoint address="" binding="basicHttpBinding" contract="Aranda.Conserver.Ws.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/Design_Time_Addresses/Aranda.Conserver.Ws/Service1/" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>
3. Create a Distribution Packageguy copy with the installer of the consever.
4. Create a Distribution Package guy copy with the Aranda.Conserver.Windows.Service.exe.config
created in steps 3 and 4.
5. Create a new Distribution Pack guy execution with the file .bat created in steps 1 and 2.
6. Log in to ADM Distribution management and create a Software Distribution Project.
7. In the project, add the packages created in steps 5, 6, and 7 in the following order:
- Conserver Installer Package (Copy type package) adding %TEMP% as a path.
- Package
Aranda.Conserver.Windows.Service.exe.config
(Copy type package) adding %TEMP% as a path. - Package
UpdateConserver.bat
(Run-type package)

8. Run the distribution on the computer to perform the Conserver update.
⚐ Note: If you have more than one conserver and they are installed on a different path, you must create a
.bat
one.config
and a different project for each of the conservers. If the conservers maintain the installation path and have the same configuration, they can be submitted in the same distribution project
9. In the ADM configuration, define the Reserver/Conserver Communication Components and check the connection.
Upgrading from versions after 9.17
To update the conserver using a distribution project, you need to follow the following steps:
1. Create a file with .bat extension (e.g., UpdateConserver.bat)
2. Copy and edit the following script in the created file and save it.
⚐ Note:
- Enter in the variablepath
the route where the conserver is installed.**
- Enter in the variableconserver
the full name of the conserver installer
- If you have more than one conserver and they are installed on a different path, you must create a different .bat and project for each of the conservers
:: Ingresar en la variable path la ruta donde se encuentra instalado el conserver
SET path = C:\"Program Files (x86)"\Aranda\Conserver
:: Ingresar el nombre del instalador .exe del conserver
SET conserver = Aranda.Conserver.Installer.9.16.3.6.exe
copy %path%\Aranda.Conserver.Windows.Service.exe.config %TEMP%
@timeout /t 3 /nobreak
MsiExec.exe /X{96E7810B-02CE-40D1-A17D-4FDAC64B5B0C} /qn
@timeout /t 6 /nobreak
cd %TEMP%
cmd.exe /c %conserver% /S /v/qn
@timeout /t 20 /nobreak
del %path%\Aranda.Conserver.Windows.Service.exe.config
@timeout /t 3 /nobreak
copy %TEMP%\Aranda.Conserver.Windows.Service.exe.config %path%
@timeout /t 3 /nobreak
sc start ArandaConserverWindowsServiceV9
del %TEMP%\Aranda.Conserver.Windows.Service.exe.config
del %TEMP%\%conserver%
3. Create a Distribution Package guy copy with the installer of the consever.
4. Create a new Distribution Pack guy execution with the file .bat created in steps 1 and 2.
5. Log in to ADM Distribution Management and create a Software Distribution Project.
6. In the project add the packages created in step 3 and 4 by first adding the conserver installer package (Copy type package) adding %TEMP% as a path.

7. Run the distribution on the computer to perform the Conserver update.
⚐ Note:
- If you have more than one conserver and they are installed on a different path, you must create a different .bat and project for each of the conservers. If the conservers maintain the installation path, they can be submitted in the same distribution project.
If the distribution has been successful, the conserver is updated.
8. In the ADM configuration, define the Reserver/Conserver Communication Components and check the connection.