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

Error 1731 - Während Patchinstallation


1 reply to this topic

DoSDev

DoSDev
  • Full Members
  • 17 posts

Posted 19 May 2009 - 14:24

Hallo Zusammen,

nachdem ich vegeblich versucht habe, über die Forums-Suche eine Antwort zur Fehler-Nr 1731 zu finden und jedesmal auf einer Fehlerseite landete, eröffne ich jetzt hoffentlich das erste Topic zu diesem Thema.

Mein Workflow:
* Installiere die Basis Version 1.0 (eine *.msi Datei)
* Installiere 18 Patches in der Reihenfolge, in der diese erstellt wurden.

Das Problem:
Beim Versuch einen der letzteren Patches zu Installieren erhält man die Fehlermeldung: "The source installation package for the product <ProductName> is out of sync with the client package. Try the installation again using a valid copy of the installation package '<FileName>.msi'."
Beim Kunden A passiert es bei der Installation vom Patch 16, beim Kunden B vom Patch 17 und bei uns gar nicht.

Woran kann das liegen bzw. mache ich da irgendetwas falsch? sad.gif

Zur Erstellung der MSI und MSP Dateien verwende ich das Windows Installer Xml Framework.

Der Deployment Prozess sieht folgendermaßen aus:
* Die Hauptversiosn 1.0 wird einmalig als MSI Datei an den Kunden gegeben.
* Jeder Patch wird erstellt, indem:
** Nur die zu patchenden Dateien in das Komponenten Verzeichnis der Patch/Setup Build Umgebung kopiert werden.
** Anschließend wird nochmal ein MSI erstellt.
** Bei der Erstellung des MSIs wird vom Windows Installer Xml Framework (wie beim Ersten) eine wixpdb erstellt.
** Die wixpdb nutze ich dann um über torch.exe ein wixmst zu erstellen und anschließend aus dem wixmst und einer Patch.wxs (beschreibt den Inhalt des Patches wie z.B. PatchFamily) mit pyro.exe das MSP zu erstellen.

Ein Paar weitere Fragen:
* Wenn ich im Patch 001 eine PatchFamily mit dem Namen/Id "Family" habe, dieser x Komponenten hinzufüge und dann im Patch 002 diese aus der PatchFamily des Patch002 wieder entferne und neue aufnehme, funktioniert das schon, oder? Was mich etwas verwirrt ist die, bereits schon häufig gelesene Aussage, dass eine PatchFamilie nur wachsen darf und keine Mitglieder dieser ausgenommen werden dürfen -> bezieht sich dass nur auf einen einzelnen Patch oder auch auf alle drauf folgendenden?

Mfg

DoSDev

akerl

akerl
  • Full Members
  • 104 posts

Posted 21 May 2009 - 10:04

Moin DoSDev,

offensichtlich verwendet Dein Kunde sowohl das statische, als auch das dynamische Patching. In Kurzform. Das dynamische Patchen ist die klassische Vorgehensweise. Das Installationspaket wird mit msiexec /i installiert und die Patches werden mit msiexec /update angewendet. Beim statischen Patchen erfolgt die Installation von einem administrativen Image. Also zunächst wird mit msiexec /a ein administratives Image auf einem Netzlaufwerk etc. erzeugt. Von diesem Ort werden dann die Clientinstallationen mit msiexec /i wie bekannt durchgeführt. So weit so gut. Nun ist es möglich, die Patches direkt auf das administrative Image anzuwenden, bspl. QFE1 und QFE2. Wird im Folgenden eine Clientinstallation vom administrativen Image ausgeführt, ist auf dem Clientsystem automatisch die Originalapplikation mit angwendeten Patch QFE1 und QFE2 vorhanden. Hört sich gut an, ist aber sehr gefährlich. Wenn nun ein Client, dessen Installation von einem administrativen Image gestartet wurde, dass einen anderen Status hatte, als aktuell vorliegt (bspl. RTM + QFE1) kommt es zum Fehler 1731. Das hat damit zu tun, dass der Client bei der Anwendung des Patches 17 wohl auf die Installationsquelle zugreifen muss. Und diese hat nicht den erhofften Status. Ich habe diese Thematik schon mal in einem Buch beschrieben. Das Mischen beider Methoden sollte unbedingt vermieden werden.

Andreas

Andreas Kerl

Inside Windows Installer 4.5
ISBN 3-86645-431-7