Ручная сборка DirectumRX.application (Application manifest)

21 3

Ситуация

Система DirectumRX уже установлена, настроена и в ней работают пользователи.

Заказчик:

- А можно настроить https, у нас появились сертификаты!? (при установке https не настраивался)

- Некоторым нашим пользователям не удобно работать в Web-клиенте, а можно открыть "толстый" клиент наружу!? (установка RX производилась на localhost)

- Домен, который использовали при установке, был временным, можно его поменять на другой!?

Ситуация знакомая и встречается довольно часто. Давайте разбираться, как быть и что делать.

Суть проблемы

Если зайти по ссылке http://Домен/DirectumRX.Application, то скачивается Application manifest файл DirectumRX.application, который необходим для установки "толстого" клиента DirectumRX (это Вам не Directum 5).

Посмотрим на него поближе, для этого откроем блокнотом файл C:\inetpub\wwwroot\DirectumRX.application


 

Тут нас интересуют два элемента: 

  • deploymentProvider - Тут хранится путь к серверу RX
  • DigestValue - Сгенерированный хеш файла C:\inetpub\wwwroot\DirectumRX_Client\Ваша версия RX\_ConfigSettings.xml

Если перенастроить все _ConfigSetting.xml в C:\inetpub\wwwroot\, включая ...\DirectumRX_Client\версия RX\_ConfigSettings.xml, то можно поймать ошибку установки клиента - "Файл, _ConfigSettings.xml, имеет рассчитанный хеш, отличный от указанного в манифесте".

Решение

1) Меняем домен в C:\inetpub\wwwroot\DirectumRX_Client\Ваша версия RX\_ConfigSettings.xml, если еще этого не сделали.

2) На диске C:\ создаем папку, например DirectumRX_manifest_update (название любое). Папку можно создать где угодно, главное, чтобы не было проблем с пробелами и прочими символами в путях.

3) Копируем в нее приложение mage.exe, которое лежит в папке C:\Program Files\Directum Company\DirectumRX\Utilities\ConfigurationTool. Еще, как вариант, mage.exe можно взять из MS SDK, например C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools или SDK 8.0A, смотря какая стоит.

4) Так же создаем в ней bat файл, например C:\DirectumRX_manifest_update\Update.bat


 

Итак, заполняем bat файл (на примере DirectumRX версии 3.3.55).

Команда 1. Собирает новый DirectumRX.exe.manifest в указанную папку:

C:\DirectumRX_manifest_update\mage.exe -New Application -Version "3.3.5500.0" -ToFile "C:\DirectumRX_manifest_update\\DirectumRX.exe.manifest" -Name "DirectumRX" -Publisher "Directum Company" -UseManifestForTrust true -IconFile Sungero.ico -FromDirectory "C:\inetpub\wwwroot\DirectumRX_Client\3.3.8.15"
  • Version - Заполняется текущей версией DirectumRX (посмотреть можно в старом C:\inetpub\wwwroot\DirectumRX.application - параметр version)
  • ToFile - Путь, где будет генерироваться новый DirectumRX.exe.manifest
  • FromDirectory - Путь к клиенту DirectumRX

Команда 2. Собирает новый DirectumRX.application в указанную папку:

C:\DirectumRX_manifest_update\mage.exe -New Deployment -Version "3.3.5500.0" -ToFile "C:\DirectumRX_manifest_update\DirectumRX.application" -AppManifest "C:\DirectumRX_manifest_update\\DirectumRX.exe.manifest" -AppCodeBase "DirectumRX_Client\3.3.8.15\DirectumRX.exe.manifest" -Publisher "Directum Company" -UseManifestForTrust true -Name "DirectumRX" -ProviderURL "http://Test.ru/DirectumRX.application" -Install true
  • Version - Заполняется текущей версией DirectumRX (посмотреть можно в старом C:\inetpub\wwwroot\DirectumRX.application - параметр version)
  • ToFile - Путь, куда будет собираться новый DirectumRX.application
  • AppManifest - Путь к скопированному DirectumRX.exe.manifest
  • AppCodeBase - Путь к DirectumRX.exe.manifest, которые запишется в DirectumRX.application
  • ProviderURL - Новый URL

Команда 3. Завершение сборки DirectumRX.application:

C:\DirectumRX_manifest_update\mage.exe -Update  "C:\DirectumRX_manifest_update\DirectumRX.application" -mv "3.3.5500.0" -Publisher "Directum Company" -UseManifestForTrust true
  • Update - Путь к собранному DirectumRX.application
  • mv - Заполняется текущей версией DirectumRX (посмотреть можно в старом C:\inetpub\wwwroot\DirectumRX.application - параметр version)

 

После сборки копируем новый DirectumRX.application в C:\inetpub\wwwroot\, а DirectumRX.exe.manifest в C:\inetpub\wwwroot\DirectumRX_Client\Ваша версия клиента\

Profit !!!

P.S. Для тех, кому ближе cmd консоль:

1) Запускаем cmd от имени Администратора

2) Построчно выполняем команды, заменив пути с C:\DirectumRX_manifest_update на пути из C:\inetpub\wwwroot:

C:\Program Files\Directum Company\DirectumRX\Utilities\ConfigurationTool\mage.exe -New Application -Version "3.3.5500.0" -ToFile "C:\inetpub\wwwroot\DirectumRX_Client\3.3.8.15\DirectumRX.exe.manifest" -Name "DirectumRX" -Publisher "Directum Company" -UseManifestForTrust true -IconFile Sungero.ico -FromDirectory "C:\inetpub\wwwroot\DirectumRX_Client\3.3.8.15"

C:\Program Files\Directum Company\DirectumRX\Utilities\ConfigurationTool\mage.exe -New Deployment -Version "3.3.5500.0" -ToFile "C:\inetpub\wwwroot\DirectumRX.application" -AppManifest "C:\inetpub\wwwroot\DirectumRX_Client\3.3.8.15\DirectumRX.exe.manifest" -AppCodeBase "DirectumRX_Client\3.3.8.15\DirectumRX.exe.manifest" -Publisher "Directum Company" -UseManifestForTrust true -Name "DirectumRX" -ProviderURL "http://Test.Ru/DirectumRX.application" -Install true

C:\Program Files\Directum Company\DirectumRX\Utilities\ConfigurationTool\mage.exe -Update "C:\inetpub\wwwroot\DirectumRX.application" -mv "3.3.5500.0" -Publisher "Directum Company" -UseManifestForTrust true

 

P.P.S. Ссылка для документацию от Microsoft: Mage.exe (средство создания и редактирования манифеста)

P.P.P.S. Наткнулся тут на интересную статью Clickonce приложение. Создание с нуля используя утилиту mage.exe. Оставлю тут, т.к. статья вполне себе полезная и интересная.

 

Александр Шумков

Разве это не умеет делать конфигуратор?

Есть еще небольшое уточнение по поводу использования mage:
после создания манифеста приложения через mage.exe -New Application необходимо выполнить обновление манифеста, чтобы корректно означилось имя приложения, т.к. при создании манифеста к нему может добавиться ‘.exe’ в конец имени.
Mage.exe -Update “C:\DirectumRX_manifest_update\DirectumRX.exe.manifest” -Version <…> -FromDirectory <…> -Name DirectumRX

Также после обновления манифестов их необходимо подписывать через mage.exe -Sign ...

Сергей Беляков

Александр

Разве это не умеет делать конфигуратор?

Частично умеет, только Вот там нет функционала для смены домена и чтобы это провернуть нужно хорошо побить в бубен, либо я чего-то не знаю ))).

Руками как мне кажется проще и быстрее.

при создании манифеста к нему может добавиться ‘.exe’ в конец имени

И да и нет.

Добавить можно, хуже не будет, но как показала практика, проблем с этим ни разу не было.

Также после обновления манифестов их необходимо подписывать через mage.exe -Sign

Согласен, если стоит зада выпустить подписанную сборку, то нужно использовать -Sign.

Оставлю это тут: Средство создания и редактирования манифеста

Вдруг кому пригодиться, у Microsoft есть неплохая документация на русском по использованию mage.

Юрий Юсупбаев

Привет. Проверяли кейс когда меняем домен в C:\inetpub\wwwroot\DirectumRX_Client\Ваша версия RX\_ConfigSettings.xml - публикуем во внешку веб-версию через любой прокси (Haproxy/IIS_ARR). Работает ли вход в систему?

Месяц назад тестировал публикацию системы установленной на тестовый стенд под localhost именем. Проксировал веб-версию через Haproxy. Интерфейс системы во внешке открывается. При вводе логина и пароля крутится круг интерфейса бесконечно)

 

Авторизуйтесь, чтобы написать комментарий