2009-05-15 6 views
3

Ich möchte Aufgaben für die Entwicklung eines NSIS-Installers unter ein paar Entwicklern teilen. Wie kann ich den Code physisch organisieren? Müssen sie das einzelne .nsi-Skript bearbeiten und zusammenführen, wenn sie in SVN einchecken? Ist es möglich, NSIS-Skripte in modulare, separate Dateien zu unterteilen? Das wäre ideal.Wie teilt man ein NSIS-Skript unter den Entwicklern auf?

Danke!

Antwort

6

Ich benutze eine "Haupt" NSI-Datei, die die eigentliche Installer-Generierung und MUI-Code bildet, aber es enthält "zusätzliche" Funktionsdefinitionen aus NSI-Dateien sowie separate Dateien für jeden Installer "Abschnitt".

Beispiel:


!include "LibraryFunction1.nsh" 
!include "LibraryFunction2.nsh" 
!include "LibraryFunction3.nsh" 

; Basic Defines and MUI code Go HERE 

; Output file information 
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" 
OutFile "File-${BUILD_VER_ABRV}-${BUILD_VER_MIN}.exe" 
InstallDir "$PROGRAMFILES\Location\" 
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" 

; now include file sections 
!include "FileSectionDefinition1.nsh" 
!include "FileSectionDefinition2.nsh" 
!include "FileSectionDefinition3.nsh" 
!include "Uninstall.nsh" 
0

! Include "uninstaller.nsh" usw. (Include-Dateien normalerweise die .nsh Erweiterung)

0

Sie können einen Code in Header-Dateien durchbrechen (.nsh) und sie in Ihrem Skript, wie Sie sehen, passen. Zum Beispiel haben alle meine Installer die gleichen grundlegenden MUI-Seiten, Text, Bilder sowie Voraussetzungen (.NET-Framework). Also habe ich eine Include-Datei, die den MUI mit all den! Defines und! Insertmakro MUI_PAGE_x einrichtet. Dann enthält eine andere Datei die Funktionen, die verwendet werden, um festzustellen, ob die notwendigen Voraussetzungen erfüllt sind.

-1

Eine obskure Option, die in einigen Fällen arbeiten kann, ist das NSI zu erzeugen. Ich habe diesen Weg halbwegs genommen.

+1

"um den NSI zu generieren"? Das ist absolut bedeutungslos. –

+1

Komm schon Chris du weißt ganz genau, ein Programm kann jede Art von Datei von jedem anderen mit den gleichen Informationen generieren. – Joshua