2015-12-14 7 views
-1

Так позволяет сказать, что у меня есть файл установки Inno (назовем его master.iss) с секции файлов, как это:Я хочу, чтобы вложенные файлы включали файлы include. Почему я не могу это сделать в Inno Setup?

[Files] 
#include PathToIncludeFile\IncludeFile.iss 

Это работает красиво и хорошо. Содержимое IncludeFile.iss эффективно вставляется в файл master.iss, где существует #include.

Так что теперь я хочу, чтобы содержимое файла #include, в которое было добавлено больше, включено. Так IncludeFile.iss выглядит следующим образом:

#include C:\PathToFile\FileWithRealFilesDataForProject1.iss 
#include C:\PathToFile\FileWithRealFilesDataForProject2.iss 
#include C:\PathToFile\FileWithRealFilesDataForProject3.iss 
#include C:\PathToFile\FileWithRealFilesDataForProject4.iss 
#include C:\PathToFile\FileWithRealFilesDataForProject5.iss 
#include C:\PathToFile\FileWithRealFilesDataForProject6.iss 

Компилятор для Inno Setup составителя Master.iss будет сказать

(Файл: PathToIncludeFile \ IncludeFile.iss \ п Строка 1: \ п Колонка 11 :)
[ISSP] Undeclaired идентификатор C»

Я полагаю, я мог бы достичь того, что я хочу с помощью пакетного файла или что-то, но это было бы гораздо более прямо вперед, если я мог бы просто сделать это с NES ted #include s.

BTW: Мой текущий компилятор Inno Setup является 5.5.6 (и)

ответ

1

Вы можете гнездятся включать файлы.


Ваша проблема заключается в том, что в Inno Setup препроцессора строковые литералы должны быть заключены в двойные кавычки (или апострофы), как:

#include "C:\PathToFile\FileWithRealFilesDataForProject1.iss" 

Если опустить кавычки, препроцессор пытается интерпретировать аргумент #include как выражение. Следовательно, он обрабатывает C (ведущая буквенно-цифровая последовательность) в качестве идентификатора.

См эти темы в Inno Setup Preprocessor documetation:


По той же причине, ваш основной включают в себя, как у вас есть в вашем посте, не будет компилировать либо. Вы должны были заключить его в двойные кавычки.

Для этого:

#include PathToIncludeFile\IncludeFile.iss 

Я получаю

[ISPP] необъявленный идентификатор: "PathToIncludeFile".

(как и ожидалось)

+0

Точно правильно, спасибо. – amalgamate

 Смежные вопросы

  • Нет связанных вопросов^_^