Как указать условия установки Visual Studio? - PullRequest
11 голосов
/ 28 июня 2010

У меня есть проект установки Visual Studio, и я хочу, чтобы установщик создавал определенную папку, только если отмечен флажок в форме «Флажки (A)», которую я добавил в пользовательский интерфейс проекта. Имя свойства для флажка - CHECKBOXA1, но я не знаю, что добавить в свойство Condition папки, чтобы оно создавалось только в том случае, если флажок установлен.

1 Ответ

19 голосов
/ 02 июля 2010

В свойстве папки «Условие» укажите следующее:

CHECKBOXA1 = 1

Это позволит убедиться, что папка установлена ​​только в том случае, если CHECKBOXA1 был отмечен.

EDIT: Хорошо, я понял, как это сделать, но это как-то не так. Еще одна из этих странных причуд об установщике Visual Studio.

Предположим, что папка, которую мы хотим установить, если установлен флажок CHECKBOXA1, называется «Папка1», и мы поместим образец файла в папку «Папка1» с именем test.txt.

Во-первых, нам нужно создать папку, которая никогда не будет отображаться во время установки, но нам нужно, чтобы остальная часть этого работала. Итак, в окне вашей файловой системы создайте папку (я назвал мой «Контейнер»). Свойство Condition должно быть установлено в CHEKCBOXA1 = 1, как мы говорили, а свойство DefaultLocation можно установить в любом месте, например, [ProgramFilesFolder] \ MyApplication.
Теперь вот важная часть. Убедитесь, что свойство DefaultLocation для папки «Контейнер» НЕ установлено в [ProgramFilesFolder] \ MyApplication \ Container, поскольку это ВСЕГДА создаст папку «Контейнер» независимо от свойства Condition. ОК, это заботится о папке контейнера. Если это сделано правильно, при установке приложения вы никогда не увидите папку «Контейнер».

Теперь внутри папки «Контейнер» в окне «Файловая система» создайте нужную папку, в данном примере - «Папка1». Установите для его свойства Condition значение CHECKBOXA1 = 1, а также убедитесь, что для любого содержимого в нем есть свойство Condition, также установленное в CHECKBOXA1 = 1.

Теперь, когда вы запускаете установку, папка 1 будет отображаться, только если установлен флажок CHECKBOXA1.

Я не понимаю, зачем нужна папка Container для ее правильной работы, но она работает, поэтому я ее использую.

...