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

Express 5: Upgrade erstellen funktioniert nicht


11 replies to this topic

ISuser

ISuser
  • Members
  • 15 posts

Posted 18 October 2004 - 17:02

Hallo,

wir benutzen seit Jahren InstallShield Express Deutsch. Zur Zeit haben wir Version 5. In der Werbung wird mit Upgrade- und Patch-Möglichkeiten geworben. Toll dachten wir und probierten. Aber nichts lief wie es soll. Wie funktioniert das also?

Beispiel:
Ein Kunde erhält von uns die Anwendung DUMMY in der Version 2.5.9 mit etlichen zusätzlichen Dateien.
Unter (1) Setup organisieren
- Allgemeine Informationen tragen wir ein
-- Produktname: DUMMY
-- Produktversion: 2.5.9
-- Produktcode: {02419373-A4F7-4F6B-B27D-2C1780964AD6}
-- Upgradecode: {D8DD7BE6-2844-47A8-8D86-6C1BE1101174}

- Upgrade-Pfade
-- (enthält keine Eintragung)

Der Kunde installiert das nicht im Standardpfad, also nicht in [ProgramFileFolder] (z. B. auf einem anderen Laufwerk).
Nach ein paar Tagen/Wochen/Monaten gibt es eine neue DUMMY Version 2.5.10.
Unter (1) Setup organisieren
- Allgemeine Informationen tragen wir ein
-- Produktname: DUMMY
-- Produktversion: 2.5.10
-- Produktcode: {D872B70D-FB4F-4CD5-9CFD-19C2EC5A94EA}
-- Upgradecode: {D8DD7BE6-2844-47A8-8D86-6C1BE1101174}

- Upgrade-Pfade
-- DUMMY020509 (das ist also der Name des neuen Upgrad-Pfades)
--- Upgrade-Code: {D8DD7BE6-2844-47A8-8D86-6C1BE1101174}
--- Min. Version: 2.5.9
--- Min. Version einschließen: Ja
--- Max. Version: 2.5.9
--- Max. Version einschließen: Ja
--- Sprach-IDs: 1031
--- Suchkriterium für die Sprache: Angegeben Sprach-ID(s) einschließen
--- Feature-Zustände migrieren: Ja

Im neuen MSI-Paket sind die neue DUMMY.EXE und die zugehörige DUMMY.DLL enthalten. Alle anderen Dateien sind gleich geblieben.
Der Kunde fragt jetzt:
1. Ich muss beim Upgrade ständig den Pfad auswählen. Warum findet die Installation die Anwendung nicht. Sie ist doch registriert!
2. Warum funktioniert nach einer Upgrade-Installation von 2.5.9 auf 2.5.10 der Uninstall-Shortcut nicht mehr?

So, der Kunde ist genervt. Und wir haben bisher keinen Dreh gefunden ein fehlerfreies Upgrade zu erstellen.

Welche Einstellungen fehlen uns zu unserem Glück, bzw. zu einer fehlerfreien Upgrade-Installation?
Für ausführliche Hilfen sei hier schon vorab recht herzlich gedankt!


ISuser

ISuser
  • Members
  • 15 posts

Posted 18 October 2004 - 17:15

Ich muss noch ergänzend erwähnen:

Wir tauschen DUMMY.EXE und DUMMY.DLL auf den Pfaden durch die neuen Version aus. Danach öffnen wir das InstallShield-Projekt (last recently used project list No. 1, also Datei->1). Danach ändern wir Produktversion und -code.
Der Eintrag unter Upgrad-Pfade wird aus der zuvom erstellten MSI-Paket für DUMMY 2.5.9 automatisch übernommen.

Momentan fällt mir nichts mehr ein, das Projekt genauer zu beschreiben.
Wenn Informationen fehlen sollten, reichen wir diese schnellst möglich nach.

Schöne Woche!

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 October 2004 - 09:06

Diese Upgrade-Pfade funktionieren so, dass die alte Version automatisch deinstalliert wird und danach die neue Version installiert wird. Deshalb müssen alle Angaben (z.B. Zielverzeichnis) erneut einegegeben werden. Um das zu vermeiden könnte man versuchen, das alte Verzeichnis auszulesen und als Vorganbe für die neue Version zu setzen. Wenn es in Express 5 einen Punkt Systemsuche (oder ähnlich) gibt, dann kan man es dort machen, andernfalls mit einer benutzerdefinierten Aktion.

ISuser

ISuser
  • Members
  • 15 posts

Posted 19 October 2004 - 10:02

Hallo Stefan,

zunächst einmal recht herzlichen Dank für Deine schnelle Antwort.

> Diese Upgrade-Pfade funktionieren so, dass die alte Version automatisch deinstalliert
> wird und danach die neue Version installiert wird. Deshalb müssen alle Angaben (z.B.
> Zielverzeichnis) erneut einegegeben werden.

Genau das ist die Frage! Warum müssen die Pfade erneut eingegeben werden? Es soll die vorhandenen Version, egal wo diese liegt und vor allem egal ob der Anwender noch weiss wo sie liegt, aktualisiert werden. Genau dann handelt es sich um ein "automatisches Update".
Es ist unserer Ansicht nach ein sehr großer Fehler in InstallShield Express 5 enthalten, wenn das alte Verzeichnis nicht "automatisch" ausgelesen wird. Es sind doch alle Angaben für ein Update bzw. Upgrade vorhanden. Das deinstallieren funktioniert, also kann InstallShield das Verzeichnis dort abfragen.


> Um das zu vermeiden könnte man versuchen, das alte Verzeichnis auszulesen
> und als Vorganbe für die neue Version zu setzen. Wenn es in Express 5 einen
> Punkt Systemsuche (oder ähnlich) gibt, dann kan man es dort machen, andernfalls
> mit einer benutzerdefinierten Aktion.

Zumindest in der Online-Hilfe habe ich im Index das Stichwort "Systemsuche" gefunden. Im Kontext mit unserer Frage ist das leider nicht aufgetaucht. Daher danken wir Dir für diesen Hinweis. Wir werden jetzt unverzüglich die "Systemsuche" analysieren und auf Ihre Verwendbarkeit testen. Auf jeden Fall halten wir Dich auf dem Laufenden und erzählen Dir von unseren Erfolgen oder neuen Problemen.



ISuser

ISuser
  • Members
  • 15 posts

Posted 19 October 2004 - 10:22

Hallo Stefan,

das Analysieren der Systemsuche war schnell getan. Man kann nach Dateien, Pfaden, Registrierungen, etc. suchen. Danach erscheint der Dialog, bei dem man zwischen den beiden Möglichkeiten auswählen kann:
<ul>
<li>Die Installation kann nicht fortgesetzt werden, wenn die von Ihnen gestartete Such <u>gefunden</u> wurde</li>
<li>Die Installation kann nicht fortgesetzt werden, wenn die von Ihnen gestartete Such <u>nicht gefunden</u> wurde</li>
</ul>

Ein spezielle Funktion kann man nicht aufrufen, z. B. "Übergebe Dateipfad als neues Installationsverzeichnis", etc.
Noch einmal ein Dankeschön für den Tipp. Wir sind zwar nicht weiter, aber haben trotzdem haben wir etwas neues erfahren.



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 October 2004 - 10:24

Es ist das Wesen eines Major Upgrade (und darum handelt es sich hier) dass die Verzeichnisse nicht automatisch übernommen werden. Das hat Microsoft bei MSI so "by design" festgelegt. Natürlich hätte InstallShield eine entsprechende benutzerdefinierte Aktion mitliefern können, die dieses Verhalten ändert.
Anders ist es bei einem Minor Update, dort wird das Verzeichnis immer beibehalten (und kann auch vom Benutzer nicht geändert werden).

Dieser Artikel in der Knowledge Base könnte ebenfalls helfen:
http://support.insta...ticleid=Q105316

Auch dieser Artikel könnte interessant sein:
http://helpnet.insta.....h/gsearch.asp

Das alte Installationsverzeichnis müsste im Uninstall Registry-Eintrag als InstallLocation stehen.

ISuser

ISuser
  • Members
  • 15 posts

Posted 19 October 2004 - 10:27

Oh, ich sehe gerade, daß HTML-Tags nicht funktionieren. Hier noch einmal der Text in der Textformatierung:

Hallo Stefan,

das Analysieren der Systemsuche war schnell getan. Man kann nach Dateien, Pfaden, Registrierungen, etc. suchen. Danach erscheint der Dialog, bei dem man zwischen den beiden Möglichkeiten auswählen kann:
  • Die Installation kann nicht fortgesetzt werden, wenn die von Ihnen gestartete Such gefunden wurde.
  • Die Installation kann nicht fortgesetzt werden, wenn die von Ihnen gestartete Such nicht gefunden wurde.

Ein spezielle Funktion kann man nicht aufrufen, z. B. "Übergebe Dateipfad als neues Installationsverzeichnis", etc.
Noch einmal ein Dankeschön für den Tipp. Wir sind zwar nicht weiter, aber haben trotzdem haben wir etwas neues erfahren.

ISuser

ISuser
  • Members
  • 15 posts

Posted 19 October 2004 - 12:57

Hallo Stefan,

Deinen beiden Verweisen bin ich nunmehr auch nachgegangen.
  • Question

    If the user selects another directory other than the default directory will the installer recognize this automatically when installing an upgrade or do I have to pick that information out of the registry?
  • Answer

    When sending an upgrade, installer automatically acquires the updated value of INSTALLDIR from the cached MSI package and/or the registry. In a patch or a minor upgrade, the installer knows the updated value of INSTALLDIR. However, in the case of a major upgrade, unless the setup author selects "Yes" for Migrate Feature States property of the Upgrade Paths, a major upgrade does not query the installed package for the installation location of the features and components on the machine.

Also wie gesagt, so wie die Firma "InstallShield" das verspricht, wird das von Ihrem Produkt "InstallShield Express 5" nicht gehalten. Aus meinem ersten Posting geht hervor, daß wir beim Punkt "Feature-Zustände migrieren" ein "Ja" eingetragen haben. Ich habe das jetzt noch einmal mit "Nein" und anschliedßend mit "Ja" probiert. Es will nicht funktionieren. Es wird zwar deinstalliert, aber der Anwender muss immer noch den Installationspfad auswählen. Ausserdem werden die Features nicht übernommen, sie werden wieder zur Auswahl angeboten.

So, jetzt bleibt nur noch Dein anderer Tipp übrig.
Dieser steht auch in der Hilfe zu InstallShield Express 5. Ich habe jetzt beide Varianten durchprobiert, d. h. einmal mit dem abschließenden Backslash und einmal ohne. Das Ergebnis ist wie gehabt.

Mittlerweile glaube ich ziehmlich sicher an einen InstallShield-Fehler.
Das frustrierendste ist nur, welche Zeit für eine solche Aufgabe draufgeht! Datei entpacken, Pfad setzen, das wars, alles lief, das waren noch Zeiten.


ISuser

ISuser
  • Members
  • 15 posts

Posted 19 October 2004 - 13:09

Hallo Stefan,

ich habe mir gerade noch einmal Deine Antwort durchgelesen. Folgende Fragen habe ich dazu:

Warum handelt es sich um ein Major Upgrade? Wir wollen nur zwei Dateien austauschen, bei denen Fehler aufgetreten sind. Diese beiden Dateien werden immer im Zusammenhang gepflegt. Das letzte Upgrade von zz.xx auf zz.yy war vor über einem Jahr. Seit her wird nur von zz.yy.aa auf zz.yy.ab gezählt, d. h. Bugfixes.


ISuser

ISuser
  • Members
  • 15 posts

Posted 20 October 2004 - 14:54

Hallo Stefan,

ich habe jetzt auch herausgefunden, daß es sich um ein "Major Upgrade" handelt.

In der Online-Hilfe von InstallShield Express 5 steht das dann so:

Applying Major Upgrades by Installing the Product

A major upgrade can be applied by installing the new installation package for the upgraded product. Because major upgrades get a different product code than the original product, installing the upgrade must be treated as an installation of a new product. The upgrade can simply be installed like another product. You can have the new installation package handle the removal of the old product by including the Upgrade table and the FindRelatedProducts action and RemoveExistingProducts action.

Das kann man sehr schnell mißverstehen, wenn man sich auf "Upgrade" eingeschossen hat.

Wir probieren das jetzt mit dem "Minor Upgrade". Aus der Online-Hilfe zu InstallShield Express 5:

Minor Upgrades

A minor upgrade and a small update differ in that a minor upgrade changes the package code and product version. As in the case of a small update, a minor upgrade does not change the product code. Minor upgrades provide product differentiation without actually defining a different product. See Small Updates for guidelines on the kinds of updates that can be handled by a small update or minor upgrade. Minor upgrades are shipped as a full product installation package or as a patch package. However, a minor upgrade cannot use a different volume label for the new version.

Hast Du ein paar Tipps, wo man ein brauchbares "How to" findet?

ISuser

ISuser
  • Members
  • 15 posts

Posted 20 October 2004 - 16:24

Hallo,

da taucht ein neuer Begriff auf: Package Code. In welchem Zusammenhang steht der und wo finde ich den in InstallShield Express 5?

So, hier zunächst einmal die wichtigsten Links:
Sending a Minor Upgrade to an Existing Product Without Uninstalling/Reinstalling
und
Applying Small Updates by Reinstalling the Product
und
Command-Line Switches for the Microsoft Windows Installer Tool

und wie es der Teufel will, es klappt bei mir (noch) nicht.
Hat irgendjemand weitere Ideen?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 21 October 2004 - 10:42

Für ein Minor Update darf sich der ProductCode nicht ändern!
Der PackageCode steht möglicherweise unter General Settings. Kann aber auch sein, dass er bei Express gar nicht zugänglich ist. Das ist aber auch nicht nötig, wenn er automatisch bei jedem Build neu generiert wird.
Im Zweifelsfall bringt eine Log-Datei Licht in die tatsächlichen Vorgänge.

Mein letzter Hinweis funktioniert auch mit einem Major Upgrade, nämlich den Pfad aus der Registry auszulesen. Das müsste mit der Systemsuche gehen. Allerdings ist Express eben gegenüber der großen Version an einigen Stellen kastriert, sonst wäre das alles kein problem.