2016-09-13 1 views
1

У меня есть сценарий InnoSetup, который должен исключить подпапку, полную других подпапок (> 40) , за исключением одного из них.
В выводе компилятора Я вижу файлы в этой подпапке, которые сжимаются, но установка не создает эту папку и не копирует файлы из нее в другом месте.InnoSetup: попытка исключить все, кроме одной подпапки

Сценарий выглядит следующим образом:
(The Release\extra\more\subs папка полна других папок - Я хотел бы, чтобы включить только Release\extra\more\subs\need_this_one.)

[Files] 
; Use all files and folders except some special ones 
Source: "Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Excludes: "more\subs" 
; Do use some specific folders 
Source: "Release\extra\more\subs\need_this_one\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs 

Первая строка должна скопировать все файлы и папки в Release, за исключением любых подпапок с соответствием пути «more\subs» - и это делает это.

У меня было впечатление, что вторая строка скопирует вложенную папку Release\extra\more\subs\need_this_one и файлы в ней - , но это не.

Есть ли у кого-нибудь идеи, почему это так?

+0

Возможный дубликат [Папка для упаковки с компилятором Inno Setup] (http://stackoverflow.com/questions/39256122/packing-folder-with-inno-setup-compiler) –

+0

Btw, ваше название вопроса не соответствует вашему действию проблема. –

+0

@ Мартин Прикрилл, спасибо, что указали его. Другой вопрос в том, что папка не создается, но файлы копируются - в моем случае файлы не копировались. Если бы они были, я бы, вероятно, быстро это выяснил. – spacer

ответ

1

Ну, похоже, у меня есть привычка отвечать на мои вопросы. ;)

Уловка заключалась в том, что DestDir нужен путь сверху {app}, чтобы узнать, где разместить файлы.

Таким образом, сценарий, который работает будет:

[Files] 
; Use all files and folders except some special ones 
Source: "Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Excludes: "more\subs" 
; Do use some specific folders 
Source: "Release\extra\more\subs\need_this_one\*"; DestDir: "{app}\extra\more\subs\need_this_one"; Flags: ignoreversion recursesubdirs 

Это имеет смысл, хотя не понятно, почему, без пути, это не просто скопировать файлы из need_this_one в {app} ...