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

Minor Upgrade von WixEdit auf InstallShield


9 replies to this topic

cheese-2402

cheese-2402
  • Full Members
  • 45 posts

Posted 13 February 2009 - 15:36

Hallo,

ich hab das Forum durchkämmt und leider für mich nichts Weiterführendes gefunden, was ich nicht schon beachtet hätte.

Problem: Ich habe ein altes Setup, welches mit WixEdit erstellt wurde. Dieses soll nun durch eine InstallShield-Installation abgelöst werden.

Ich habe mir in der Hilfe und im Forum nun die ganzen Themen zum Minor-Upgrade durchgelesen. Ich denke nichts anderes ist mein Setup.
- Ich tausche Dateien
- aktualisiere die Registry-Values
- Schreibe die neue Version in die Ini-Files

Mein Setup besteht aus verschiedenen Features, einmal Client und einmal Server, die beiden jeweils unterteilt auf Neuinstallation und Update, wobei beim Update alle Komponenten hängen, die bei Neuinstallation und Update gebraucht werden und bei Neuinstallation nur die, die beim ersten mal installiert werden wie Leerdaten etc.

Der Aufruf erfolgt mit msiexec /i Produkt.msi REINSTALL=UpdateClient REINSTALLMODE=vamus

Den Produktcode und den UpgradeCode habe ich gleich gelassen, die Package-Id geändert. Die Features heißen auch so. Die Komponenten habe ich auch gleich benannt und die gleichen GUID's für die Komponenten verwendet.

Kann es sein, dass es an den KeyFiles liegt? Weil beim WixEdit habe ich alle Dateien per Hand hinzugefügt, beim InstallShield möchte ich aber gerne die dynamische Verknüpfung verwenden (ohne Unterordner und best praktice).

Irgendwie hab ich schon ziemlich Alles, was im Forum beschrieben wird, probiert, nix hat geholfen.

Anmerkung: Ich habe im alten Setup noch komponenten drin, die ich nicht mehr brauche (War z.B. zum löschen einer Datei). Dadurch bekomme ich SELMGR-Fehler, dies habe ich gerade im Log gesehen. Kann dies daran liegen?

Hat wer ne Idee, was ich falsch mache?

Gruß Christoph

Edited by cheese-2402, 13 February 2009 - 16:05.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 14 February 2009 - 10:14

QUOTE
Kann es sein, dass es an den KeyFiles liegt?
Es müssen für die Komponenten wieder die gleichen Dateien als Key File markiert werden wie in der alten Version.

QUOTE
beim InstallShield möchte ich aber gerne die dynamische Verknüpfung verwenden (ohne Unterordner und best praktice).
Best Practice solltest du aktivieren, damit DLLs z.B. jeweils eine eigene Komponente bekommen und als Key File markiert werden. Gibt es einen Grund, warum du davon abweichen willst?

QUOTE
Ich habe im alten Setup noch komponenten drin, die ich nicht mehr brauche (War z.B. zum löschen einer Datei). Dadurch bekomme ich SELMGR-Fehler, dies habe ich gerade im Log gesehen. Kann dies daran liegen?
Ja. Du darfst keine Komponenten entfernen. Du kannst der Komponente aber die Bedingung 0 geben, dann wird sie nicht installiert.

Meine Empfehlung wäre, ein Major Upgrade zu machen. Damit sparst du dir den ganzen Ärger.
Wenn das aus irgendeinem Grund nicht möglich ist, dann könntest du die alte .msi Datei in InstallShield importieren und in ein InstallShield Projekt konertieren. Dann stimmen schon mal die ganzen Komponenten incl. GUIDs und Key Files.

cheese-2402

cheese-2402
  • Full Members
  • 45 posts

Posted 16 February 2009 - 13:52

Hallo Stefan,

ich habe leider keine Möglichkeit, ein Major-Upgrade zu machen, da die ganze Umgebung des Updates mit Scripts, kopieren von Update-Cd etc schon vorhanden ist und nicht mehr geändert werden kann. Außerdem sind schon Kundenversionen ausgeliefert, welche schon mit Daten arbeiten und diese würden bei einer Neuinstallation überschrieben.

Die Konvertierung klappt nicht, der Menüpunkt ist bei mir Disabled.

Den Sinn von Best Practice habe ich noch nicht verstanden bzw sehe hier keinen Sinn. Wenn ich für jede Datei eine eigene Komponente habe, bedeutet es nur für mich, dass die Verwaltung der GUIDs und die daraus möglicherweise entstehenden Probleme aufwendiger werden.

Das Eintragen der richtigen Keyfiles hat leider nichts gebracht, ich bekomme auch jetzt kein Update von der alten auf die neue Version, es werden einfach keine Dateien ersetzt.

Woran könnte es noch liegen?

Gruß Christoph


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 February 2009 - 19:05

QUOTE
Die Konvertierung klappt nicht, der Menüpunkt ist bei mir Disabled.
Ich meinte: über Datei > Öffnen

QUOTE
Den Sinn von Best Practice habe ich noch nicht verstanden bzw sehe hier keinen Sinn. Wenn ich für jede Datei eine eigene Komponente habe, bedeutet es nur für mich, dass die Verwaltung der GUIDs und die daraus möglicherweise entstehenden Probleme aufwendiger werden.
Die Entscheidung, ob eine Datei bzw. Komponente überschrieben wird, orientiert sich aber an der Schlüsseldatei. Die GUIDs musst du auf jeden Fall in den Griff kriegen. Wenn du versuchst, die Vorgaben zu umgehen und Abkürzungen zu nehmen, dann wirst du immer wieder Probleme bekommen.
Aber wenn du ohnehin kein Major Upgrade machen kannst, dann musst du die vorhandenen Strukturen und GUIDs beibehalten. Daran ist dann nichts mehr zu ändern.

QUOTE
Woran könnte es noch liegen?
Sind alle SELMGR Fehler behoben?

cheese-2402

cheese-2402
  • Full Members
  • 45 posts

Posted 18 February 2009 - 09:01

Hallo Stefan,

das konvertieren hat leider nicht funktioniert, die Dateien wurden irgendwie nicht gefunden, also hätte es mir nichts genutzt.

Die GUID's hab ich übertragen, ich möchte auch keine Abkürzungen nehmen. Ich habe das ganze Projekt nach meinem Wissensstand und den Möglichkeiten von InsallShield neu bzw nachgebaut.

Zu deiner Anmerkung zu BestPractice. Ich denke, bei einem neuen Projekt ist es nicht schlecht, dies zu verwenden, jedoch für mein Projekt mit dem MinorUpgrade würde dies absolut nicht funktionieren.

Zum eigentlichen Problem: Anscheinend waren GUID's der Komponenten verzogen, ich habe diese allesamt übertragen vom Alten aufs neue Projekt und da wurde wohl etwas nicht gespeichert oder ging verloren, keine Ahnung. Auf alle Fälle gehts jetzt. Was ich aber festgestellt habe, es geht auch ohne KeyFiles, er macht trotzdem das Update, da ich ja mit vamus aufrufe und er dann die Dateien ja immer überschreibt, was auch so gewollt ist.

Jetzt steht nur noch der Test unter Vista aus, bei XP klappts schon ganz gut :-)

Gruß Christoph

cheese-2402

cheese-2402
  • Full Members
  • 45 posts

Posted 18 February 2009 - 11:45

Hallo Stefan,

unter Vista hab ich nun noch ein Problem, welches ich noch nicht gelöst habe bzw nicht mehr weiß, woran es liegen könnte.

Bei der Installation werden 3 Dienste installiert, die ich bei der Deinstallation wieder löschen möchte. Unter XP soweit kein Problem, nur die Dienste werden nicht deinstalliert. Unter Vista kommt die Meldung, dass die Anwendungen geschlossen werden müssen.

Hast du vielleicht einen Tipp auf Lager, warum dies nicht funktioniert?

Das Installieren von Diensten funktioniert mit dem InstallShield-Projekt einwandfrei, nur beim Steuern scheine ich ins Schlingern zu geraten, obwohl ich sage, er soll Deinstallieren bzw bei Installation anhalten, bei Deinstallation anhalten/löschen.

Was mich wundert ist, dass das Update einwandfrei funktioniert bzw hier auch die Dienste gestoppt werden.

Gruß Christoph

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 February 2009 - 21:00

QUOTE
jedoch für mein Projekt mit dem MinorUpgrade würde dies absolut nicht funktionieren.
Ja, das stimmt. Du darfst die Struktur nicht verändern.

QUOTE
da ich ja mit vamus aufrufe und er dann die Dateien ja immer überschreibt, was auch so gewollt ist.
vamus ist eine gefährliche Einstellung, weil es für alle Dateien gilt, also auch für evtl. gemeinsam genutzte Dateien. Die können dann durch eine ältere Version ersetzt werden, was zu Problemen bei anderen Programmen führen kann.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 February 2009 - 21:02

Ich nehme an, dass in beiden Fällen (XP und Vista) die Dienste nicht gestoppt werden und dehalb nicht deinstalliert werden. Der Unterschied ist, dass Vista eine bessere Erkennung für laufende Prozesse hat, die zu löschende Dateien blockieren. XP merkt es nicht, deshalb kommt keine Meldung.

cheese-2402

cheese-2402
  • Full Members
  • 45 posts

Posted 16 March 2009 - 08:36

Ich habe die Lösung nach einer Unterbrechung für ein anderes Projekt endlich gefunden.

Durch die vielen Installationsversuche, teils auch mit halbfertigen Paketen, scheint der Dienstmanager durcheinander gekommen zu sein. Rechner neu aufgesetzt, jetzt funktioniert es.

Was ich jetzt noch gesehen habe:

In WixEdit habe ich einen Ordner angelegt, in dem die Ini-Datei-Änderungen angelegt waren. Dieser tauchte jedoch nie auf, da hier über ID's gegangen wurde und damit ein anderer Ordner zugeordnet bei Ausführung. Wenn ich jetzt aber eine InstallShield-Version darüber installieren lasse, habe ich das Problem, dass auf einmal dieser Ordner sichtbar wird und InstallShield die Ini-Änderungen in diesem Ordner anlegt.

Daher meine Frage, habe ich irgendeine Möglichkeit, dies zu ändern?

Gruß Christoph

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 March 2009 - 18:33

Die Frage mit den INI-Dateien verstehe ich nciht. Kannst du es bitte nochmal beschreiben?