2016-11-28 1 views
0

У меня есть InstallSheild msi, который создает раздел реестра и добавляет к нему значение. Это удаление не удаляется при удалении, потому что нам нравится эта функциональность, помня о значении между обновлениями.Обновление значения реестра из строки cmd, если значение уже присутствует InstallSheild

Мой вопрос в том, как я могу переопределить это значение, если я запустил установщик через командную строку и передал новое значение?

Прямо сейчас он ищет системный поиск, чтобы найти значение, и если он существует, он будет использовать его независимо от того, что вы передаете из параметра линии cmd. Я надеялся, что смогу добавить условие где-нибудь, чтобы указать, использует ли его в строке cmd вместо старого значения.

+0

Как вы в настоящее время можете добавить стоимость? Если он обрабатывается в пользовательском действии, может ли это действие проверить наличие различных комбинаций присутствия/командной строки реестра (свойства) и сделать правильную вещь? –

+0

Он не использует настраиваемое действие из того, что я могу сказать. Я новичок в установщиках, поэтому я могу ошибаться, но пользовательский интерфейс просто берет текст из текстового поля и помещает его в свойство, тогда это свойство помещается в раздел реестра как компонент. Меня смущает то, почему он принимает строку cmd, если ее новая установка, но игнорирует ее, если она уже существует. – dstew

+0

Это объясняет, почему он не перезаписывается (если компонент там, он не будет переустанавливать его и, следовательно, не будет переписывать ключ), но не объясняет, как он сохраняется после удаления. Если компонент, в котором он находится, является постоянным, в этом случае я не думаю, что есть какие-то чистые ответы. –

ответ

0

один способ сделать это что-то вроде этого.

  1. Сделайте свой системный поиск поместите значение во временное значение.
  2. затем выполните произвольные действия, которые запускаются сразу после вашего поиска системы, которые заменяют ваше значение временным значением, если оно еще не было установлено через cmdline.
Смежные вопросы