Wie Sie einen Ordner in Ihre exe-Datei mit Inno Setup Compiler
Ich bin derzeit mit Inno Setup Compiler zum erstellen eines Installers für Windows und alles ist in Ordnung, außer wenn ich versuche einen Ordner zu der exe-Datei. In anderen Worten, was ich will, ist in der Lage sein, um einen Ordner mit zwei Dateien, ich möchte diese Ordner angezeigt werden soll, wo die .exe-Datei ist (C:\Program Files x86\appFolder) wenn das Programm installiert ist.
Inno hat eine option, um Ordner hinzuzufügen, aber aus irgendeinem Grund, wenn ich wählen Sie den Ordner mit den zwei Dateien, die ich will, kompiliert er fein, aber wenn ich wirklich das Programm installieren, es tatsächlich fügt die zwei Dateien aber nicht die Ordner.
Fand ich die folgende Zeile von code online und ich benutzte es, aber es tatsächlich einige Ordner, die ich nicht wollte. Ich habe das problem mit dieser Linie des Codes ist, dass ich nicht ganz verstehen, ich weiß nicht, wo der Ordner Weg sein sollte? Was ist Ausschließen: "- Setup.iss,generated_images\"
Source: "*.*"; Excludes: "Setup.iss,generated_images\*"; DestDir: "{app}"; Flags:replacesameversion recursesubdirs
Kann jemand so freundlich sein und einem erklären, diese Zeile?
Dank
- Es sollte alle Dateien (
*.*
) aus allen Unterverzeichnissen (recursesubdirs
) von der Lage des Skripts ohneSetup.iss
- Datei und alle Dateien, die von dergenerated_images
Unterordner. - Ich genrally store mein script in einem anderen Ordner so, wenn ich einen absoluten Pfad und loszuwerden, die exclude-Anweisung funktionieren sollte, richtig? Quelle:"*C:\Users\userName\Documents"; DestDir: "{app}"; Flags:replacesameversion recursesubdirs
- Sicher, dass
Excludes
parameter gibt es nur für ohne. Wenn Sie nicht ausschließen wollen, dass alles von derSource
- Verzeichnis (das kann natürlich absoluter oder relativer Pfad, aber nicht nur der Pfad, in dem das Skript gespeichert ist), verwenden Sie es nicht. - Ich fügte hinzu, einen absoluten Pfad, aber es funktionierte nicht, wurde der Inhalt in den angegebenen Ordner aber nicht die Ordner selbst. Ich bewegte mein .iss-Skript im gleichen Ordner wie die .exe-Datei und verwendet die Quelle: ".";... und es geklappt hat, aber seine hinzufügen .o Dateien und .txt-Dateien zu, ich weiß, ich könnte ausgeschlossen Sie durch hinzufügen der Bezeichnung für jeden, aber Sie werden eine Menge von Ihnen. Gibt es eine Möglichkeit zu sagen, dass ausschließlich alle .txt-Dateien? Vielen Dank für Eure Hilfe.
- Hier ist, was getan werden muss, um zum ausschließen aller Dateien mit der gleichen Erweiterung
Source: "*.*"; Excludes: "scriptName.iss,*.txt*,*.o*"; DestDir: "{app}"; Flags:replacesameversion recursesubdirs
im Grunde die surround-Erweiterung mit Sternchen und trennen diese jeweils mit comas*.txt*, *.cpp*
- Wenn die Antwort geholfen, Ihr problem zu lösen, bitte akzeptieren Sie es als Antwort. Wenn nicht, nennen Sie bitte ein paar mehr Informationen, warum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus Ihren Kommentaren (wie Sie haven'; t eigentlich mit allen Codes, die Sie zu reden), ich denke, Sie sind etwas wie:
In diesem Fall ist es das kopieren der Inhalte von
subfolder
zu{app}
.Wenn Sie kopieren möchten, und halten Sie die sub-Verzeichnis geben Sie das Verzeichnis selbst:
Oder geben Sie eine explizite Ziel-Verzeichnis:
Ich hatte ein ähnliches problem:
Habe ich in diesem Ordner unter anderem:
Möchte ich auf einem installierten system dieses:
Wenn Ordner nicht leer ist funktioniert es, aber manchmal brauche ich leere Ordner.
Bin ich mit dieser Zeile:
Was ich will-Skript zu tun ist (ohne die Notwendigkeit, neu zu schreiben das Skript jedes mal):
Mein problem ist, wenn es leer ist, das Skript endet mit einer Fehlermeldung, die besagt es gibt keine Dateien drauf. Es versteht nicht, ich will, dass die Ordner und alle was es sein könnte, in diesem moment.
Danke für die Ideen, ich probiere Sie an und bekam die Lösung, hier ist es:
Zunächst sicher, dass die Ordner erstellt werden (wenn keine Dateien mit Dateien Abschnitt schafft es nicht):
Nächstes Bearbeiten Sie die Zeile, auf der Files-Sektion zu gehören "skipifsourcedoesntexist":
Und es tut was ich will: solche Ordner und alles, was drauf ist, egal ob Ordner leer ist oder nicht, das Skript wird nicht beendet mit einem Fehler, wenn er leer ist.
Wie das funktioniert?
Einfacher trick: wenn der Ordner leer ist, wird Datei Schnittlinie nicht und würde-Skript wird am Ende mit einem Fehler, aber mit skipifsourcedoesntexist es vermeiden, aber das würde solche Ordner nicht existiert, dass ist der Grund, warum ich solche Ordner auf Dirs-Abschnitt, um sicherzustellen, dass es immer angelegt.
Hoffe, das hilft anderen nicht wütend werden !
während der setup-Datei von Inno-SETUP....Klicken Sie auf neuer Ordner,klicken Sie auf die url,dann klicken Sie auf "Bearbeiten" und Namen der Unterordner, die Sie einschließen möchten, in den installation Ordner.