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

Komponenten überschreiben


24 replies to this topic

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 26 January 2009 - 08:59

Hallo

Ich habe ein Basic MSI mit dem ich Komponenten installieren möchte. Jetzt habe ich aber ein Problem. Wenn ich das MSI einmal ausgeführt habe und ein zweites Mal ausführe habe ich die Möglichkeit diese Dateien(dlls) der Komponenten zu überschreiben. Wenn ich aber ein neues MSI erstelle weil es eine neue Version der Komponente gibt kann ich das MSI nicht mehr ausführen. Es kommt die Meldung das ich das alte erst deinstallieren muss. Ich habe zu meinen Komponenten eine Dynamische Dateiverknüpfung. Wenn ich diese nicht hätte kann ich auf eine Datei mit rechts klick und Eigenschaften einstellen das die Dateien (dlls) der Komponente überschrieben werden dürfen. Aber mit einer Dynamischen Dateiverknüpfung funktioniert dies nicht. Des weiteren gibt es keine setup.exe sondern nur das MSI.
Welche Möglichkeiten gibt es denn um die Dateien überschreiben zu können ohne das alte zu deinstallieren?


Liebe Grüße
Sunflower84

Edited by Sunflower84, 26 January 2009 - 13:37.


Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 27 January 2009 - 11:44

Muss ich mein MSI vielleicht als Update kennzeichnen damit er die alten DLLs überschreibt? Wäre schön wenn mir jemand sagen könnte ob das überhaupt möglich ist mit einem Basic MSI ohne exe und dynamischen Dateiverknüpfungen.

Liebe Grüße
Sunflower84

ali

ali
  • Full Members
  • 1,008 posts

Posted 27 January 2009 - 12:23

hallo,
such mal hier im forum unter minor und major upgrade/update oder auch in der IS hilfe, da solltest du einen ganzen haufen infos finden.

Generell ist es nicht ratsam dll's dyn zu verknüpfen, sondern für jede dll eine eigene Komponente mit Keyfile.

ali

Edited by ali, 27 January 2009 - 12:27.


Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 27 January 2009 - 12:48

Danke für deine Antwort.
Komponenten mit eigenen keyfiles funktioniert aber nur ohne dynamische Dateiverknüpfung, oder?
Wenn sich doch aber viele DLLs von einer Komponente geändert haben, ist es doch einfacher in den Pfadvariablen z.B nur den Ordernamen zu ändern mit den neuen DLLs. Den Rest holt er sich dann automatisch. Oder gibt es dafür eine andere Lösung?

Liebe Grüße
Sunflower84

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 January 2009 - 15:27

Die Meldung, dass die alte Version erst deinstalliert werden muss, hat nichts mit dynamischen Verknüpfungen zu tun.

(Die folgende Darstellung ist stark vereinfacht, aber für den Anfang will ich dirch nciht unnötig verwirren)

Es gibt in Windows Installer im Wesentlichen zwei Arten von Updates: Minor und Major.

Das Major Upgrade ist dadurch gekennzeichnet, dass die neue Version einen anderen Product Code hat als die alte. Die alte Version wird dann automatisch komplett deinstalliert, wenn man die neue Version installiert. Dazu muss man unter Releases > Upgrades einen entsprechenden Eintrag anlegen.

Was du gemacht hast ist ein Minor Update. Dabei werden die vorhandenen Dateien durch die neue Version überschrieben. Allerdings muss man dazu die msi-Datei mit speziellen Kommandozeilenparametern starten:
msiexec.exe /i deine.msi REINSTALLMODE=vomus REINSTALL=ALL

Damit die Anwender das nicht machen müssen, ist es am einfachsten, mann verwendet die setup.exe. Die erledigt das dann. Gibt es einen bestimmten Grund, warum du keine setup.exe verwenden möchtest.

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 27 January 2009 - 15:40

Administratoren einer bestimmten Firma brauchen ein MSI weil sie mit einem bestimmten Programm dieses MSI automatisch aufrufen müssen. Das geht nur mit einem MSI. Eine "exe" können sie nicht automatisiert aufrufen. Das ganze gibt es nämlich schon als InstallScript aber die brauchen das als MSI.
Muss ich unter Medien -> Upgrades einfach nur den Upgrade Code ändern?

Liebe Grüße
Sunflower84

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 January 2009 - 16:06

Wenn du ein Major Upgrade daraus machen willst, musst du unter allegemeine Einstellungen den ProductCode ändern (den UpgradeCode solltest du NICHT ändern). Außerdem unter Upgrades ein Major Upgrade hinzufügen.

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 28 January 2009 - 11:46

Wenn ich nur den Product Code änder kommt zwar die Meldung nicht mehr aber er zeigt mir unter Software im System das Programm so oft an wie ich es installiert habe. Die Dateien werden auch nicht überschrieben sondern es werden nur neue Dateien einfach hinzugefügt. Zum Beispiel wird bei den Komponenten das alte Versionsfile nicht ersetzt sondern einfach das neue dazu gelegt.
Wie füge ich denn bei Upgrades ein Major Upgrade hinzu. Finde es leider nicht :-(

Liebe Grüße
Sunflower84

Edited by Sunflower84, 28 January 2009 - 13:37.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 January 2009 - 22:42

QUOTE
Wie füge ich denn bei Upgrades ein Major Upgrade hinzu. Finde es leider nicht :-(

Hier...

Attached Images

  • MajorUpgrade1.png


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 January 2009 - 22:43

und hier die Einstellungen...

Attached Images

  • MajorUpgrade2.png


Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 09 February 2009 - 09:27

Ok, danke. Das habe ich jetzt gemacht. Jetzt bekomme ich das Programm nicht mehr mehrmals unter Software angezeigt, aber wenn ich jetzt ein neues MSI erstelle erscheint wieder die Meldung das ich das Programm deinstallieren soll. Obwohl ich den Product Code geändert habe.
Bin echt am verzweifeln :-(

Liebe Grüße
Sunflower84

Edited by Sunflower84, 09 February 2009 - 09:27.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 February 2009 - 15:42

QUOTE
wenn ich jetzt ein neues MSI erstelle erscheint wieder die Meldung das ich das Programm deinstallieren soll. Obwohl ich den Product Code geändert habe.

Diese Meldung kann eigentlich nur kommen, wenn der ProductCode *nicht* geändert wurde. Bist du sicher, dass du die Begriffe ProductCode, PackageCode und UpgradeCode nicht verwechselst?

Öffne die .msi Datei mit Orca und schau unter Properties nach den ProductCode ob er wirklich unterschiedlich ist.

eachte, dass man den ProductCode bei InstallShield unter Allgemeine Einstellungen festlegen kann und zusätzlich beim Release einen abweichenden Code. Letzterer hat Vorrang (sofern er gesetzt wurde).

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 09 February 2009 - 16:23

Ok, danke. Das war mein Fehler. Hab den Produkt Code bei Allgemeine Informationen geändert.
Aber jetzt hab ich noch das Problem das die Dateien nicht überschrieben werden. Wenn ich bei den Pfadvariablen einen anderen Ordnername eingebe für eine neue Version der Komponente sollte der komplette Ordern überschrieben werden. Alle DLLs usw. Das was vorher in diesem Ordner lag muss komplett gelöscht werden.
Zur Verdeutlichung.

Ordern mit folgendem Namen : "Komponente_version1.1.0"
Diesen änder ich dann in den Pfadvariablen in "Komponente_version1.2.0"
Aus diesem Ordner holt er sich alle DLLs und was man sonst noch für die Komponente benötigt. Der Inhalt des Ordners von der Komponente mit der älteren Version muss komplett gelöscht werden.

Weißt du was ich meine?

Liebe Grüße
Sunflower94

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 February 2009 - 16:42

Ja, das sollte das Major Upgrade automatisch erledigen. Schau sicherheitshalber unter den Upgrade-Einstellungen, ob dort gewählt ist "alte Version zuerst komplett entfernen".

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 09 February 2009 - 16:53

Ja, das ist ausgewählt.

Liebe Grüße
Sunflower84

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 10 February 2009 - 09:04

Ich bekomme außerdem auch wieder unter Software mein installiertes Programm mehrmals angezeigt :-(
Ich habe aber ausgewählt das mein Programm zuerst deinstalliert werden soll. Hat jemand noch eine Idee?

Liebe Grüße
Sunflower84

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 10 February 2009 - 11:36

Dann funktioniert das Major Upgrade wieder nicht. Hast du vielleicht den UpgradeCode geändert?

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 10 February 2009 - 11:43

Da habe ich drauf geachtet. Nur den Product Code habe ich geändert. Der Upgrade Code ist immer noch gleich.
Hat es vielleicht mit der Versionsnummer was zu tun? Wenn man auf das Upgrade klickt und dann auf "Erweitert" habe ich angehackt: Minimalversion einschließen. Hat es damit vielleicht was zu tun?

Liebe Grüße
Sunflwoer84

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 10 February 2009 - 11:46

Welche Versionsnummern sind denn angegeben?

Mach doch mal eine Upgrade-Validierung.

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 10 February 2009 - 12:09

Bei Minimalversion habe ich keine Begrenzung festegelegt. Das Fedl ist einfach leer. Habe da aber auch schon was eingegeben und Minimalversion einschließen auf Nein gesetzt. Bringt aber leider auch nichts.

In den Einstellungen vom Build ist schon standardmäßig ausgewählt: Patches und Upgrades validieren. Wenn ich mit rechts klick auf das Upgrade "Alle Elemente validieren" gehe sagt er Validierung abgeschlossen aber das bringt auch nichts.

Ich bekomme aber folgende Warnung: Vielleicht sagt dir das was:

ISDEV : warning -6487: "Wenn Sie vorhaben, dieses Upgrade als Patch zu verteilen, sollten Sie die Einstellung ""Patch-Optimierung"" im Fenster Erweiterte Einstellungen des Release-Assistenten anlegen."
Media-Tabelle erfolgreich erstellt
Prüfung der Aktualisierung und des Patchs werden durchgeführt
---------------------------------------------------------------------------------------------------------------------------------
Windows validation is disabled. To enable Windows validation: on the Tools menu, click Options and select the Validation tab.
You can use the Windows® Vista Quality Validation Suite (plus InstallShield ICEs) to determine whether your product meets Windows Vista Quality Program installation standards.
For more information, see KB article http://support.insta...ticleid=Q112118.
---------------------------------------------------------------------------------------------------------------------------------[COLOR=red]

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 10 February 2009 - 12:18

Die Warnung hat nichts damit zu tun. Stell doch mal unter den nicht-advanced" Einstellungen auf "any older version". Und natürlich musst du die Produkt-Version jedes Mal erhöhen.

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 10 February 2009 - 12:56

Den Product Code erneuer ich jedes Mal wenn ich was ausprobiere. Aber nur unter Release. Muss ich den Product Code auch unter Allegemine Informationen ändern?
Wo finde ich denn "any older version"?

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 11 February 2009 - 10:23

Bei mir in den Einstellungen wird der PaketCode immer neu generiert. Könnte es vielleicht daran liegen?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 11 February 2009 - 15:00

QUOTE
Den Product Code erneuer ich jedes Mal wenn ich was ausprobiere
Das ist gut und richtig. Aber ich habe geschriben: "Und natürlich musst du die Produkt-Version jedes Mal erhöhen."

QUOTE
Aber nur unter Release. Muss ich den Product Code auch unter Allegemine Informationen ändern?
Die Release-Einstellungen haben Vorrang. Nur wenn unter Release kein ProductCode eingetragen ist (Feld leer) gelten die Angaben unter Allgemeine Einstellungen.

QUOTE
Wo finde ich denn "any older version"?
Siehe beigefügten Screenshot.

QUOTE
Bei mir in den Einstellungen wird der PaketCode immer neu generiert.
Das ist richtig und muss so sein.

Attached Images

  • MajorUpgrade.png


Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 12 February 2009 - 09:23

Hat geklappt :-)
Hab die Versionsnummer unter Allgemeine Informationen geändert rolleyes.gif
Wenn ich es unter Release änder geht es auch.
Vielen Dank.

Liebe Grüße
Sunflower84