This MSI file for MSXML3:
http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052b-42ff-9674-f752bdca9582&displaylang=en
does not work. It crashes inside custom code after
MsiGetPropertyW("CustomActionData") returns the empty string due to the
property not being found. A relay trace indicates this sort of thing is
happening:
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7d418 L"Will be
installed to run from network") ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7d270
L"MenuAllLocal") ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7cfd8
L"VerdanaBold13") ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7be68
L"(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND
PROMPTROLLBACKCOST=\"F\")") ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=00000001 ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7ba40 L"{80}")
ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=00000001 ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd6b650 L"Cancel")
ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=00000001 ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd6b5e8
L"Description2") ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd69660
L"Organization") ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd695c0
L"DisableRollbackMessage") ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd68050 L"HashPart2")
ret=7fa5b975
0010:Ret kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
In other words it seems to not actually be scanning property names but
rather random strings from the stringtable. Does any MSI guru want to take
a look? I spent an hour on this and didn't get very far, maybe you guys
will have more luck ...
thanks -mike