Файл cfgconfig.xml используется для выполнения набора команд до или после запуска инсталлятора при обновлении с помощью cfg.exe.
Структура файла должна начинаться с раздела <Start>, все остальные разделы должны быть размещены внутри <Start>.
Примечание. Любой из разделов, кроме <Start>, может быть подразделом <Before> или <After>, которые определяют, когда должен выполниться набор команд: до запуска инсталлятора или после.
Определение времени ожидания завершения обновления (<Start>)
Элемент <Start> является контейнером для всех команд: все остальные разделы размещаются внутри этого элемента.
Атрибут | Описание |
Timeout | Определяет время, в течение которого ожидается завершение
обновления «Форсайт. Аналитическая платформа».
Если к моменту истечения времени обновление еще не завершилось
(например, процесс не отвечает), то оно будет остановлено
принудительно, после чего будет произведен запуск «Форсайт. Аналитическая платформа».
Значение задается в секундах. По умолчанию значение равно 20 минутам. Для неограниченного ожидания задайте атрибуту значение «-1». |
<Start Timeout="7200">
<Cfg Copy="1"/>
</Start>
В течение 2 часов будет ожидаться завершение обновления.
Поддержка работы пользовательских ярлыков, настроенных на cfg.exe (<Cfg>)
Для работы пользовательских ярлыков, настроенных на cfg.exe, необходимо скопировать новый cfg.exe в папку текущего релиза.
Для этого создайте раздел <Cfg> в cfgconfig.xml.
Атрибут | Описание |
Copy | Определяет признак копирования файла:
1 - копировать; 0 - не копировать. |
<Start>
<Cfg Copy="1"/>
</Start>
После установки новой версии создается папка предыдущего релиза, куда помещается новый файл cfg.exe.
Определение действий, выполняемых с файлом (<File>)
Для определения действий, выполняемых с файлом, создайте раздел <File> в cfgconfig.xml
Атрибут | Описание |
Path | Определяет имя файла. Возможно использование подстановок, а также системных и пользовательских переменных: %AllUsersProfile%, %AppData%, %CommonProgramFiles%, %HomeDrive%, %SystemDrive%, %HomePath%, %UserProfile%, %WinDir%, %SystemRoot%. |
Args | Определяет аргументы командной строки. Возможно использование подстановок, а также системных и пользовательских переменных: %AllUsersProfile%, %AppData%, %CommonProgramFiles%, %HomeDrive%, %SystemDrive%, %HomePath%, %UserProfile%, %WinDir%, %SystemRoot%. |
Copy | Определяет признак копирования файла:
1 - копировать; 0 - не копировать. |
NoExec | Запрещает выполнение файла:
1 - не выполнять файл; 0 - выполнять. |
NoDb | Запрещает внесение в БД:
1 - не заносить в БД; 0 - заносить в БД. |
NoTemp | Определяет признак копирования файла обновления во временную
папку:
1 - не копировать; 0 - копировать. При обновлении во временную папку будут копироваться необходимый пакет msi, файлы, которые явно прописаны в cfgconfig.xml в атрибуте Path раздела <File>, а также, если необходимо, файлы cfg.exe и lservrc.Примечание. Для корректного выполнения команд из cfgconfig.xml все используемые при их выполнении файлы должны быть указаны в cfgconfig.xml. Файлы с атрибутом NoDb="1" не будут скопированы, если не установлен атрибут NoTemp="0". |
<Start>
<Before>
<File Path="cmd.exe" Args="/C">
<Return>
<Code Value="0" Message="Success" Break="N" />
<Code Value="-1" Message="Fail" Break="Y" />
</Return>
</File>
</Before>
<After>
<File Path="cmd.exe" Args="/C" />
</After>
</Start>
До обновления производится запуск командной строки с заданным параметром, в зависимости от кода возврата:
обновление будет прервано;
продолжено. После обновления будет произведен запуск командной строки с заданным параметром.
<Start>
<After>
<File Path="my.dll" Args="#INSTALLDIR#\Foresight Analytics Platform 9.2" Copy="1" NoExec="1" />
<File Path="regsvr32.exe" Args="-s "#INSTALLDIR#\Foresight Analytics Platform 9.2\my.dll"" NoDb="1">
<Return>
<Code Value="-1" Break="Y" />
</Return>
</File>
</After>
</Start>
После обновления первый элемент <File> копирует файл my.dll из каталога обновления в каталог установки «Форсайт. Аналитическая платформа» (#INSTALLDIR#\Foresight Analytics Platform 9.2), второй элемент <File> регистрирует скопированный файл my.dll и проверяет код возврата.
Если на компьютере не установлен Microsoft SQL Native Client, то в папку с обновлением поместите два файла cfgconfig.xml и sqlncli.exe. Файл cfgconfig.xml должен иметь следующую структуру:
<Start>
<Before>
<File Path="sqlncli.exe"/>
</Before>
</Start>
До обновления будет установлен Microsoft SQL Native Client.
Обработка кода возврата (<Code>)
Создайте в разделе <File> подраздел <Code>.
Атрибут | Описание |
Value | Значение кода возврата. |
Message | Определяет сообщение. |
Break | Определяет код, при котором операция будет прервана или
продолжена:
Y. Операция будет прервана; N. Операция будет продолжена. |
<Start>
<Before>
<File Path="cmd.exe" Args="/C">
<Return>
<Code Value="0" Message="Success" Break="N" />
<Code Value="-1" Message="Fail" Break="Y" />
</Return>
</File>
</Before>
<After>
<File Path="cmd.exe" Args="/C" />
</After>
</Start>
До начала обновления будет произведен запуск командной строки с заданным параметром и обновление:
будет прервано, если код возврата равен «-1», будет выдано заданное сообщение;
будет продолжено, если код возврата равен «0», будет выдано заданное сообщение.
Определение настроек по наличию и версии файла (<FileCondition>)
В разделе <File> создайте подраздел <FileCondition>. Данный раздел является необязательным подразделом <File>. Позволяет проверить наличие и версию файла, и в случае наличия переопределить настройки для файла, заданные в разделе <File>, такие как Path, Args, Copy, NoExec и др. Действие, переопределенное для исходного файла, будет произведено после проверки всех условий, содержащихся в разделе <File>. Если атрибут Path переопределен, но значение его пустое, то файл, заданный в разделе <File>, устанавливаться не будет.
Атрибут | Описание |
FileName | Полное имя файла, существование которого требуется проверить. Возможно использование подстановок, а также системных и пользовательских переменных: %AllUsersProfile%, %AppData%, %CommonProgramFiles%, %HomeDrive%, %SystemDrive%, %HomePath%, %UserProfile%, %WinDir%, %SystemRoot%. |
VersionMask | Маска версии файла. Данный атрибут может отсутствовать. Если атрибут задан, то версия файла, указанного в «FileName», проверяется на соответствие этой маске. Если файл найден и соответствует маске, то настройки (например, Path) берутся из этого элемента. |
Cmp | Тип сравнения версии. Возможные значения EQ (Равно), LEQ (меньше или равно), GEQ (больше или равно), LS (меньше), GT (больше). Если атрибут отсутствует, то по умолчанию будет использовано значение EQ. |
IsDefault | Определяет выполнение условия без проверки идентифицирующих
атрибутов (FileName, VersionMask, Cmp). Если атрибуту задано
значение True, то
идентифицирующие атрибуты не проверяются и считается, что
условие выполнилось. Если в условии указан только атрибут
IsDefault="True", то с исходным файлом будет произведено
действие, заданное в разделе <File>. Действие выполняется
после проверки всех условий, содержащихся в разделе <File>.
По умолчанию атрибут имеет значение False. |
В папке обновления должны находиться дистрибутивы msxml6_x64.exe и msxml6_x86.exe.
<Start>
<Before>
<File Path="msxml6_x86.exe">
<FileCondition FileName="%systemroot%\system32\msxml6r.dll" Cmp="GEQ" VersionMask="6.*" Path="" />
<FileCondition IsDefault="True" />
<OsCondition Platform="x64" Path="msxml6_x64.exe" />
</File>
</Before>
</Start>
Перед установкой «Форсайт. Аналитическая платформа» будет проверено наличие файла msxml6r.dll:
если файл найден и его версия соответствует заданной, то запуск файла msxml6_x86.exe произведен не будет (Path="");
если файл не обнаружен или его версия не соответствует заданной (Cmp, VersionMask), то начнется проверка условия (OsCondition). В зависимости от выполнения условия будет запущен msxml6_x86.exe или msxml6_x64.exe.
Определение настроек файла для конкретной операционной системы и платформы (<OsCondition>)
Для определения настроек файла для конкретной операционной системы и платформы создайте в разделе <File> подраздел <OsCondition>. Данный подраздел не является обязательным.
В элементе <OsCondition> могут быть переопределены атрибуты <File>, такие как Path, Args, Copy, NoExec и др. Действие, переопределенное для исходного файла, будет произведено после проверки всех условий, содержащихся в разделе <File>. Если атрибут Path переопределен, но значение его пустое, то файл, заданный в разделе <File>, устанавливаться не будет.
Атрибут | Описание |
OsName | Название операционной системы. Возможные значения: Win7, WinServer2008, WinServer2008R2. |
OsVersion | Версия операционной системы в формате MajorVersion.MinorVersion. Используется отдельно от «OsName». В таблице ниже приведены значения MajorVersion и MinorVersion для операционных систем. MinorVersion может отсутствовать, например: OsVersion = "5". В этом случае условие применяется ко всем ОС, у которых MajorVersion = 5. |
ServicePack | Номер пакета обновления. Значение указывается через точку с запятой. Например: ServicePack = "2;3". Это означает, что файл будет установлен для SP2, SP3. |
Platform | Платформа. Возможные значения: x86, x64. Если платформа не указана, то файл выполняется для всех платформ. |
Cmp | Тип сравнения версии ОС. Возможные значения EQ (Равно), LEQ (меньше или равно), GEQ (больше или равно), LS (меньше), GT (больше). Если атрибут отсутствует, то по умолчанию будет использовано значение EQ. |
IsDefault | Определяет выполнение условия без проверки идентифицирующих
атрибутов (OsName, OsVersion, ServicePack и др.). Если атрибуту
задано значение True,
то идентифицирующие атрибуты не проверяются и считается, что
условие выполнилось. Если в условии указан только атрибут
IsDefault="True", то с исходным файлом будет произведено
действие, заданное в разделе <File>. Действие выполняется
после проверки всех условий, содержащихся в разделе <File>.
По умолчанию атрибут имеет значение False. |
Операционная система | MajorVersion | MinorVersion | OsName |
Windows Server 2008 | 6 | 0 | WinServer2008 |
Windows 7 | 6 | 1 | Win7 |
Windows Server 2008 R2 | 6 | 1 | WinServer2008R2 |
Windows 8 | 6 | 2 | Win8 |
Windows Server 2012 | 6 | 2 | WinServer2012 |
Windows 8.1 | 6 | 3 | Win8.1 |
Windows Server 2012 R2 | 6 | 3 | WinServer2012R2 |
Windows 10 | 10 | 0 | Win10 |
Windows Server 2016 | 10 | 0 | WinServer2016 |
В папке обновления должны находиться дистрибутивы vc_redist.x86.exe и VCRedistLauncher.exe.
<Start Timeout="-1">
<Before>
<File Path="vc_redist.x86.exe" NoExec="1"/>
<File Path="VCRedistLauncher.exe" Args="/install /passive /norestart">
<FileCondition FileName="#SYSTEM32DIR#\mfc140.dll" VersionMask="14.0.24212" Cmp="GEQ" Path=""/>
<FileCondition IsDefault="True"/>
<OsCondition OsVersion="6.0" ServicePack="2;3"/>
<OsCondition OsVersion="6.1" ServicePack="1;2"/>
<OsCondition OsVersion="6.2"/>
<OsCondition OsVersion="6.3"/>
<OsCondition OsVersion="10.0"/>
</File>
</Before>
</Start>
Перед установкой «Форсайт. Аналитическая платформа» будет проверено наличие файла mfc140.dll:
если файл есть и его версия больше или равна проверяемой версии (Cmp, VersionMask), то дистрибутив запущен не будет (Path="");
если файла нет или версия файла меньше проверяемой версии, то будет запущен файл VCRedistLauncher.exe;
файл будет запущен только в проверяемых версиях Windows:
Windows Server 2008;
Windows 7, Windows Server 2008 R2;
Windows 8, Windows Server 2012;
Windows 8.1, Windows Server 2012 R2;
Windows 10, Windows Server 2016.
Определение настроек по наличию и значению ключа в реестре (<RegistryCondition>)
Создайте в разделе <File> подраздел <RegistryCondition>. Данный раздел является необязательным подразделом <File>. Отвечает за настройку файла в зависимости от наличия и значения ключа в реестре. Если ключ найден, и значение соответствует значению, указному в «KeyValue», то настройки (например, Path) берутся из этого элемента. В случае если заданы «KeyPath» и «KeyName», проверяется наличие данного ключа. В случае если «KeyName» и «KeyValue» не заданы, проверяется только наличие ветки реестра. В элементе <RegistryCondition> могут быть переопределены атрибуты <File>, такие как Path, Args, Copy, NoExec и др. Действие, переопределенное для исходного файла, будет произведено после проверки всех условий, содержащихся в разделе <File>. Если атрибут Path переопределен, но значение его пустое, то файл, заданный в разделе <File>, устанавливаться не будет.
Атрибут | Описание |
KeyPath | Путь в реестре до ключа. Указывается относительный путь без [HKEY_LOCAL_MACHINE] или [HKEY_CURRENT_USER], ключ ищется сначала для ветки USER, затем для ветки LOCAL_MACHINE. |
KeyName | Имя ключа. Необязательный атрибут. |
KeyValue | Значение ключа. Необязательный атрибут. |
IsDefault | Определяет выполнение условия без проверки идентифицирующих
атрибутов (KeyPath, KeyName, KeyValue). Если атрибуту задано
значение True, то
идентифицирующие атрибуты не проверяются и считается, что
условие выполнилось. Если в условии указан только атрибут
IsDefault="True", то с исходным файлом будет произведено
действие, заданное в разделе <File>. Действие выполняется
после проверки всех условий, содержащихся в разделе <File>.
По умолчанию атрибут имеет значение False. |
Cmp | Тип сравнения версии. Возможные значения EQ (Равно), LEQ (меньше или равно), GEQ (больше или равно), LS (меньше), GT (больше). Если атрибут отсутствует, то по умолчанию будет использовано значение EQ. |
IsVersion | Признак сравнения значения как версии. Если атрибуту установлено значение True, то осуществляется попытка разбора значения KeyValue. Если в результате разбора получено целое/вещественное число или комбинация чисел в виде версии (например, «1.0.3»), то осуществляется сравнение с учетом заданного типа сравнения Cmp. Если разбор не удался, то осуществляется проверка на равенство значения KeyValue и значения в реестре. |
В папке обновления должен находиться дистрибутив Microsoft .NET Framework 4.5.2 (файл NDP452-KB2901907-x86-x64-AllOS-ENU.exe).
<Start Timeout="-1">
<Before>
<File Path="NDP452-KB2901907-x86-x64-AllOS-ENU.exe" Args="/passive /promptrestart /showrmui">
<RegistryCondition KeyPath="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" KeyName="Release" Cmp="GEQ" KeyValue="379893" Path=""/>
<RegistryCondition IsDefault="True" />
<OsCondition OsVersion="6.0" ServicePack="2"/>
<OsCondition OsVersion="6.1" ServicePack="1"/>
<OsCondition OsVersion="6.2"/>
<OsCondition OsVersion="6.3"/>
<OsCondition OsVersion="10.0"/>
</File>
</Before>
</Start>
Перед установкой «Форсайт. Аналитическая платформа» будет проверено наличие ключа в реестре:
если запись в реестре есть и указанная в ней версия больше или равна проверяемой версии (Cmp, KeyValue), то дистрибутив запущен не будет (Path="");
если записи нет или запись есть, но указанная в ней версия меньше проверяемой версии, то будет запущен дистрибутив для установки (IsDefault="True");
файл будет запущен только в проверяемых версиях Windows:
Windows Server 2008;
Windows 7, Windows Server 2008 R2;
Windows 8, Windows Server 2012;
Windows 8.1, Windows Server 2012 R2;
Windows 10, Windows Server 2016.
Создание системных переменных среды и переменных среды пользователя (<Var>)
Для определения системных переменных среды и переменных среды пользователя создайте раздел <Var> в cfgconfig.xml и определите соответствующие атрибуты.
Примечание. В переменные среды пользователя добавляются все системные переменные.
Атрибут | Описание |
Name | Определяет имя переменной окружения. |
IsUser | Определяет, будет ли переменная пользовательской. Доступные значения: true, false. |
Val | Определяет значение переменной. |
<Start>
<Before>
<Var Name="var_test" Val="var_val_test" />
</Before>
</Start>
До обновления будет создана переменная окружения var_test со значением var_val_test.
<Start>
<Before>
<Var Name="var_test" IsUser="true" Val="var_val_test" />
</Before>
</Start>
До обновления будет создана переменная среды пользователя var_test со значением var_val_test.
Установка msi-файла с получением файла лога (<Log>)
Для проведения установки msi-файла с получением файла лога создайте раздел <Log> в cfgconfig.xml и определите соответствующие атрибуты.
Атрибут | Описание |
File | Определяет путь к файлу, в который будет помещен лог. |
Mode | Определяет тип информации, поступающей в лог. Значение
атрибута может представлять одно или несколько значений.
Подробное описание можно найти в специализированной литературе (MSDN). |
Attrs | Определяет, как часто буфер лога должен очищаться.
Подробное описание можно найти в специализированной литературе (MSDN). |
<Start>
<Log File="C:\ppinstall.log" Mode="Warning|User|Info" Attrs="Append|FlushEachLine" />
</Start>
При обновлении будет создан лог выполнения обновления.
Определение действий с предыдущими установленными релизами и проверка целостности файлов (<Msi>)
Создайте раздел <Msi> для определения действий при автообновлении с предыдущими установленными релизами Prognoz Platform и «Форсайт. Аналитическая платформа» и для настройки проверки целостности исполняемых файлов.
Атрибут | Описание |
RemoveMode | Определяет, удалять ли предыдущие установленные релизы
Prognoz Platform
и «Форсайт. Аналитическая платформа»:
|
CheckControlSums | Определяет, будет ли при каждом запуске «Форсайт. Аналитическая платформа»
проверяться целостность исполняемых файлов и соответствие
их содержимого эталону:
|
<Start>
<Msi RemoveMode="none" CheckControlSums="True"/>
</Start>
Все установленные ранее релизы будут оставлены, будет включена проверка целостности исполняемых фалов.
Для удаления конкретного релиза или справочной системы в файле cfgconfig.xml создайте раздел <After> c подразделом <File> и в нем укажите атрибуты Path и Args аналогично примеру.
<Start>
<After>
<File Path="msiexec.exe" Args='/qn /x {4B7BC2B5-F02D-4CBE-B177-06DCAA4704F1}' NoDb="1"/>
</After>
<Msi RemoveMode="none" />
</Start>
В данном случае будет произведено обновление, останутся все установленные релизы, кроме 20-го, который был принудительно удален после обновления.
Атрибут Args может быть задан с различными аргументами:
Args='/x {<GUID>}' - удаление указанного релиза/справочной системы;
Args='/qn /x {<GUID>}' - удаление указанного релиза/справочной системы в «тихом» режиме.
<GUID> - это код Prognoz Platform или «Форсайт. Аналитическая платформа» для определенного релиза/справочной системы, который необходимо удалить. Если необходимо получить код релиза обратитесь в техническую поддержку по адресу support@fsight.ru или через сервисы технической поддержки, которые доступны после регистрации на сайте.
Следующие подстановки могут быть использованы в значениях атрибутов для указания системных директорий и директорий установки платформы:
Подстановка | Описание |
#INSTALLDIR# | Директория (путь) установки «Форсайт. Аналитическая платформа». Например:
|
#SYSTEM32DIR# | Директория (путь) до системной папки system32.
В зависимости от разрядности cfge.exe и ОС, подстановка #SYSTEM32DIR# возвращает следующие значения: |
См. также: