This MSI file for MSXML3:
http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052b-42ff-...
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