Использование поля «Условие» в проекте установки на VS2008 - PullRequest
0 голосов
/ 23 октября 2009

В моем проекте установки приложения я пытаюсь настроить раздел реестра в разделе HKLM / Software или HKCU / Software в зависимости от того, выбрал ли пользователь «All Users» или «Just Me» во время установки.

Для этого я пытался использовать свойство ALLUSERS и проверять его на 1 или "", соответственно .:

  • ALLUSERS = 1
  • ALLUSERS = ""

У меня для свойства AlwaysCreate keys установлено значение False. И все же при установке создаются HKLM / Software / my_key и HKCU / Software / my_key .

Чего мне не хватает?

Обновление: Я пробовал другие альтернативы, такие как заключение ALLUSERS в квадратные скобки, включение переходного свойства или использование ALLUSERS! = 1 вместо = "" . Но безрезультатно. Я отказался от этого на данный момент и создаю только под HKLM для обоих случаев. Но если у кого-то есть ответ, я был бы очень признателен.

1 Ответ

2 голосов
/ 26 октября 2009

Мое понимание установщика Windows таково, что это поведение абстрагировано, поэтому разработчику не нужно беспокоиться об этом. То есть, если свойство ALLUSERS не установлено, ваш установочный пакет будет «автоматически» помещать ключи реестра в HKCU, а не в HKLM. См. Документацию по MSDN по адресу http://msdn.microsoft.com/en-us/library/aa367559%28VS.85%29.aspx.. Поэтому звучит так, как будто вы пытаетесь переопределить эту функцию через проект установки; Я бы предложил сбросить условие на основе свойства ALLUSERS.

В качестве дополнительного примечания свойство AlwaysCreate контролирует, при каких условиях будет создаваться раздел реестра, особенно связанный с содержимым ключа. Установив значение false, вы говорите: «Не создавайте этот ключ, если у него нет подразделов или значений». Установка его в true означает «создать этот ключ независимо от того, есть ли у него какие-либо подразделы или значения». Документация снова доступна на MSDN на http://msdn.microsoft.com/en-us/library/e1t11k72%28VS.100%29.aspx.

...