Исключить файлы, работающие не так, как ожидалось? - PullRequest
3 голосов
/ 17 октября 2011

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

Вот код, который у меня есть:

Source: "source\*"; DestDir: {app}; Excludes: "\plugins\api,\plugins\shared memory"; Flags: ignoreversion recursesubdirs createallsubdirs;
Source: "source\plugins\api\*"; DestDir: {app}; Flags: recursesubdirs createallsubdirs; 
Source: "source\plugins\shared memory\*"; DestDir: {app}; Components: plugins_api;  Flags: recursesubdirs createallsubdirs; 

Что я хочу:

  • Эти подпапки (API и общая память) должны копироваться только в том случае, если plugins_api выбран.
  • Если компонент plugins_api не является проверено, они не должны копироваться.
  • Я бы предпочел не включать каждый файл в файле .iss. Это не вариант.

Что я получу с этим кодом:

  • Если компонент не отмечен, папки не копируются. Хорошо.
  • Если компонент был отмечен, папки не копируются. Не в порядке.

Таким образом, исключение в первой строке влияет на две другие строки. Как я могу избежать этого?

1 Ответ

3 голосов
/ 18 октября 2011

2 балла:

1) У вас есть запись Компоненты только в одной из специальных папок.

2) Специальные папки, если они у вас есть, будут устанавливать их содержимое прямо в папку {app}. Если вы следите за используемыми папками:

Source: "source\plugins\api\*"; DestDir: {app};

Поместить содержимое source\plugins\api\ в {app}

Я ожидаю, что вы хотите что-то вроде:

Source: "source\plugins\api\*"; DestDir: {app}\plugins\api\; Components: plugins_api; Flags: recursesubdirs createallsubdirs;
Source: "source\plugins\shared memory\*"; DestDir: {app}\plugins\shared memory\; Components: plugins_api; Flags: recursesubdirs createallsubdirs;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...