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

Components und Reports


11 replies to this topic

bernard

bernard
  • Full Members
  • 127 posts

Posted 20 July 2005 - 11:12

Habe InstallScript MSI Project (gleiche ist im Basic_MSI)
IS DevSt 9.0 + SP1 eng

In der Components (bei Dynamic File Linking) hat das File2 die Version 4.1.0.39
Erstes File1 in der Liste hat die Version 3.1.0.28

In Reports hat File1 statt 4.1.0.39 die Version des Files2 3.1.0.28 ???
Es übernimmt die Version des ersten Files1 !!!

Target File hat Version 4.1.0.14
Danach funktioniert Update nicht.

brauche dringend Hilfe

Edited by bernard, 20 July 2005 - 14:31.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 20 July 2005 - 16:44

Ich sehe den Zusammenhang zwischen einem Build-Report und einem Update-Problem nicht.

bernard

bernard
  • Full Members
  • 127 posts

Posted 21 July 2005 - 14:25

Vielen Dank für die Antwort.

Das Problem bleibt noch.
Mein Beispiel:
Source File dlttmdba.dll hat Datei- und Produkt-version 4.1.1.1 (vom 30.06.05),
Target File (nach IS 6.31 Installation) hat Produktversion 4.1.0.0 (vom 28.04.05)

Components -> Newer Overwrite=No

Starte Build

Vom .\Reports\<xx>.htm:
dlttmdba.dll
{_0F99A41802064A958BC30225AC16E5FB} [ProgramFilesFolder]COMMON
_A7C95281E17245EDA4663762D8ACD0DC
30.06.2005 09:59:14
253952
4.0.0.0

Starte setup.exe mit setup.ini.
== setup.ini ==
[Startup]
CmdLine=REINSTALL=ALL REINSTALLMODE=emus /LIMEARV c:\temp\jb_log.txt

=== vom jb_log.txt ===
....
MSI (s) (58:AC): Executing op: FileCopy(SourceName=dlttmdba.dll,SourceCabKey=_4F859239A8CD4280BB1BE86565507D62,DestName=dlttmdba.dll,Attributes=8192,FileSize=253952,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,Version=4.0.0.0,Language=2057,InstallMode=5924
4544,,,,,,)
MSI (s) (58:AC): File: C:\DELTA SHAR\COMMON\dlttmdba.dll; Won't Overwrite; No patch; Existing file has a newer version

Altes File dlttmdba.dll wird nicht überschrieben.

Andere Ideen?

Edited by bernard, 21 July 2005 - 14:26.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 22 July 2005 - 11:07

QUOTE
Source File dlttmdba.dll hat Datei- und Produkt-version 4.1.1.1 (vom 30.06.05),
Target File (nach IS 6.31 Installation) hat Produktversion 4.1.0.0 (vom 28.04.05)

Entscheidend ist die Datei-Version, nicht die Produktversion, die ebenfalls in der Versionsinfo der Datei abgelegt sein kann.

bernard

bernard
  • Full Members
  • 127 posts

Posted 22 July 2005 - 13:51

Test PC hat BS Windows 2000 (SP1).
Eigenschaften zeigt es nur die Produktversion!



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 22 July 2005 - 14:32

Ich hab gerade kein 2000 zur Hand, aber wie auch immer: entscheidend isr die Datei-Version, nicht die Produkt-Version. Auch auf Windows 2000.

bernard

bernard
  • Full Members
  • 127 posts

Posted 22 July 2005 - 14:44

Fehler von mir: sicher hat das File die Dateiversion und Eigenschaften zeigt sie.

Habe die Files meiner Components statt "Dynamic File Linking" als "Add..." definiert.

vom .\Reports\<xx>.htm
dlttmdba.dll
{COMMON} [ProgramFilesFolder]common
common_basis
30.06.2005 09:59:14
253952
4.1.1.1

=== vom jb_log.txt ===
...
MSI (s) (E0:14): Executing op: FileCopy(SourceName=dlttmdba.dll,SourceCabKey=dlttmdba.dll,DestName=dlttmdba.dll,Attributes=8192,FileSize=253952,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,Version=4.1.1.1,Language=2057,InstallMode=59244544,,,,,,)
MSI (s) (E0:14): File: C:\DELTA SHAR\common\dlttmdba.dll; Overwrite; No patch; Existing file is a lower version
MSI (s) (E0:14): Source for file 'dlttmdba.dll' is uncompressed, at '\\Jb\D_JB\IS_DevStudio9\Delta_Prod_Shared_MSI\Product Configuration 1\210705\DiskImages\DISK1\program files\common\'.
InstallFiles: File: dlttmdba.dll, Directory: C:\DELTA SHAR\common\, Size: 253952
MSI (s) (E0:14): Re-applying security from existing file.
MSI (s) (E0:14): Verifying accessibility of file: dlttmdba.dll
MSI (s) (E0:14): Note: 1: 2318 2: C:\DELTA SHAR\common\dlttmdba.dll
MSI (s) (E0:14): File will have security applied from OpCode.

Jetzt wird altes File dlttmdba.dll überschrieben!

Ist es die Lösung?


bernard

bernard
  • Full Members
  • 127 posts

Posted 14 November 2006 - 15:26

Habe InstallScript MSI Project (mit neuen GUID)
IS DevSt 9.0 + SP1 eng

Am Test-PC gibt es alte Installation von IS6.3 im Verzeichnis "C:\DELTA shared".

Alle Components mit Dynamic File Linking erstellt.
Never Overwrite = No
COM Extract at Build = No
z.B.
Verzeichnis von <Source_Verzeichnis>\Basis\COMMON
Dateiversion
File1 23.03.2006 08:27 995 DltBat.pif -
File2 18.07.2006 11:47 102.400 dltngesct.dll 1.0.0.20
File3 12.07.2006 10:20 114.688 DLTPER01.dll 4.2.0.0
File4 12.07.2006 10:20 20.480 DltPer32.exe 4.2.0.0
....

Nach dem Build im .\Reports\<Datum+Zeit>.htm
...
Files

File
Destination
Component
Last Modified
Size (bytes)
Version

dltngesct.dll
{_D1FE343B1C9E41B5986F7593B46F958E} [ProgramFilesFolder]COMMON
_F8D848D3C226AB968575CDBFFB07225F
18.07.2006 11:47:40
102400
1.0.0.20

DLTPER01.dll
{_D1FE343B1C9E41B5986F7593B46F958E} [ProgramFilesFolder]COMMON
_F8D848D3C226AB968575CDBFFB07225F
12.07.2006 10:20:12
114688
1.0.0.20

DltPer32.exe
{_D1FE343B1C9E41B5986F7593B46F958E} [ProgramFilesFolder]COMMON
_F8D848D3C226AB968575CDBFFB07225F
12.07.2006 10:20:12
20480
1.0.0.20
...

In Reports hat File3 statt Version 4.2.0.0 die Version des File2 1.0.0.20 ?
In Reports hat File4 statt Version 4.2.0.0 die Version des File2 1.0.0.20 ?

Es übernimmt die Version des ersten File2 in Subverzeichnis !?

Target File z.B. DLTPER01.dll hat Version 4.1.0.14

In setup.ini
CmdLine=REINSTALLMODE=vomus /L*V "%TEMP%\jb_log.txt"

Danach wird ins alten Verzeichnis "C:\DELTA shared" installiert.
In log-File:
...
MSI (s) (B0:CC) [11:49:19:421]: Executing op: ComponentRegister(ComponentId={F8D848D3-3C22-6AB9-6857-5CDBFFB07225},KeyPath=C:\DELTA shared\COMMON\DLTPER01.dll,State=3,,Disk=1,SharedDllRefCount=2,BinaryType=0)
...
Es gibt nur eine Zeile mit diesem File DLTPER01.dll.
Die alte Dateien sind geblieben.

brauche dringend Hilfe

bernard


bernard

bernard
  • Full Members
  • 127 posts

Posted 15 November 2006 - 12:19

In InstallSite Forum -> GERMAN : Windows Installer (MSI) -> InstallShield MSI Themen -> InstallShield "InstallScript MSI" Projekte
habe ich gefunden:
"2002-10-31 Unterverzeichnisse bei Komponenten"

Am 2002-11-04 hat Stefan Krüger geantwortet:
QUOTE
Alle Dateien in einer Komponente werden ins gleiche Verzeichnis kopiert.
So hat Microsoft den Windows Installer definiert.
Meistens sind in einer Komponente auch nur wenige Dateien
(man sollte nur 1 EXE oder DLL pro Komponente verwenden).


Gibt es ein Tool von InstallShield, mit welchem kann man
die Dateien updaten, wie im IS6.31?

Habe mit IS12 Prof probiert. Keine richtige Lösung für Update
alter Installation.

Mein InstallScript MSI Projekt hat 3.368 Dateien in 165 Ordner!

bernard


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 November 2006 - 13:10

Hallo Bernhard,

vielleicht stehe ich wieder auf der Leitung aber wenn ich es richtig verstehe hast du eine alte InstallShield Professional (also InstallScript) Instalaltion die du mit einer InstallScript-MSI Installaltion updaten willst. Das wird so nicht direkt unterstützt, dein InstalLScript MSI Projekt weiss eigentlich nichts von den alten Setup, es sieht nur dass die Dateien da sind, aber nicht woher.

Ich denke, der saubere Weg wäre, die alte Installation zu deinstallieren, z.B. indem du den UninstallString aus der regsitry ausliest und ausführst (evtl. ohne den Umweg über rundll.exe und ctor.dll).

Außerdem scheint es so zu sein, dass durch die dynamische Verlinkung die Dateiversionen falsch ins msi eingetragen werden? Das sollte normalerweise nicht passieren. Im Log müsste dann was drin stehen, dass er die Datei nicht überschreibt weil eine neuere Version schon vorhanden ist. Ausserdem prüft er nur jeweils die Schlüsseldatei einer Komponente (wenn keine markiert ist nur das Vorhandensein des Verzeichnisses), du solltest deine Dateien also in Komponenten aufteilen und als Schlüsseldatei setzen. Es gibt ein Tool das Komponenten automatisch erzeugen kann: "Create Components from the Command Line" unter http://www.installsi.../en/msi/isd.htm . Su müsstest halt probieren ob die Version für Developer 8 auch mit deiner Version funktioniert.

Zum Schluss noch mein Standard-Hinweis: Der Prijekttyp InstallScript-MSI ist im allgemeinen nicht zu empfehlen, er bringt allerlei Probleme mit sich. Ich empfehle stattdessen Basic MSI.

bernard

bernard
  • Full Members
  • 127 posts

Posted 20 November 2006 - 11:30

Viele Dank Stefan für die Antwort!

QUOTE
... dass durch die dynamische Verlinkung die Dateiversionen falsch ins msi eingetragen werden?
Das sollte normalerweise nicht passieren.


Ich investierte viel Zeit ins InstallScript MSI Projekt.
Mein Problem (seh Posted vom 2006-11-14 15:26) blieb!

Ich möchte das Projekt zuerst zu Ende bringen.
In Basic MSI Projekt sind keine Möglichkeiten was man mit den Scripten machen kann. Oder?

Wie kann ich mein Problem lösen.

Danke in voraus

bernard


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 21 November 2006 - 08:19

QUOTE
In Basic MSI Projekt sind keine Möglichkeiten was man mit den Scripten machen kann. Oder?
Man kann InstallScript in Benutzerdefinierten Aktionen aufrufen.

QUOTE
Wie kann ich mein Problem lösen.
Indem du die Ursache analysierst. Dazu habe ich in meinen Post vom 15.11. ein paar Hinweise gegeben bzw. Fragen gestellt. Hast du meine Vorschläge ausprobiert?