Как проверить, существует ли файл INI с помощью набора Wix

StackOverflow https://stackoverflow.com//questions/25023457

Вопрос

У меня есть файл .ini с конфигурацией.Мне нужно проверить, существует ли он в новой установке, чтобы не создавать его снова.Кроме того, есть ли новых .ini есть новые поля, добавляйте в существующий файл.

Это было полезно?

Решение

Не устанавливайте файл INI в качестве файла, но преобразовать записи в Инфильские записи таблицы . Это позволяет получать изменения всех изменений в INI, как «атомные единицы изменений», которые обеспечивают правильное объединение и откат через встроенный механизм MSI. Вы избегаете всей пользовательской сложности действия.

Как указывает Крис в своем главном комментарию по обновлению: делайте вещи правильным способом в Wix / MSI, и вы избегаете много проблем, которые начинают всплывать, когда изменение требований или обновления усложняются. Инфильские обновления реализованы правильным способом простым и простым для решения.

В Wix вы используете inifile элемент Для достижения этого. Все возможности слияния, поддержка отката и расширенная обработка файлов INI приходит бесплатно. Все, что вам нужно сделать, это определить, что нужно добавить или модифицировать в файле INI во время установки. Он также будет создан, если он не там в первую очередь.

Использование инициального элемента может выглядеть сложнее, чем оно. Вот образец . Вы также можете посмотреть на хорошо известный учебник Wix здесь .

Все эксперты MSI продолжают повторять этот совет: никогда не используйте пользовательские действия для изменения системы, если есть эквивалентные встроенные конструкции MSI.

Другие советы

Установите NeverOverite= «Да» на компоненте файла .ini файла, а затем обрабатывать обновление через пользовательское действие.

Редактировать : Как правило, гораздо лучше использовать inifile table , как объяснено в моем ответе, так как вы получаете Rollback и возможности . Тем не менее, некоторые люди предпочитают файл INI, установленный в качестве файла для позволяет легко модифицировать файл снаружи файла MSI . Хотя не предпочтительнее, это позволяет людям «исправить» INI-файл непосредственно на установочном носителе. Команды могут использовать это, чтобы установщик забрал последний INI от разработки. Существуют технические проблемы с этим, что можно обрабатывать через пользовательское действие (наиболее значительно возмещенные проблемы с заменой для установки). Также возможно, что файл INI может отличаться нестандартными элементами и форматированием , которые не подходят в инфильскую таблицу (редко, но возможно - люди со смыслом, а затем используют другое расширение файла, чем INI) Отказ Как уже пояснилось, я решительно совет к обновлению файлов INI через собственные пользовательские действия, если вы не делаете что-то особенное - это на самом деле необходимо. Это сложно реализовать и получить право.

Я бы предложил иметь 2 файлов INI.Тот, который принадлежит установщику и принадлежит приложение / пользователь.Установщик всегда может перезаписать файл INI и никогда не беспокоиться о топании на пользовательских данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top