
msiexec /a erstellt neues msi-File
Posted 27 October 2010 - 14:17
<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
Posted 27 October 2010 - 18:10
Beim administrativen Setup (=Entpacken der msi) wird ins TARGETDIR entpackt (nicht ins INSTALLDIR).
Stefan Krüger
InstallSite.org twitter facebook
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.
Posted 28 October 2010 - 10:10
Stefan Krüger
InstallSite.org twitter facebook
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?
Posted 28 October 2010 - 10:43
Stefan Krüger
InstallSite.org twitter facebook
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?
Posted 30 November 2010 - 15:00
Wenn in der Original-MSI die Appplikationsdateien eingepackt sind, so werden die beim Admin-Install entpackt und die msi-Datei dadurch kleiner.
Stefan Krüger
InstallSite.org twitter facebook
Posted 30 November 2010 - 15:58
...
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!
Posted 30 November 2010 - 16:00
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
Posted 01 December 2010 - 12:54
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.
Stefan Krüger
InstallSite.org twitter facebook
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.