2015-12-14 2 views
-1

permet donc dire que j'ai un fichier Inno Setup (appelons-le master.iss) avec une section de fichiers comme ceci:Je souhaite imbriquer des fichiers d'inclusion dans des fichiers d'inclusion. Pourquoi ne puis-je faire ça dans Inno Setup?

[Files] 
#include PathToIncludeFile\IncludeFile.iss 

qui fonctionne bien et belle. Le contenu de IncludeFile.iss est effectivement inséré dans le fichier master.iss où le #include existe.

Alors maintenant je veux le contenu du fichier #include à moi imbriqué dans plus d'inclus. Ainsi, le IncludeFile.iss ressemble à ceci:

#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 

Le compilateur pour Inno Setup compilation Master.iss dira

(fichier: PathToIncludeFile \ IncludeFile.iss \ n Ligne 1: \ n Colonne 11 :)
[ISSP] Undeclaired Identificateur C »

Je suppose que je pourrais réaliser ce que je veux avec un fichier batch ou quelque chose, mais il serait beaucoup plus direct si je pouvais le faire avec nit té #include s.

BTW: Mon compilateur actuel Inno Setup est 5.5.6 (u)

Répondre

1

Vous pouvez imbriquer inclure des fichiers.


Votre problème est que dans Inno Setup préprocesseur les chaînes littérales doivent être entre guillemets doubles (ou guillemets simples), comme:

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

Lorsque vous omettez les guillemets, le préprocesseur essaie d'interpréter l'argument #include en tant qu'expression. Par conséquent, il traite le C (séquence alphanumérique principale) comme un identificateur.

Voir ces sujets dans Inno Setup préprocesseur documetation:


Pour la même raison, votre principale comprend, comme vous l'avez dans votre poste, ne compilera pas non plus. Vous devez l'avoir entouré de guillemets.

Pour cela:

#include PathToIncludeFile\IncludeFile.iss 

Je reçois

[ISPP] identificateur undeclared: "PathToIncludeFile".

(comme prévu)

+0

Exactement correct, je vous remercie. – amalgamate