Jens Ertel
August 8th, 2011, 16:28
Hallo Community,
ich erstelle derzeit ein Paket für AutoCAD Architecture 2011 welches per MSI installiert werden soll.
Leider gibt es ein Problem beim installieren der Werkzeugleiste, was über die Custom Action „cp_Install.AF2EDBF1_A36C_4086_BBEA_5B33127A6B42“ passiert. Hierbei wird eine DLL mit der Funktion „ContentPackInstall“ aufgerufen, welche die notwendigen Dateien in das Userprofil kopiert. Dies muss daher für jeden User ausgeführt werden, was aber nur passiert beim Installationsuser.
Der Hauptteil der Anwendung wird Maschinenbezogen per Service vor installiert. Sobald sich der User anmeldet wird ein Repair (msiexec.exe /fup) des MSI durchgeführt um die Usersettings nachzuziehen.
!Main Product
MSIInstallProduct('.\Extern$\Msidata\ACA\ACA-Firma-for-GPO.msi','NORMAL',MsiInstMach)
|.\Extern$\Msidata\ACA-Firma.mst
params:
EndProc/TS
ExecuteEx('msiexec.exe /fup {5783F2D7-9004-0407-0102-0060B0CE6BBA} /qn','_RESULTCODE','30')/?/TU
!Language Pack German
MSIInstallProduct('.\Extern$\Msidata\ACALP\AcadLP. msi','NORMAL',MsiInstMach)
|.\Extern$\Msidata\ACA-Firma.mst
params:
EndProc/TS
ExecuteEx('msiexec.exe /fup {5783F2D7-9004-0407-1102-0060B0CE6BBA} /qn','_RESULTCODE','30')/?/TU
Leider funktioniert genau diese Reparatur nicht korrekt. Die Custom Action wird zwar an gestartet, führt dennoch keine Aktion aus. Sollte ich hingegen nicht die Reperatur starten sondern der User startet das Advertised Shortcut, wird die DLL geladen und meine Probleme sind gelöst. Dies ist aber nicht gewünscht. Sollte der User den Startmenülink anklicken soll die Anwendung bereits fertig konfiguriert sein.
Das Problem besteht sowohl bei Administratoren als auch bei Standuser.
So sieht ein korrektes MSI Logfile für die Custom Action aus:
MSI (s) (60:20) [15:36:08:355]: Executing op: ActionStart(Name=cp_Install.AF2EDBF1_A36C_4086_BBE A_5B33127A6B42,Description=Inhalt wird installiert...,Template=Datei: [1]
Verzeichnis: [2])
MSI (s) (60:20) [15:36:08:527]: Executing op: CustomActionSchedule(Action=cp_Install.AF2EDBF1_A3 6C_4086_BBEA_5B33127A6B42,ActionType=1025,Source=B inaryData,Target=ContentPackInstall,CustomActionDa ta=00000000000000000000000110010000;C:\Program Files\Autodesk\AutoCAD Architecture 2011\ContentPacks\cp_.xml)
MSI (s) (60:44) [15:36:08:590]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI37E8.tmp, Entrypoint: ContentPackInstall
cp_Install: Processing cabinet \\SERVER\ni$\Work\Master\Projects\263047\Extern$\M sidata\Content\ADT_MetricDACH\templates.cab, 35 files.
...
...
MSI (s) (60:20) [15:46:03:269]: Executing op: ActionStart(Name=DuplicateFiles,Description=Es werden doppelte Dateien erstellt...,Template=Datei: [1]
Verzeichnis: [9]
Größe: [6])
So sieht es aber aus:
MSI (s) (60:80) [15:46:20:548]: Executing op: ActionStart(Name=cp_Install.AF2EDBF1_A36C_4086_BBE A_5B33127A6B42,Description=Inhalt wird installiert...,Template=Datei: [1]
Verzeichnis: [2])
MSI (s) (60:80) [15:46:20:548]: Executing op: CustomActionSchedule(Action=cp_Install.AF2EDBF1_A3 6C_4086_BBEA_5B33127A6B42,ActionType=1025,Source=B inaryData,Target=ContentPackInstall,CustomActionDa ta=00000000000000000000010100010001;C:\Program Files\Autodesk\AutoCAD Architecture 2011\ContentPacks\cp_.xml)
MSI (s) (60:A8) [15:46:20:579]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI8AE0.tmp, Entrypoint: ContentPackInstall
MSI (s) (60:80) [15:46:20:783]: Executing op: ActionStart(Name=CreateShortcuts,Description=Es werden Verknüpfungen erstellt...,Template=Kurzbefehl: [1])
Die Custom Action wird daher ausgeführt, lediglich passiert nichts…. Nach einem Blick in das MSI per InstallShield ist auch nur eine Condition „REMOVE“ <> „ALL“ gesetzt. Bei einem Repair wird es daher ausgeführt.
1. Hat jemand das Produkt bereits installiert und das ebenfalls per MSI? Ähnliche Probleme?
2. Gibt es Möglichkeiten dieselbe Action des Advertised Shortcut per Commandline nachzustellen? Ich konnte nach dem wälzen sämtlicher MSI Unterlagen nichts finden.
Schöne Grüße
Jens
ich erstelle derzeit ein Paket für AutoCAD Architecture 2011 welches per MSI installiert werden soll.
Leider gibt es ein Problem beim installieren der Werkzeugleiste, was über die Custom Action „cp_Install.AF2EDBF1_A36C_4086_BBEA_5B33127A6B42“ passiert. Hierbei wird eine DLL mit der Funktion „ContentPackInstall“ aufgerufen, welche die notwendigen Dateien in das Userprofil kopiert. Dies muss daher für jeden User ausgeführt werden, was aber nur passiert beim Installationsuser.
Der Hauptteil der Anwendung wird Maschinenbezogen per Service vor installiert. Sobald sich der User anmeldet wird ein Repair (msiexec.exe /fup) des MSI durchgeführt um die Usersettings nachzuziehen.
!Main Product
MSIInstallProduct('.\Extern$\Msidata\ACA\ACA-Firma-for-GPO.msi','NORMAL',MsiInstMach)
|.\Extern$\Msidata\ACA-Firma.mst
params:
EndProc/TS
ExecuteEx('msiexec.exe /fup {5783F2D7-9004-0407-0102-0060B0CE6BBA} /qn','_RESULTCODE','30')/?/TU
!Language Pack German
MSIInstallProduct('.\Extern$\Msidata\ACALP\AcadLP. msi','NORMAL',MsiInstMach)
|.\Extern$\Msidata\ACA-Firma.mst
params:
EndProc/TS
ExecuteEx('msiexec.exe /fup {5783F2D7-9004-0407-1102-0060B0CE6BBA} /qn','_RESULTCODE','30')/?/TU
Leider funktioniert genau diese Reparatur nicht korrekt. Die Custom Action wird zwar an gestartet, führt dennoch keine Aktion aus. Sollte ich hingegen nicht die Reperatur starten sondern der User startet das Advertised Shortcut, wird die DLL geladen und meine Probleme sind gelöst. Dies ist aber nicht gewünscht. Sollte der User den Startmenülink anklicken soll die Anwendung bereits fertig konfiguriert sein.
Das Problem besteht sowohl bei Administratoren als auch bei Standuser.
So sieht ein korrektes MSI Logfile für die Custom Action aus:
MSI (s) (60:20) [15:36:08:355]: Executing op: ActionStart(Name=cp_Install.AF2EDBF1_A36C_4086_BBE A_5B33127A6B42,Description=Inhalt wird installiert...,Template=Datei: [1]
Verzeichnis: [2])
MSI (s) (60:20) [15:36:08:527]: Executing op: CustomActionSchedule(Action=cp_Install.AF2EDBF1_A3 6C_4086_BBEA_5B33127A6B42,ActionType=1025,Source=B inaryData,Target=ContentPackInstall,CustomActionDa ta=00000000000000000000000110010000;C:\Program Files\Autodesk\AutoCAD Architecture 2011\ContentPacks\cp_.xml)
MSI (s) (60:44) [15:36:08:590]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI37E8.tmp, Entrypoint: ContentPackInstall
cp_Install: Processing cabinet \\SERVER\ni$\Work\Master\Projects\263047\Extern$\M sidata\Content\ADT_MetricDACH\templates.cab, 35 files.
...
...
MSI (s) (60:20) [15:46:03:269]: Executing op: ActionStart(Name=DuplicateFiles,Description=Es werden doppelte Dateien erstellt...,Template=Datei: [1]
Verzeichnis: [9]
Größe: [6])
So sieht es aber aus:
MSI (s) (60:80) [15:46:20:548]: Executing op: ActionStart(Name=cp_Install.AF2EDBF1_A36C_4086_BBE A_5B33127A6B42,Description=Inhalt wird installiert...,Template=Datei: [1]
Verzeichnis: [2])
MSI (s) (60:80) [15:46:20:548]: Executing op: CustomActionSchedule(Action=cp_Install.AF2EDBF1_A3 6C_4086_BBEA_5B33127A6B42,ActionType=1025,Source=B inaryData,Target=ContentPackInstall,CustomActionDa ta=00000000000000000000010100010001;C:\Program Files\Autodesk\AutoCAD Architecture 2011\ContentPacks\cp_.xml)
MSI (s) (60:A8) [15:46:20:579]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI8AE0.tmp, Entrypoint: ContentPackInstall
MSI (s) (60:80) [15:46:20:783]: Executing op: ActionStart(Name=CreateShortcuts,Description=Es werden Verknüpfungen erstellt...,Template=Kurzbefehl: [1])
Die Custom Action wird daher ausgeführt, lediglich passiert nichts…. Nach einem Blick in das MSI per InstallShield ist auch nur eine Condition „REMOVE“ <> „ALL“ gesetzt. Bei einem Repair wird es daher ausgeführt.
1. Hat jemand das Produkt bereits installiert und das ebenfalls per MSI? Ähnliche Probleme?
2. Gibt es Möglichkeiten dieselbe Action des Advertised Shortcut per Commandline nachzustellen? Ich konnte nach dem wälzen sämtlicher MSI Unterlagen nichts finden.
Schöne Grüße
Jens