Файл Cfgconfig.xml может использоваться для выполнения набора команд до и после запуска автоматического обновления с помощью Cfg.exe, содержащегося в папке AutoUpdate, которая расположена рядом с папкой установки продукта.
Для создания Cfgconfig.xml откройте стандартный текстовый редактор.
Набор команд задаётся в разделах:
Раздел | Краткое описание |
<Start> | Определение времени ожидания завершения обновления. |
<Before> | Выполнение набора команд до выполнения автоматического обновления. |
<After> | Выполнение набора команд после выполнения автоматического обновления. |
<Cfg> | Поддержка работы пользовательских ярлыков, настроенных на Cfg.exe. |
<File> | Определение действий, выполняемых с файлом. |
<Var> | Создание системных переменных среды и переменных среды пользователя. |
<Log> | Установка MSI-файла с получением файла лога. |
<Msi> | Определение действий с предыдущими установленными релизами и проверка целостности файлов. |
Примечание. Структура файла должна начинаться с раздела <Start>, все остальные разделы должны быть размещены внутри него. Любой из разделов, кроме <Start>, может быть подразделом <Before> или <After>.
Определение времени ожидания завершения обновления.
Раздел является контейнером для разделов <Before>, <After> и может содержать следующий атрибут:
Атрибут | Описание |
Timeout | Определяет время, в течение которого ожидается завершение
обновления «Форсайт. Аналитическая платформа».
Если к моменту истечения времени обновление еще не завершилось
(например, процесс не отвечает), то оно будет остановлено
принудительно, после чего будет произведен запуск «Форсайт. Аналитическая платформа».
Значение задается в секундах. По умолчанию значение равно 20 минутам. Для неограниченного ожидания задайте атрибуту значение «-1». |
Пример указания атрибута:
<Start Timeout="7200">
...
</Start>
В течение 2 часов будет ожидаться завершение обновления.
Выполнение набора команд до выполнения автоматического обновления.
Раздел является контейнером для всех разделов, кроме раздела <Start>, и не содержит атрибутов.
Выполнение набора команд после выполнения автоматического обновления.
Раздел является контейнером для всех разделов, кроме раздела <Start>, и не содержит атрибутов.
Поддержка работы пользовательских ярлыков, настроенных на Cfg.exe. Для работы пользовательских ярлыков скопируйте новый Cfg.exe в папку текущего релиза.
Раздел может содержать следующий атрибут:
Атрибут | Описание |
Copy | Определяет признак копирования файла:
|
Пример использования атрибута:
<Start>
<After>
<Cfg Copy="1"/>
</After>
</Start>
После установки новой версии создается папка предыдущего релиза, куда помещается новый файл Cfg.exe.
Определение действий, выполняемых с файлом.
Раздел может содержать следующие атрибуты и подразделы:
Атрибуты/подразделы | Описание |
Path | Имя файла. Возможно использование подстановок, приведенных в таблице ниже, а также системных и пользовательских переменных: %AllUsersProfile%, %AppData%, %CommonProgramFiles%, %HomeDrive%, %SystemDrive%, %HomePath%, %UserProfile%, %WinDir%, %SystemRoot%. |
Args | Аргументы командной строки. Возможно использование подстановок, приведенных в таблице ниже, а также системных и пользовательских переменных: %AllUsersProfile%, %AppData%, %CommonProgramFiles%, %HomeDrive%, %SystemDrive%, %HomePath%, %UserProfile%, %WinDir%, %SystemRoot%. |
Copy | Признак копирования файла:
|
NoExec | Признак запрета выполнения файла:
|
NoDb | Признак запрета внесения в БД:
|
NoTemp | Признак копирования файла обновления во временную папку:
Примечание. Для корректного выполнения команд из Cfgconfig.xml все используемые при их выполнении файлы должны быть указаны в Cfgconfig.xml. Файлы с атрибутом NoDb="1" не будут скопированы, если не установлен атрибут NoTemp="0". |
<Code> | Обработка кода возврата. Подраздел может содержать следующие атрибуты:
|
<FileCondition> | Определение настроек по наличию и версии файла. Данный подраздел является необязательным. Позволяет проверить наличие и версию файла, и в случае наличия переопределить настройки для файла, заданные в разделе <File>, такие как Path, Args, Copy, NoExec и др. Действие, переопределенное для исходного файла, будет произведено после проверки всех условий, содержащихся в разделе <File>. Если атрибут Path переопределен, но значение его пустое, то файл, заданный в разделе <File>, устанавливаться не будет. Подраздел может содержать следующие атрибуты:
|
<OsCondition> | Определение настроек файла для конкретной операционной системы и платформы. Данный подраздел не является обязательным. Позволяет переопределить атрибуты Path, Args, Copy, NoExec и другие атрибуты раздела <File>. Действие, переопределенное для исходного файла, будет произведено после проверки всех условий, содержащихся в разделе <File>. Если атрибут Path переопределен, но значение его пустое, то файл, заданный в разделе <File>, устанавливаться не будет. Подраздел может содержать следующие атрибуты:
|
<RegistryCondition> | Определение настроек по наличию и значению ключа в реестре. Данный подраздел является необязательным. Отвечает за настройку файла в зависимости от наличия и значения ключа в реестре. Если ключ найден, и значение соответствует значению, указному в KeyValue, то настройки (например, Path) берутся из этого элемента. В случае если заданы KeyPath и KeyName, проверяется наличие данного ключа. В случае если KeyName и KeyValue не заданы, проверяется только наличие ветки реестра. В подраздле <RegistryCondition> могут быть переопределены атрибуты <File>, такие как Path, Args, Copy, NoExec и др. Действие, переопределенное для исходного файла, будет произведено после проверки всех условий, содержащихся в разделе <File>. Если атрибут Path переопределен, но значение его пустое, то файл, заданный в разделе <File>, устанавливаться не будет. Подраздел может содержать следующие атрибуты:
|
В таблице приведены значения для атрибутов OsName, OsVersion:
Операционная система | MajorVersion | MinorVersion | OsName |
Windows 10 | 10 | 0 | Win10 |
Windows Server 2012 | 6 | 2 | WinServer2012 |
Windows Server 2012 R2 | 6 | 3 | WinServer2012R2 |
Windows Server 2016 | 10 | 0 | WinServer2016 |
Windows Server 2019 | 10 | 0 | WinServer2019 |
В таблице приведены подстановки, которые могут быть использованы в качестве значений атрибутов Path, Args, FileName для указания системных директорий и директорий установки платформы:
Подстановка | Описание |
#INSTALLDIR# | Директория (путь) установки «Форсайт. Аналитическая платформа». Например, для 64-разрядной OC Windows: C:\Program Files\Foresight\. |
#SYSTEM32DIR# | Директория (путь) до системной папки system32.
Подстановка #SYSTEM32DIR# возвращает значение «%windir%\system32». |
Например, для использования подразделов <RegistryCondition>, <OsCondition> в папке обновления должен находиться дистрибутив 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.2"/>
<OsCondition OsVersion="6.3"/>
<OsCondition OsVersion="10.0"/>
</File>
</Before>
</Start>
Перед установкой «Форсайт. Аналитическая платформа» будет проверено наличие ключа в реестре:
если запись в реестре есть и указанная в ней версия больше или равна проверяемой версии (Cmp, KeyValue), то дистрибутив запущен не будет (Path="");
если записи нет или запись есть, но указанная в ней версия меньше проверяемой версии, то будет запущен дистрибутив для установки (IsDefault="True");
файл будет запущен только в проверяемых версиях Windows:
Windows 10;
Windows Server 2012;
Windows Server 2012 R2;
Windows Server 2016;
Windows Server 2019.
Для выполнения примера с использованием подразделов <RegistryCondition>, <OsCondition> в папке обновления должны находиться дистрибутивы 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.2"/>
<OsCondition OsVersion="6.3"/>
<OsCondition OsVersion="10.0"/>
</File>
</Before>
</Start>
Перед установкой «Форсайт. Аналитическая платформа» будет проверено наличие файла mfc140.dll:
если файл есть и его версия больше или равна проверяемой версии (Cmp, VersionMask), то дистрибутив запущен не будет (Path="");
если файла нет или версия файла меньше проверяемой версии, то будет запущен файл VCRedistLauncher.exe;
файл будет запущен только в проверяемых версиях Windows:
Windows 10;
Windows Server 2012;
Windows Server 2012 R2;
Windows Server 2016;
Windows Server 2019.
Пример использования подраздела <Code>:
<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>
До обновления производится запуск командной строки с заданным параметром, в зависимости от кода возврата:
обновление будет прервано;
обновление будет продолжено. После обновления будет произведен запуск командной строки с заданным параметром.
Для выполнения примера с использованием подразделов <RegistryCondition>, <OsCondition> в папке обновления должны находиться дистрибутивы 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.
Пример копирования файлов по определенному пути с использованием подстановки #INSTALLDIR#:
<Start>
<After>
<File Path="my.dll" Args="#INSTALLDIR#\Analytics Platform 10.x" Copy="1" NoExec="1" />
<File Path="regsvr32.exe" Args="-s "#INSTALLDIR#\Analytics Platform 10.x\my.dll"" NoDb="1">
<Return>
<Code Value="-1" Break="Y" />
</Return>
</File>
</After>
</Start>
После обновления первый элемент <File> копирует файл my.dll из каталога обновления в каталог установки «Форсайт. Аналитическая платформа» (#INSTALLDIR#\Analytics Platform 10.x), второй элемент <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.
Создание системных переменных среды и переменных среды пользователя.
Раздел может содержать следующие атрибуты:
Атрибут | Описание |
Name | Имя переменной окружения. |
IsUser | Признак пользовательской переменной:
|
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-файла с получением файла лога.
Раздел может содержать следующие атрибуты:
Атрибут | Описание |
File | Путь к файлу, в который будет помещен лог. |
Mode | Тип информации, поступающей в лог. Значение атрибута может
представлять одно или несколько значений.
Подробное описание можно найти в специализированной литературе (MSDN). |
Attrs | Частота очищения буфера лога.
Подробное описание можно найти в специализированной литературе (MSDN). |
Пример использования раздела:
<Start>
<After>
<Log File="C:\ppinstall.log" Mode="Warning|User|Info" Attrs="Append|FlushEachLine" />
</After>
</Start>
После обновления будет создан лог выполнения обновления.
Определение действий с предыдущими установленными релизами Prognoz Platform и «Форсайт. Аналитическая платформа» и настройка проверки целостности исполняемых файлов.
Раздел может содержать следующие атрибуты:
Атрибут | Описание |
RemoveMode | Определяет, удалять ли предыдущие установленные релизы Prognoz Platform и «Форсайт. Аналитическая платформа»:
|
CheckControlSums | Определяет, будет ли при каждом запуске «Форсайт. Аналитическая платформа» проверяться целостность исполняемых файлов и соответствие их содержимого эталону:
|
Пример использования раздела:
<Start>
<Before>
<Msi RemoveMode="none" CheckControlSums="True"/>
</Before>
</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 или через сервисы технической поддержки, которые доступны после регистрации на сайте.
Для выполнения набора команд поместите файл в источник обновления. Доступные операции:
установка значений системных переменных среды и переменных среды пользователя. Данная возможность может понадобиться для установки имени сервера лицензий (системная переменная среды LSFORCEHOST). Для этого создайте раздел <Var>;
Примечание. В переменные среды пользователя добавляются все системные переменные.
установка msi-файла с получением файла лога. Для этого создайте раздел <Log>;
копирование файлов по определенному пути с возможностью использования подстановки #INSTALLDIR#, которая возвращает путь установки «Форсайт. Аналитическая платформа». Пример использования подстановки приведен в описании раздела <File>;
отмена удаления предыдущих версий или настройка параметров удаления определенного релиза и справочной системы. Для этого создайте раздел <Msi>;
задание настроек установки файла в зависимости от платформы и ОС или в зависимости от наличия и значения ключа в реестре. Для этого используйте подразделы <FileCondition>, <OsCondition>, <RegistryCondition> в разделе <File>.
См. также: