Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Features (besser Components) & Contitions


5 replies to this topic

mayho33

mayho33
  • Full Members
  • 27 posts

Posted 11 September 2012 - 10:51

Hallo @ All

Ich arbeite mit Installshield 2010 Sp1 Premiere an einer simplen Copy-Installation. Jedoch gibt es 2 Bat-Dateien (gleichnamig) von denen je nach OSArchitectur (x64 oder x86) nur die eine oder die andere in den Programmpfad kopiert werden darf.

Anscheinend checke ich aber die Conditions nicht ganz oder IS hat einen fetten Bug:

Gebe ich auf eine Feature oder ein Component (je extra eine für jede BAT) die Contition

Versuch 1:
NOT VersionNT bzw. NOT VersionNT64 und im Punkt Advertised: Disable Advertise if not Supported

Versuch 2:
VersionNT>= 500 bzw. VersionNT64>=500 und im Punkt Advertised: Disable Advertise if not Supported


...passiert original garnix. Beide Features sind bei der Custom Installation aktiviert.

Was kann ich tun? Die 64-Bit-BAT markieren für X64? Wird die dann nicht woanders geschrieben? Wie markiere ich eine Datei für X64?

Bitte Hilfe! Danke!

lg

mayho

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 11 September 2012 - 11:13

Man muss unterscheiden:
Komponenten sind für den Anwender nicht sichtbar. Deshalb haben auch Component Conditions keinen sichtbaren Effekt (außer natürlich darauf, was nach der Installation auf dem Zielsystem landet).
Features sind sichtbar (im Custom Setup Dialog). Aber wenn du da an der Auswahl was ändern willst, dass musst du das über Feature Conditions machen, nicht über Component Conditions. Aber ich denke mal, das sind eher Sachen, die der User weder sehen noch ändern können soll, oder?

Falls der Hintergrund deiner Frage der ist, dass immer die gleiche bat Datei installiert wird, egal ob es ein 32- oder 64 Bit System ist: Bedenke, dass (zumindest bei einem unkomprimierten Medium) die Dateien in einer Ordnerstruktur gespeichert werden, die der des Zielsystems entspricht. D.h. bei gleichnamigen Dateien im gleichen Verzeichnis überlebt nur eine. Die Lösung hierfür ist die Angabe einer Source Location in der Component. Die wird nur auf der Installations-CD verwendet, nicht auf dem Zielsystem. Gibt hier z.B. x86 und x64 ein (die Ordner-Namen kannst du frei wählen)

mayho33

mayho33
  • Full Members
  • 27 posts

Posted 11 September 2012 - 11:36

Hallo!

Danke für die rasche Rückmeldung!

Richtig! Der User soll nicht auswählen können welche BAT isntalliert werden soll. Das soll eigentlich IS machen.
Ich nahm an, dass der Sinn von Conditions der ist wärend der Installation vorzugeben was passieren soll.
Wenn ich also eine Datei abhängig von der Architektur installieren muss soll die Condition das steuern (bsp: VersionNT>=500 ==>> Kopiere die Datei wenn ein x64-System ab Win2000). Habe ich das falsch verstanden?

Features für die bat habe ich nur deshalb eingeführt, weil alles andere nicht funktionert hat. Ich dachte: "naja, dann eben mal so probieren"

An liebsten hätte ich, das IS für mich entscheidet. Ist es ein X64-System nehme ich die BAT, wenn nicht, nehme ich die BAT. Wie mache ich das?

Meine Ordnerstruktur (Source) schaut so aus
a.) Ordner (enthält 2 unterordner)
b1.) Unterordner1
b2.) Unterordner2
c1.) 86 (Ordner mit der bat für x86-Systeme)
c2.) 64 (Orner mit der BAT für x64-Systeme)

Die Ordnersturktur (Installiert) so (Anhang)
a.) Programme oder Programme (x86)
b.) ProgrammOrdner (Übergeordnet)
c1.) Ordner (enthält die BAT)
c2.) Ordner (Enthölt Arbeitsdateien)



Die Bat unterscheidet sich eigentlich nur im Aufruf: Programmpfad (Architekturabhängig)\java.exe + Parameter. Sie ist aber essentiell denn über diese Bat wird die Anwendung gestartet. Findet das System java nicht geht nix.

Danke und Lg!



ali

ali
  • Full Members
  • 1,008 posts

Posted 13 September 2012 - 14:53

Hallo Mahyo,

also ich mach das mit .config Datei für .NET.

ICh habe 2 Komponenten mit der jeweiligen Condition:

FeatureA:

Component32
Condition : Not VersionNT64

Component64
Condition: VersionNT64
Source Location : x64

Das funktioniert bisher problemlos.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 13 September 2012 - 15:18

mayho33: Die Komponenten wird installiert, wenn die Bedingung TRUE ergibt. VersionNT>=500 ist True für alle Windows-Versionen ab Windows 2000, egal ob 32 oder 64 Bit. Um ein 64-Bit-System zu erkennen, musst due VersionNT64 verwenden, das ist nur bei 64-Bit-Systemen gesetzt (zusätzlich zu VersionNT)

mayho33

mayho33
  • Full Members
  • 27 posts

Posted 14 September 2012 - 11:32

Ahhhhh, Ok! Danke euch 2! Getestet und gelungen! smile.gif

Edited by mayho33, 14 September 2012 - 11:35.