fdo#43989 let unopkg.exe run with elevated privileges during install

... so it can do the pre-registration of bundled extensions in
INSTALLLOCATION/share/prereg/bundle.
The meaning of Type of custom action is the following:
msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData +
msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate +
msidbCustomActionTypeCommit = 3585
So it is a binary in a dll from the MSI itself, it runs deferred
with system privileges and after commit, because msvcrt90.dll is
available only after commit. The same type was chosen for the
removing part, it works.

Change-Id: I14c347b5cbc47789eb0484769a676703361c2193
This commit is contained in:
Andras Timar
2012-06-05 16:57:53 +02:00
parent 0665c3e52b
commit 8783ead70c

View File

@@ -178,21 +178,21 @@ End
WindowsCustomAction gid_Customaction_Register_Extensions
Name = "RegisterExtensions";
Typ = "1";
Typ = "3585";
Source = "shlxtmsi.dll";
Target = "RegisterExtensions";
Inbinarytable = 1;
Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "behind_InstallFinalize");
Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "behind_InstallFinalize");
Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "InstallFinalize");
Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "InstallFinalize");
End
WindowsCustomAction gid_Customaction_Remove_Extensions
Name = "RemoveExtensions";
Typ = "65";
Typ = "3585";
Source = "shlxtmsi.dll";
Target = "RemoveExtensions";
Inbinarytable = 1;
Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" And Not PATCH", "FileCost");
Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" And Not PATCH", "InstallFinalize");
End
WindowsCustomAction gid_Customaction_Set_Admininstall