Pas directement
Rappelez-vous la directive #include est juste une directive pré-compilateur qui rend le fichier inclus apparaître à la place de la directive est au compilateur de script d'installation Inno. Pour éviter d'inclure du code d'installation individuel sur le script de modèle, vous pouvez créer une convention pour appeler une procédure dans le modèle. La seule règle que vous devez suivre est que chaque installateur doit déclarer la procédure, même vide. De cette façon, vous pouvez personnaliser en fonction de l'installateur tout en conservant un modèle neutre.
Votre modèle peut être quelque chose comme:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := BeforeNextButtonClick(CurPageID);
//if the per-installer code decides not to allow the change,
//this code prevents further execution, but you may want it to run anyway.
if not Result then
Exit;
//your template logic here
Result := Anything and More or Other;
//same here!
if not Result then
Exit;
//calling the per-installer code
Result := AfternextButtonClck(CurPageID);
end;
Ensuite, les installateurs individuels peuvent ressembler à ceci:
function BeforeNextButtonClick(CurPageID: Integer): Boolean;
begin
//specific logic here
Result := OtherThing;
end
function AfterNextButtonClick(CurPageID: Integer): Boolean;
begin
//and here, a blank implementation
Result := True;
end;
#include MyCodeTemplate.iss
Peut-être qu'il est possible de mettre en œuvre une approche complexe, je ne peux pas me rappeler si PascalScript supporte les types procéduraux et pas le temps de vérifier avec inno.
avertissement tout le code écrit directement ici pour vous montrer l'idée, il peut ne pas compiler.
+ 1 Approche intéressante. Pour ma situation, je cherche à avoir des dizaines d'installateurs individuels, avec seulement 2 ou 3 qui auront besoin de code personnalisé.Donc, pour mes besoins, ajouter 2 ou 3 sections de code supplémentaires dans le modèle de base est mieux que d'ajouter des fonctions vides à la plupart de mes installateurs individuels. Cependant, si la situation était renversée, et qu'une majorité de mes installateurs individuels avaient besoin de code personnalisé, je pense que votre proposition serait la bonne solution. – mwolfe02