====== FPC ISS Designer ====== InnoSetup Integration für Free Pascal Projekte — Installer bauen, testen und signieren. **Package-ID:** ''wvds.wvds-fpc-iss-designer'' Setzt [[.:solution-manager|FPC Solution Manager]] voraus (wird automatisch mitinstalliert). ===== Übersicht ===== Der ISS Designer integriert InnoSetup in den Entwicklungs-Workflow: * **Syntax Highlighting** — Vollständige InnoSetup-Syntax-Unterstützung * **Build** — Installer direkt aus VSCode kompilieren * **Run** — Kompilieren und sofort testen * **Code Signing** — Installer automatisch signieren * **Silent Install Test** — Installer im Silent-Modus testen ===== Projekt-Erkennung ===== Die Extension wird aktiviert wenn ''.iss'' Dateien im Workspace vorhanden sind. Im Solution Manager Tree View erscheinen InnoSetup-Projekte unter dem Workspace-Ordner mit ihren Sections (''[Files]'', ''[Run]'', etc.). ===== Kommandos ===== | Kommando | Beschreibung | Icon | ^ Build Setup | Installer kompilieren | Package-Icon | ^ Run Setup | Kompilieren und ausführen | Play-Icon | ^ Installer Designer | Visuellen Designer öffnen | Edit-Icon | ^ Sign Installer | Installer digital signieren | Shield-Icon | ^ Test Silent Install | Installer im Silent-Modus testen | Beaker-Icon | ===== Kontextmenü ===== ==== Explorer und Editor ==== Rechtsklick auf ''.iss'' Dateien (Explorer oder Editor) zeigt das **FPC ISS Designer** Submenü: * Build Setup * Run Setup * Installer Designer * Sign Installer * Test Silent Install ==== Editor Title Bar ==== Buttons in der Editor-Titelleiste für ''.iss'' Dateien: * Build Setup * Installer Designer ==== Solution Manager Tree ==== Rechtsklick auf Setup-Projekt: * Build Setup (auch als Inline-Button) * Run Setup * Edit Script * Open Project Folder * Copy Path ===== Code Signing ===== ==== Konfiguration ==== | Setting | Beschreibung | Standard | ^ ''fpc-iss.signTool.path'' | Pfad zu ''signtool.exe'' | — | ^ ''fpc-iss.signTool.certFile'' | Pfad zur ''.pfx'' Zertifikat-Datei | — | ^ ''fpc-iss.signTool.timestampUrl'' | Timestamp-Server URL | ''http://timestamp.digicert.com'' | ==== Verwendung ==== - Zertifikat-Einstellungen in den Settings konfigurieren - ''.iss'' Datei öffnen - Rechtsklick → **Sign Installer** oder Command Palette Der Sign-Befehl nutzt ''signtool.exe'' mit dem konfigurierten Zertifikat und Timestamp-Server. ===== Silent Install Test ===== **Test Silent Install** führt den Installer mit ''/VERYSILENT /SUPPRESSMSGBOXES'' Parametern aus — ideal für automatisierte Tests ohne Benutzerinteraktion. ===== Syntax Highlighting ===== Registrierte Sprachen: | Sprache | Dateiendungen | ^ InnoSetup | ''.iss'', ''.isl'' | Die TextMate Grammar unterstützt: * Section-Header (''[Setup]'', ''[Files]'', ''[Run]'', ...) * Directives (''#define'', ''#include'', ...) * Werte und Parameter * Pascal Script Blöcke (''[Code]'' Section) * Kommentare und Strings ===== Einstellungen ===== Alle Einstellungen beginnen mit ''fpc-iss.'': ^ Setting ^ Beschreibung ^ Standard ^ | ''innoSetupPath'' | Pfad zu InnoSetup Compiler (''iscc.exe'') | Auto-Erkennung | | ''signTool.path'' | Pfad zu ''signtool.exe'' | — | | ''signTool.certFile'' | Pfad zur ''.pfx'' Zertifikat-Datei | — | | ''signTool.timestampUrl'' | Timestamp-Server URL | ''http://timestamp.digicert.com'' | ===== Integration mit Solution Manager ===== ISS Designer integriert sich nahtlos in den Solution Manager: * InnoSetup-Projekte erscheinen im Tree View * Build-Kommandos sind über den Tree View erreichbar * **Add ISS Project** fügt ein neues InnoSetup-Projekt zum Workspace hinzu * Setup-Sections (''[Files]'', ''[Run]'') werden als Kind-Elemente angezeigt ===== Typischer Workflow ===== - Free Pascal Projekt bauen (Solution Manager) - ''.iss'' Datei erstellen/bearbeiten - **Build Setup** → Installer kompilieren - **Test Silent Install** → Automatisch testen - **Sign Installer** → Digital signieren - Installer verteilen ===== Siehe auch ===== * [[.:start|WvdS FPC Tools Übersicht]] * [[.:installation|Installation und Konfiguration]] * [[.:solution-manager|FPC Solution Manager]] * [[.:pas2js-studio|FPC PAS2JS Studio]] * [[.:faq|Häufige Fragen (FAQ)]]