Installshield, включая спутниковые библиотеки
У меня проблемы, включая спутниковые библиотеки DLL в проекте installshield.
Я попытался добавить компонент, скажем "SatelliteNorwegian", для установки на норвежском языке, для которого я установил поле "Язык данных" на норвежский. Фактические файлы находятся в папке [INSTALLDIR]/no-NB/. Я настроил это как динамическую ссылку на файл.
Проблема в том, что наша система сборки будет загружать эту папку только тогда, когда мы создаем норвежский выпуск. Это приводит к ошибке сборки, так как installshield не может найти указанную папку. Одним из возможных решений является включение пустой папки для каждого языка, который мы поддерживаем, в настоящее время 9 и подсчет.
Кто-нибудь знает хорошее решение этой проблемы?
1 ответ
Во-первых, я много раз писал об опасностях динамического связывания файлов. Я действительно предлагаю вам не использовать эту функцию. Тем не менее, следующее будет работать независимо от того, используете ли вы статические или динамические компоненты.
Вам необходимо создать подфункцию для каждого из поддерживаемых языков и переместить компоненты языка на эту подфункцию. Затем присвойте каждой подфункции уникальный флаг выпуска, такой как EN-US, NO-BN.
Далее вы определите конфигурацию продукта для каждого языка, который вы хотите построить. Присвойте этой конфигурации продукта соответствующий флаг выпуска. Каждая конфигурация будет подбирать все функции, которые либо не имеют флага, либо имеют соответствующий флаг.
В вашей автоматизации сборки вам нужно будет обновить ваши вызовы ISCMDBLD, чтобы указать правильную конфигурацию продукта для сборки с использованием аргумента -a.