2017-02-03 15 views
0

Я создал проект установки, которому необходимо создать раздел реестра в HKLM. В качестве условия для этого я написал «NOT (MYCONDITION = 1)», так что если пользователь определяет MYCONDITION = 1 во время выполнения командной строки msi, ключ реестра не записывается. msiexec/i mymsi.msi/passive/MYCONDITION = 1Состояние проекта установки Visual Studio для реестра не работает

Это, однако, игнорируется файлом MSI, и раздел реестра все еще написан.

Я установил то же самое условие на файл в представлении «Система файлов», и здесь он работает. Поэтому, если у пользователя есть этот MyCondition = 1, файл не копируется в папку установки.

Может ли кто-нибудь из вас придумать причину, по которой я испытываю такое поведение? Спасибо

+0

У вас также есть это свойство в диалоговом окне (например, флажках) в проект установки? Я также предполагаю, что вы смотрите в реестре WoW6432, если это проект установки x86 (TargetPlatform в окне свойств проекта). – PhilDW

+0

Нет У меня нет флажка, у которого есть это значение, потому что это будет только параметр командной строки. Я предполагаю, что когда я ввожу его в командной строке, он определяется и может быть проверен в состоянии. И мне не нужно искать в wow6432, потому что я не пропускаю запись в реестре. Напротив, у меня есть две записи, и это не ожидаемое поведение. –

ответ

0

Я нашел способ заставить его работать. Вместо того, чтобы помещать условие в родительский ключ значений, которые я хочу добавить, я устанавливаю условие для каждого из значений реестра, и это работает нормально. Убедитесь, что свойство «AlwaysCreate» имеет значение false в ключе, так что оно не создается, если его дочерние значения не создаются.