Есть ли бесплатный инструмент для изменения файлов InstallShield ism? - PullRequest
7 голосов
/ 11 декабря 2010

У нас есть две лицензии для установки щита - одна для разработчика программы установки, а другая - для CI-сервера.

Часто возникает ситуация, когда другой разработчик перемещает библиотеку DLL проекта в другое место, нарушая тем самымустановщик.

Мне было интересно, существует ли бесплатный инструмент, который позволял бы вносить небольшие изменения в файлы ISM.Я говорю только о небольших изменениях, таких как исправление пути к DLL или полное удаление DLL.Я не собираюсь «обманывать» лицензию.

Спасибо.

Ответы [ 3 ]

6 голосов
/ 29 декабря 2010

Если вы перейдете в свойства проекта, вы можете сохранить файл ism в формате XML. (Похоже, ваш проект уже настроен таким образом.) Если это так, то структура XML-файла достаточно проста для определения.

Используя любой текстовый или XML-редактор, вы сможете обновить путь к DLL.

Я бы не советовал делать большие изменения, но для небольших изменений это не должно быть проблемой.

Просто найдите имя DLL. Это будет в теге XML. Исходный путь, который необходимо изменить, должен быть атрибутом этого тега.

Я сделал это с MSI-проектами InstallScript и InstallScript. Если вы используете чистый проект MSI, ваш доход может отличаться.

4 голосов
/ 15 декабря 2010

Или вы можете увидеть содержимое MSI-файла с помощью Orca , чтобы изменить содержимое базы данных MSI (которая действительно необходима для небольших изменений), этот инструмент будет поставляться вместе с Installer SDK. ,

Чтобы изменить его, вы должны знать базовые таблицы MSI.

4 голосов
/ 11 декабря 2010

Проекты InstallShield (.ISM) хранятся в формате XML (DTD) или в двоичном формате установщика Windows (на самом деле MSI просто записан в обратном направлении, а схема находится в предварительно скомпилированном формате), поэтому невозможно создать некоторую автоматизацию для обновления этих файловбез единой зависимости от InstallShield.

Вы не говорите, какую версию или редакцию InstallShield вы используете, но если вы имеете право на какие-либо автономные лицензии на сборку, вы можете разместить их на сервере CI и освободитьодна лицензия для другого разработчика.Кроме того, IDE и SAB поставляются с интерфейсом автоматизации COM, который вы можете использовать для выполнения всех интересных задач автоматизации для решения этой проблемы.

Но я бы действительно посоветовал вам делать то, что я делаю.Используйте XML-файл установщика Windows, чтобы абстрагировать компоненты установщика в модули слияния, а затем связать модули слияния с вашими функциями InstallShield.Это берет монолитный проект инсталлятора и, в свою очередь, разбивает его на части для поддержки распределенного развертывания.Я даже написал специальный инструмент под названием IsWiX , который дает вам опыт, подобный InstallShield, для поддержки модулей WiX.

...