Когда мы только запускали наш проект, для нас довольно серьезной проблемой оказалась необходимость установки программного обеспечения на множество клиентских компьютеров.
С одной стороны, дистрибутив программы распространяется в форме MSI-пакета. Это должно было снять любые проблемы с массовым развертыванием в среде Active Directory.
На деле же это проблем только добавило, так как по умолчанию для установки выбирается английский язык, и пользователь получает секси интерфейс вперемешку на русском и буржуйском языках. Увы, для многих наших сотрудников работа с нерусифицированным интерфейсом представляет некоторую сложность. А проблемы юзеров довольно скоро становятся и нашими проблемами.
Поэтому, большинство рабочих станций пришлось инсталлировать буквально в ручном режиме, обойдя каждое рабочее место и запуская программу установки с правами администратора.
Долго ли, коротко ли, с этой задачей мы справились, но прогресс не стоит на месте. 1С выпускает новые версии своего продукта. И обновление на эти версии представляется нетривиальным, ввиду некой особенности – версии серверного и клиентского программного обеспечения должны быть одинаковыми, иначе ничего не получится.
Вот тут пришлось вновь чесать репу, как же заставить MSI-пакет установить программу с правильными языковыми настройками. После неких исследований до наконец меня дошло, что нужно сделать некий transform (файл, модифицирующий MST-пакет и имеющий расширение MST), и указать его в настройках групповой политики.
Но как, точнее чем сделать этот файлик?
Гуглинг подсказал, что можно воспользоваться Microsoft Office Resource Kit. Там есть некий Custom Installation Wizard, который позволяет сгенерировать пресловутый transform. Но и здесь меня ждала неудача. Custom Installation Wizard замечательно работает с пакетами MS Office, но совершенно не годится для каких-либо других пакетов.
Пришлось дальше мучить Google, который выдавил из себя названия заветных программ:
- Wise InstallTailor – ранее свободно предоставлялась на сайте разработчика, но теперь убрана во внутрь монструозного Wise Package Studio
- WinINSTALL LE – также не удалось обнаружить. Вместо неё на сайте лежит такой же монструозный WinINSTALL MSI Packager Professional, который и поставить даже толком не удалось.
Наконец, одна добрая душа предложила скачать Windows Platform SDK, который содержит некую утилиту Orca, позволяющую редактировать MST и MSI-файлы.
Это просто кошмар, когда понимаешь, что выкачал 300 мегабайт ради файлика размером 2 мегабайта.
С помощью Orca я сделал нужный мне MST, поправил там кодовую страницу продукта, названия папок и кое-какие дополнительные опции. Протестировал групповую политику, проверил что всё работает как надо и в самый последний момент обнаружил, что Microsoft Installer хранит некий 1049.MST у себя в папке.
Оказалось, что InstallShield, с помощью которого собран дистрибутив 1С:Предприятие, генерирует этот так нужный мне MST, указывая там все языковые и прочие настройки, а потом скармливает этот файл модификации вместе с пакетом службе Windows Installer, который, в свою очередь, выполняет установку!
В итоге оказалось, что нужный мне файл размером всего 46 килобайт, всегда был у меня под носом, но найти его стоило около гигабайта трафика. Ужасно.