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

msiexec /a erstellt neues msi-File


11 replies to this topic

bernard

bernard
  • Full Members
  • 127 posts

Posted 27 October 2010 - 14:17

habe IS 2011 Professional

<mein_orig>.msi ist mit Basic MSI Projekt erstellt.
21.10.2010 12:46 12.178.944 <mein_orig>.msi
Es hat:
General Information -> INSTALLDIR = [USERPROFILE]delta

Aus einem InstallScript (ohne MSI) Projekt führe ich
msiexec /a "N:\msi_directory\<mein_orig>.msi" /L*VX "C:\Temp\<mein_orig>.log" /qn
aus.

Problem:
Es wird ein Msi-File auf N:\ ( ist FirstNetwork Laufwerk) erstellt:
27.10.2010 09:25 1.836.544 N-<mein_orig>.msi

Da sind unterschiedliche Groesse nur:
- <mein_orig>.msi hat 12.178.944 Byte
- N-<mein_orig>.msi hat 1.836.544 Byte

Aus dem
27.10.2010 09:25 246.722 <mein_orig>.log
...
MSI (s) (80:B8) [09:25:18:031]: PROPERTY CHANGE: Adding TARGETDIR property. Its value is 'N:\'.
MSI (s) (80:B8) [09:25:18:031]: PROPERTY CHANGE: Modifying SystemFolder property. Its current value is 'C:\Windows\system32\'. Its new value: 'N:\System32\'.
MSI (s) (80:B8) [09:25:18:031]: PROPERTY CHANGE: Adding USERPROFILE property. Its value is 'N:\UserProfile\'.
MSI (s) (80:B8) [09:25:18:031]: PROPERTY CHANGE: Adding DELTA property. Its value is 'N:\UserProfile\delta\'.
MSI (s) (80:B8) [09:25:18:031]: PROPERTY CHANGE: Adding INSTALLDIR property. Its value is 'N:\UserProfile\delta\'.

..
MSI (s) (80:B8) [09:25:19:531]: Executing op: DatabaseCopy(DatabasePath=N:\msi_directory\<mein_orig>.msi,,CabinetStreams=Data1.cab,AdminDestFolder=N:\,)
...
Property(S): TARGETDIR = N:\
-----------------------------
Test PC mit WinXP +SP3
- start von CD-ROM
- keine Netzwerklaufwerke

Dann werden die *.msi auf C:\ erstellt.

Wie kann man es richtig loesen?

Danke in Voraus

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 October 2010 - 18:10

Ich bin nicht sicher, ob ich dein Problem verstehe.
Beim administrativen Setup (=Entpacken der msi) wird ins TARGETDIR entpackt (nicht ins INSTALLDIR).

bernard

bernard
  • Full Members
  • 127 posts

Posted 28 October 2010 - 08:48

QUOTE
trativen Setup (=Entpacken der msi) wird ins TARGETDIR entpackt

Ist richtig.

in meinem Basic MSI Projekt gibt es:

CA -> Function Name: my_function
Admin Exec Sequence = After InstallInitialize

Dialogs -> AdminWelcome -> Next
plus neue DoAction | my_function | 1
Dialogs -> AdminNetworkLocation
NetworkLocation: -> SetupPathEdit -> Property = TARGETDIR

my_function liest Ziel-Path und setzt TARGETDIR auf Ziel-Path
Wird ins TARGETDIR entpackt.

Es wird ein Msi-File auf N:\ ( ist FirstNetwork Laufwerk) noch erstellt.

Am Ende lösche ich es abei es ist keine richtige Lösung.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 October 2010 - 10:10

Ach so, jetzt verstehe ich das Problem. Leider weiß ich nicht, woran es liegt. Vielleicht wird das TARGETDIR zu spät gesetzt? Probier doch mal, es schon auf der Kommandozeile mitzugeben um zu sehen ob es daran liegt.

bernard

bernard
  • Full Members
  • 127 posts

Posted 28 October 2010 - 10:24

QUOTE
es schon auf der Kommandozeile mitzugeben

Das Problem ist:
bei
msiexec /a
darf man keine Parameter mehr übergeben. Oder?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 October 2010 - 10:43

Darf man nicht? Wo steht das? Ich dachte, das geht.

bernard

bernard
  • Full Members
  • 127 posts

Posted 30 November 2010 - 14:48

QUOTE
Vielleicht wird das TARGETDIR zu spät gesetzt? Probier doch mal, es schon auf der Kommandozeile mitzugeben..

Habe gemacht:
1.
Dialogs -> AdminWelcome -> Behavior -> Next
DoAction | my_function | 1
- delete!
2.
CA -> Function Name: my_function
Admin Exec Sequence = After InstallInitialize
- delete!

Das Projekt hat:
General Information -> INSTALLDIR = [USERPROFILE]delta

Habe <mein_orig>.msi neu erstellt.

Test-PC:
VM -> XP HE + SP3
User: administrator

Aus einem InstallScript (ohne MSI) Projekt führe ich
msiexec.exe /a "N:\msi_directory\<mein_orig>.msi" TARGETDIR="<Ziel-Path>" UserProfile="<Ziel-Path>" INSTALLDIR="<Ziel-Path>" /L*VX "C:\Temp\<mein_orig>.log"
aus.

Problem:
1.
Wird ins "<Ziel-Path>UserProfile\delta"
nicht ins "<Ziel-Path>"
entpackt.

2.
Jetzt wird ein <Ziel-Path>\<mein_orig>.msi erstellt.
Da sind unterschiedliche Groesse nur:
- <mein_orig>.msi hat 7251 KB
- <Ziel-Path>\<mein_orig>.msi hat 1785 KB

Ist es ein Problem mit Übergaben des Parameters?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 November 2010 - 15:00

Ich denke, das delta Unterverzeichnis ist normal - die Verzeichnisstruktur wird überneommen. Das lässt sich evtl. durch Bearbeiten der Directory Tabelle anpassen.

Wenn in der Original-MSI die Appplikationsdateien eingepackt sind, so werden die beim Admin-Install entpackt und die msi-Datei dadurch kleiner.

bernard

bernard
  • Full Members
  • 127 posts

Posted 30 November 2010 - 15:58

aus dem <mein_orig>.log-File:
...
Line
mit INSTALLDIR
-33 MSI © (54:78) [14:57:52:660]: Command Line: TARGETDIR=<Ziel-Path> UserProfile=<Ziel-Path> INSTALLDIR=<Ziel-Path>
ACTION=ADMIN CURRENTDIRECTORY=N:\msi_directory CLIENTUILEVEL=0 CLIENTPROCESSID=1876
-55 MSI © (54:78) [14:57:52:707]: PROPERTY CHANGE: Adding INSTALLDIR property. Its value is '<Ziel-Path>'.
-151 MSI © (54:78) [14:57:53:113]: PROPERTY CHANGE: Modifying INSTALLDIR property. Its current value is '<Ziel-Path>'.
Its new value: '<Ziel-Path>\UserProfile\'.
-878 Property(S): INSTALLDIR = <Ziel-Path>\UserProfile\

mit USERPROFILE
-54 MSI © (54:78) [14:57:52:707]: PROPERTY CHANGE: Adding USERPROFILE property. Its value is '<Ziel-Path>'.
-150 MSI © (54:78) [14:57:53:113]: PROPERTY CHANGE: Modifying USERPROFILE property. Its current value is '<Ziel-Path>'.
Its new value: '<Ziel-Path>\UserProfile\'.
-878 Property(S): USERPROFILE = <Ziel-Path>\UserProfile\

-209 MSI © (54:78) [14:57:57:379]: Switching to server:
SECONDSEQUENCE="1"
ROOTDRIVE="N:\"
EXECUTEACTION="ADMIN"
SOURCEDIR="N:\msi_directory\"
TARGETDIR="<Ziel-Path>\"
ALLUSERSPROFILE="<Ziel-Path>\All Users\"
INSTALLDIR="<Ziel-Path>\UserProfile\"
DATABASEDIR="<Ziel-Path>\UserProfile\Database\"
USERPROFILE="<Ziel-Path>\UserProfile\"
MSI="<Ziel-Path>\UserProfile\msi\"
CLIENTPROCESSID="1876"
CLIENTUILEVEL="0"
CURRENTDIRECTORY="N:\msi_directory"
ACTION="ADMIN"
USERNAME="test5"
ADDLOCAL=xxx

Problem:
die Variablen INSTALLDIR und UserProfile sind geblieben!

bernard

bernard
  • Full Members
  • 127 posts

Posted 30 November 2010 - 16:00

Dazu noch mit Orca erstellte Directory.idt:

Directory Directory_Parent DefaultDir
--------------------------------------------------
TARGETDIR SourceDir
ALLUSERSPROFILE TARGETDIR .:ALLUSE~1|All Users
USERPROFILE TARGETDIR .:USERPR~1|UserProfile
INSTALLDIR USERPROFILE .
MSI INSTALLDIR msi
SystemFolder TARGETDIR .:System32
TempFolder TARGETDIR .:Temp


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 01 December 2010 - 12:54

Der Directory Table Eintrag:
USERPROFILE TARGETDIR .:USERPR~1|UserProfile
besagt ja, dass die Dateien in das Unterverzeichnis UserProfile rein sollen. Wenn du sie direkt ins TARGETDIR haben willst, müsste das so aussehen:
USERPROFILE TARGETDIR .:.
oder einfacher, da beides gleich ist:
USERPROFILE TARGETDIR .

Eine /a Instalaltion verwendet jeweils den Sourcename, also den Teil rechts vom Doppelpunkt.

bernard

bernard
  • Full Members
  • 127 posts

Posted 02 December 2010 - 12:41

QUOTE
Der Directory Table Eintrag:
USERPROFILE TARGETDIR .:USERPR~1|UserProfile
besagt ja, dass die Dateien in das Unterverzeichnis UserProfile rein sollen.

Danke für den Tipp.

Lösung:
statt
General Information -> INSTALLDIR = [USERPROFILE]delta
jetzt
General Information -> INSTALLDIR = {DIRPROPERTY}.

{DIRPROPERTY} kommt automatisch (?).

Mit Orca "Directory Table" sieht so aus:
Directory Directory_Parent DefaultDir
------------------------------------------
ALLUSERSPROFILE TARGETDIR .:ALLUSE~1|All Users
DIRPROPERTY1 TARGETDIR .
INSTALLDIR DIRPROPERTY1 .
SystemFolder TARGETDIR .:System32
TARGETDIR SourceDir
TempFolder TARGETDIR .:Temp
USERPROFILE TARGETDIR .:USERPR~1|UserProfile

Aus einem InstallScript (ohne MSI) Projekt führe ich
msiexec.exe /a "N:\msi_directory\<mein_orig>.msi" TARGETDIR="<Ziel-Path>" /L*VX "C:\Temp\<mein_orig>.log"
aus.

Werden alle Dateien ins <Ziel-Path> richtig ausgepackt.

QUOTE
Wenn in der Original-MSI die Appplikationsdateien eingepackt sind, so werden die beim Admin-Install entpackt und die msi-Datei dadurch kleiner.

Wird ein <Ziel-Path>\<mein_orig>.msi noch erstellt.
Aber kann ich es später löschen.