[Bug 26925] Windows Installer creates Game Explorer shortcuts in the wrong place
wine-bugs at winehq.org
wine-bugs at winehq.org
Mon Apr 25 11:40:11 CDT 2011
http://bugs.winehq.org/show_bug.cgi?id=26925
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |download, Installer
CC| |focht at gmx.net
Component|-unknown |msi
--- Comment #2 from Anastasius Focht <focht at gmx.net> 2011-04-25 11:40:11 CDT ---
Hello,
it seems some target folders/properties (resolved by costing) are not
recalculated during processing of InstallExecuteSequence table when previous
run of InstallUISequence already set them.
1. InstallUISequence -> costing -> resolves folders to default values
2. InstallExecuteSequence -> costing -> uses already resolved
folders/properties if present
The problem is there is a custom action run in InstallExecuteSequence before
costing that (re)sets property (parent folder) for other costing related
properties.
This change is not taken into account, leaving folders resolved to their
initial values.
I downloaded the demo and extracted relevant part of trace log.
InstallUISequence -> first costing run:
--- snip ---
...
002f:trace:msi:ITERATE_CostFinalizeDirectories directory
L"WixPlayTask0_Application" ...
002f:trace:msi:resolve_target_folder working to resolve
L"WixPlayTask0_Application"
...
002f:trace:msi:msi_get_property property L"WixPlayTask0_Application" not found
002f:trace:msi:resolve_target_folder ! parent is
L"WixPlayTasksRoot_Application"
002f:trace:msi:resolve_target_folder working to resolve
L"WixPlayTasksRoot_Application"
002f:trace:msi:resolve_target_folder already resolved to L"C:\\"
002f:trace:msi:resolve_target_folder TargetDefault = L"0"
002f:trace:msi:resolve_target_folder -> L"C:\\0\\"
002f:trace:msi:msi_set_property 0x131248 L"WixPlayTask0_Application" L"C:\\0\\"
...
--- snip ---
The custom action that changes the parent folder:
--- snip ---
002f:trace:msi:ACTION_PerformUIAction Performing action
(L"WixPlayTasksRoot_Application")
...
002f:trace:msi:ACTION_CustomAction Handling custom action
L"WixPlayTasksRoot_Application" (33 L"WixPlayTasksRoot_Application"
L"[CommonAppDataFolder]Microsoft\\Windows\\GameExplorer\\{BB112F90-7C81-4352-8823-861D3957CF8A}\\PlayTasks\\")
...
--- snip ---
InstallExecuteSequence -> second costing run:
--- snip ---
002f:trace:msi:ITERATE_CostFinalizeDirectories directory
L"WixPlayTasksRoot_Application" ...
002f:trace:msi:resolve_target_folder working to resolve
L"WixPlayTasksRoot_Application"
...
002f:trace:msi:msi_get_property returning L"C:\\users\\Public\\Application
Data\\Microsoft\\Windows\\GameExplorer\\{BB112F90-7C81-4352-8823-861D3957CF8A}\\PlayTasks\\"
for property L"WixPlayTasksRoot_Application"
002f:trace:msi:resolve_target_folder property set to
L"C:\\users\\Public\\Application
Data\\Microsoft\\Windows\\GameExplorer\\{BB112F90-7C81-4352-8823-861D3957CF8A}\\PlayTasks\\"
002f:trace:msi:ITERATE_CostFinalizeDirectories resolves to
L"C:\\users\\Public\\Application
Data\\Microsoft\\Windows\\GameExplorer\\{BB112F90-7C81-4352-8823-861D3957CF8A}\\PlayTasks\\"
...
002f:trace:msi:ITERATE_CostFinalizeDirectories directory
L"WixPlayTask0_Application" ...
002f:trace:msi:resolve_target_folder working to resolve
L"WixPlayTask0_Application"
...
002f:trace:msi:msi_get_property returning L"C:\\0\\" for property
L"WixPlayTask0_Application"
002f:trace:msi:resolve_target_folder property set to L"C:\\0\\"
002f:trace:msi:ITERATE_CostFinalizeDirectories resolves to L"C:\\0\\"
...
002f:trace:msi:MSI_ProcessMessage (nil) (nil) (nil) 0 200 L"Shortcut:
WixPlayTask0_Application"
002f:trace:msi:ControlEvent_FireSubscribedEvent Firing Event L"ActionData"
002f:trace:msi:msiobj_release object 0x1227680 destroyed
002f:trace:msi:MSI_FormatRecordW 0x1481a8 0x12277f0 (nil) 0x32f7c8
002f:trace:msi:MSI_FormatRecordW (L"[#Dungeons.exe]")
002f:trace:msi:MSI_FormatRecordW 0x1481a8 0x12277f0 0x1227df0 0x32f7c8
002f:trace:msi:MSI_FormatRecordW (L"[#Dungeons.exe]")
002f:trace:msi:msiobj_release object 0x12277f0 destroyed
002f:trace:msi:resolve_target_folder working to resolve L"APPLICATIONFOLDER"
002f:trace:msi:resolve_target_folder already resolved to L"C:\\Program
Files\\Kalypso Media\\Dungeons Demo"
002f:trace:msi:resolve_target_folder working to resolve
L"WixPlayTask0_Application"
002f:trace:msi:resolve_target_folder already resolved to L"C:\\0\\"
002f:trace:msi:ITERATE_CreateShortcuts Writing shortcut to L"C:\\0\\Play.lnk"
--- snip ---
Parts of "Directory" table, exported in orca:
--- snip ---
Directory Directory_Parent DefaultDir
s72 S72 l255
WixPlayTasksRoot_Application TARGETDIR .
...
WixPlayTask0_Application WixPlayTasksRoot_Application 0
--- snip ---
Parts of "Shortcut" table, exported in orca:
--- snip ---
Shortcut Directory_ Name Component_ Target Arguments
Description Hotkey Icon_ IconIndex ShowCmd WkDir
DisplayResourceDLL DisplayResourceId DescriptionResourceDLL
DescriptionResourceId
s72 s72 l128 s72 s72 S255 L255 I2 S72 I2 I2
S72 S255 I2 S255 I2
WixPlayTask0_Application WixPlayTask0_Application 1yab2vy1.pla|Play
Application [#Dungeons.exe] APPLICATIONFOLDER
WixPlayTask1_Application WixPlayTask1_Application kvubp0qn.pla|Continue
Playing Application [#Dungeons.exe] -continue
APPLICATIONFOLDER
--- snip ---
Parts of "Custom action" table, exported in orca:
--- snip ---
WixPlayTasksRoot_Application 51 WixPlayTasksRoot_Application
[CommonAppDataFolder]Microsoft\Windows\GameExplorer\{BB112F90-7C81-4352-8823-861D3957CF8A}\PlayTasks\
--- snip ---
Parts of "InstallUISequence" table, exported in orca:
--- snip ---
Action Condition Sequence
s72 S255 I2
CostInitialize 800
...
CostFinalize 1000
--- snip ---
Parts of "InstallExecuteSequence" table, exported in orca (see custom action
before costing finalize):
--- snip ---
Action Condition Sequence
s72 S255 I2
CostInitialize 800
..
WixPlayTasksRoot_Application 994
..
CostFinalize 1000
..
CreateShortcuts 4500
--- snip ---
You can work around the bug by running the installer in "silent" mode, e.g:
$> wine msiexec -i dungeons_demo_int.msi /quiet
This forces msi to not process InstallUISequence table so costing will be done
once (in InstallExecuteSequence) which resolves the target folder for
shortcuts.
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list