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

Überschreibungsrelgeln


7 replies to this topic

Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 28 April 2006 - 09:46

Hallo
gibt es eine Möglichkeit die Überschreibungsregeln des Windows Installers zu umgehen/zu ändern.
Bei uns kommt es ab und zu vor, dass Kunden ihre Daten kopieren. Dadurch kommt es vor, dass bei einer Datei das Erstellungsdatum neuer ist als das Änderungsdatum. Diese Datei wird dann bei einer Updateinstallation überschrieben. Gibt es die Möglichkeit, dass nur das Änderungsdatum bei der Installation berücksichtigt wird.

Grüße
Dietmar

ali

ali
  • Full Members
  • 1,008 posts

Posted 28 April 2006 - 11:44

schau dir mal die Eigenschaft REINSTALLMODE des Installer an.

Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 28 April 2006 - 12:00

Hi,
gilt der REINSTALLMODE nicht nur die Repeartur? Gibt es so was auch für Updates?


Zum REINSTALLMODE: Da steht, das ältere Versionen überschrieben werden. Bezieht sich das auf das Änderungsdatum oder greifen da wieder die MSI Regeln (Erstellungsdatum, Änderungsdatum etc.)

Grüße
Dietmar

ali

ali
  • Full Members
  • 1,008 posts

Posted 28 April 2006 - 12:21

ja, der gilt auch da, und den solltest du dir mal etwas genauer ansehen.
Denn normalerweise überschreibt der Installer keine unversionierten Dateien bei den sich das Erstellungsdatum von Änderungsdatum unterscheidet. Es sei denn das die zu Installierende Datei einer Version besitzt und die installierte Datei keine.

Der Standard REINSTALLMODE für ein Minor Upgrade ist "vomus". Hier ist das "o" recht intersessant. Sollte da anstelle ein "a" stehen, überschreibt der installer alle Dateien ungeachtet der Version und des Zeitstempels.

Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 28 April 2006 - 13:53

Hallo,
ich habe mir noch mal die Regeln fürs Überschreiben von "Dateien ohne FileVersion" angeschaut. Laut SDK werden Dateien nicht übeschrieben wenn "Modified and created date of copy-B are different" (Copy-B ist die auf dem System vorhandene Datei). Steht in der Windows Installer Hilfe unter "Neither File has a Version)

Meine heuten Test ergaben aber was anderes:
1.
Copy-A (File to Install): Modify and created date: 19.09.2005
Copy-B (target location) Modify 28.03.2005, Create: 19.09.2005
In diesem Fall wird die Datei bei einer Installation/Reperatur überschrieben (obwohl in der SDK was anderes steht, siehe oben)

2.
Copy-A (File to Install): Modify and created date: 19.09.2005
Copy-B (target location) Modify 28.03.2006, Create: 19.09.2005
In diesem Fall wird die Datei bei einer Installation/Reperatur nicht überschrieben. (so wie es sein sollte).
Ist das sonst noch jemanden aufgefallen. Ist das ein Bug im Windows Installer.
Auf meinem XP Rechner ist die msiexec.exe in Version 3.1


@Ali: Es sollen ja nicht alle Dateien überschrieben werden. Vom Kunden veränderte Dateien solen beibehalten werden. Und es kam schon vor, dass der Kunde die Datei aus dem Ornder kopiert - geändert und wieder zurück verschoben hat. Und tritt das ein was oben unter 1. beschrieben ist.

Grüße
Dietmar

PS: Noch was am Rande:Wenn als Fileserver z.B. ein Linux Sever dient bekommt der Windowsrechner auf dem die Installation läuft nur das Änderungsdatum (kein Creationdate) zurück und damit werden alle Dateien ohne Versionsnummer überschrieben. Hat schon wer Erfahrungen in diesem Bereich?

ali

ali
  • Full Members
  • 1,008 posts

Posted 28 April 2006 - 14:19

wieso machst du nicht mal ein log von der Installation und schaust nach wieso der Installer diese Dateien überschreibt. Dabei kannst auch mal schauen was der REINSTALLMODE für einen Wert hat.

Edited by ali, 28 April 2006 - 14:19.


Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 02 May 2006 - 07:42

Hi,
ich habe das mal gemacht:

ReinstallModeText = omus
und mir eine Datei ruasgesucht und dann im Protokoll nachgeschaut:
**Beginn Protokoll*************
MSI (s) (2C:E0) [08:28:52:671]: Executing op: FileCopy(SourceName=archivin.sfl,SourceCabKey=archivin.sfl,DestName=archivin.sfl,Attributes=16384,FileSize=4237,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=58982400,HashOptions=0,HashPart1=212884681,HashPart2=1105954210,HashPart3=-1540966436,HashPart4=1416715165,,)
MSI (s) (2C:E0) [08:28:52:687]: File: d:\Programm\Listen\archivin.sfl; Overwrite; Won't patch; Existing file is unversioned and unmodified - hash doesn't match source file
MSI (s) (2C:E0) [08:28:52:687]: Source for file 'archivin.sfl' is compressed
InstallFiles: File: archivin.sfl, Directory: d:\Programm\Listen\, Size: 4237
MSI (s) (2C:E0) [08:28:52:687]: Re-applying security from existing file.
MSI (s) (2C:E0) [08:28:52:718]: Verifying accessibility of file: archivin.sfl
MSI (s) (2C:E0) [08:28:52:718]: Note: 1: 2318 2: d:\Programm\Listen\archivin.sfl
**Ende Protokoll*************
Laut Protokoll ist die Datei unmodified. Das stimmt so aber nicht! Ich habe aus der Datei vorher einige Zeichen entfernt. Im Anhang die Dateieigenschaften. Das modify Datum ist halt älter als das Create DAtum. Laut Windows SDK Regeln ist diese Datei aber geändert und dürfte nicht überschrieben werden.
Habe das auch mal mit Installshield 11.5 ausprobiert. Der gleiche Effekt. Das ist ja auch abhängig vom Windowsinstaller.
Grüße
Dietmar

Attached Images

  • eigenschaften.jpg


Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 02 May 2006 - 07:48

Hallo,
noch eine kleine Ergänzung:
Das steht im SDK (siehe Anhang).

Creation and Modify Dates are different ===> do not replace copy


Also sollte meine Datei doch nicht überschrieben werde?

Attached Images

  • no_Version.jpg