I solved it. Damn, I wish the MSI log would be more detailed! It's a classic mistake! For those interested, read on :)
I have stripped WixUIExtension.dll down to a tiny DLL with only two exported APIs: "PrintEula" and "ValidatePath". Hence, a very simple custom action - used by WIX. It worked like a charm until I switched from VS 2008 to VS 2010. Then it started complaining on clean machines. I should have seen this earlier... PrintEula.dll was compiled with "MultiThreaded DLL" option set. In VS 2010 this means it links to MSVCR100.DLL dynamically. Now, this file is pretty new, so none of the Windows versions are shipped with it. Hence, when the custom action is about to load - it fails. Changing the option to "MultiThreaded" removes the dependency, and we're ready to fly again! The rule of thumb is to never link to DLLs in custom action DLLs, unless you are dead sure that they are present in the system. Thanks for your time. > From: kristoffer.daniels...@live.se > To: wix-users@lists.sourceforge.net > Date: Fri, 14 May 2010 11:49:14 +0200 > Subject: Re: [WiX-users] PrintEula.ValidatePath fails under VMWare! > > > Below you see the MSI log when run on Windows 7. As you can see, > WIXUI_INSTALLDIR_VALID is indeed set. > > > > Action 11:43:33: WixUIValidatePath. > Action start 11:43:33: WixUIValidatePath. > MSI (c) (E8:98) [11:43:33:098]: Creating MSIHANDLE (1) of type 790542 for > thread 5784 > MSI (c) (E8:A0) [11:43:33:100]: Invoking remote custom action. DLL: > C:\Users\KRISTO~1\AppData\Local\Temp\MSI840E.tmp, Entrypoint: ValidatePath > MSI (c) (E8:FC) [11:43:33:198]: Cloaking enabled. > MSI (c) (E8:FC) [11:43:33:198]: Attempting to enable all disabled privileges > before calling Install on Server > MSI (c) (E8:FC) [11:43:33:198]: Connected to service for CA interface. > MSI (c) (E8!54) [11:43:33:393]: Creating MSIHANDLE (2) of type 790541 for > thread 3668 > MSI (c) (E8!54) [11:43:33:395]: PROPERTY CHANGE: Adding > WIXUI_INSTALLDIR_VALID property. Its value is '1'. > MSI (c) (E8!54) [11:43:33:395]: Closing MSIHANDLE (2) of type 790541 for > thread 3668 > MSI (c) (E8:A0) [11:43:33:403]: Closing MSIHANDLE (1) of type 790542 for > thread 5784 > Action ended 11:43:33: WixUIValidatePath. Return value 1. > > > > > > Vista x64 Home Premium SP2, running under VMWare. WIXUI_INSTALLDIR_VALID is > never assigned a value! > > > > Action 11:05:20: WixUIValidatePath. > Action start 11:05:20: WixUIValidatePath. > MSI (c) (A4:AC) [11:05:20:208]: Creating MSIHANDLE (1) of type 790542 for > thread 2220 > MSI (c) (A4:1C) [11:05:20:208]: Invoking remote custom action. DLL: > C:\Users\KRISTO~1\AppData\Local\Temp\MSIA552.tmp, Entrypoint: ValidatePath > MSI (c) (A4:7C) [11:05:20:208]: Cloaking enabled. > MSI (c) (A4:7C) [11:05:20:208]: Attempting to enable all disabled privileges > before calling Install on Server > MSI (c) (A4:7C) [11:05:20:208]: Connected to service for CA interface. > MSI (c) (A4:1C) [11:05:20:365]: Closing MSIHANDLE (1) of type 790542 for > thread 2220 > Action ended 11:05:20: WixUIValidatePath. Return value 1. > Action 11:05:20: InvalidDirDlg. Dialog created > > > > > > Any ideas? Any help is greatly appreciated! This is becoming a major issue :( > > > > > > > > > From: kristoffer.daniels...@live.se > > To: wix-users@lists.sourceforge.net > > Date: Fri, 14 May 2010 11:26:28 +0200 > > Subject: Re: [WiX-users] PrintEula.ValidatePath fails under VMWare! > > > > > > Printer spooler is running, and XPS document printer is installed (e.g. it > > is accessible via Notepad -> Print). > > > > > > > > I did notice that this line is NEVER printed in the log when path > > validation should occur: > > > > PROPERTY CHANGE: Adding WIXUI_INSTALLDIR_VALID property. Its value is '1'. > > <-- never seen! > > > > PROPERTY CHANGE: Adding WIXUI_INSTALLDIR_VALID property. Its value is '0'. > > <-- never seen! > > > > > > > > Is it possible that the custom action is not being called for some reason? > > > > > Date: Fri, 14 May 2010 10:22:22 +0100 > > > From: pally.sand...@iesve.com > > > To: wix-users@lists.sourceforge.net > > > Subject: Re: [WiX-users] PrintEula.ValidatePath fails under VMWare! > > > > > > Does your VM have any Printers installed & is the Spooler service running? > > > > > > It works fine for us using WiX v3.0 build packages on XP 32-bit, XP > > > 64-bit, Vista 64-bit & Windows 7 64-bit. I have a VMWare ESXi server > > > setup with version 7 virtual machines for my own & QA's testing purposes. > > > > > > Palbinder Sandher > > > Software Deployment & IT Administrator > > > T: +44 (0) 141 945 8500 > > > F: +44 (0) 141 945 8501 > > > > > > http://www.iesve.com > > > **Design, Simulate + Innovate with the <Virtual Environment>** > > > Integrated Environmental Solutions Limited. Registered in Scotland No. > > > SC151456 > > > Registered Office - Helix Building, West Of Scotland Science Park, > > > Glasgow G20 0SP > > > Email Disclaimer > > > > > > -----Original Message----- > > > From: Kristoffer Danielsson [mailto:kristoffer.daniels...@live.se] > > > Sent: 14 May 2010 00:13 > > > To: wix-users@lists.sourceforge.net > > > Subject: Re: [WiX-users] PrintEula.ValidatePath fails under VMWare! > > > > > > > > > Hmm... it seems the PrintEula.dll functions are not called at all under > > > this virtualized Vista x64! If I hit the "Print" button in the EULA > > > dialog, the cursor blinks and then nothing! Still, I'm just guessing > > > here... > > > > > > > > > > > > The log: > > > > > > > > > > > > Doing action: WixUIPrintEula > > > > > > ... > > > > > > Invoke remote custom action. DLL: ... > > > > > > MyUIPrintEula. Return value 1. > > > > > > > > > This is so weird! It works on my host W7 machine. > > > > > > > > > > From: kristoffer.daniels...@live.se > > > > To: wix-users@lists.sourceforge.net > > > > Date: Fri, 14 May 2010 00:18:51 +0200 > > > > Subject: Re: [WiX-users] PrintEula.ValidatePath fails under VMWare! > > > > > > > > > > > > No, the error lies in WiX! > > > > > > > > > > > > > > > > Google only gives you a couple of hits - implying that this error does > > > > not come from some Microsoft component. > > > > > > > > > > > > > > > > >From WixUI_en-us.wxl: > > > > > > > > <String Id="InvalidDirDlgText" Overridable="yes">Installation > > > > directory must be on a local hard drive.</String> > > > > > > > > > > > > > > > > Also tried this: > > > > > > > > msiexec /i MySetup.msi WIXUI_DONTVALIDATEPATH="1" > > > > > > > > > > > > > > > > That worked! Hence, the path validation is buggy! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > From: kristoffer.daniels...@live.se > > > > > To: wix-users@lists.sourceforge.net > > > > > Date: Fri, 14 May 2010 00:09:29 +0200 > > > > > Subject: Re: [WiX-users] PrintEula.ValidatePath fails under VMWare! > > > > > > > > > > > > > > > I modified PrintEula.dll to not use the PathIs* APIs, but it kept > > > > > failing. In the Wix sources I can see the following: > > > > > > > > > > > > > > > > > > > > <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" > > > > > Value="WixUIValidatePath" Order="3">1</Publish> > > > > > > > > > > <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" > > > > > Value="InvalidDirDlg" > > > > > Order="4"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> > > > > > > > > > > > > > > > > > > > > No matter what's causing it, it has disastrous implications. Not > > > > > being able to install my software on virtual machines is simply not > > > > > an option :(. > > > > > > > > > > > > > > > > > > > > > Date: Thu, 13 May 2010 15:01:32 -0700 > > > > > > From: chad.peter...@harlandfs.com > > > > > > To: wix-users@lists.sourceforge.net > > > > > > Subject: Re: [WiX-users] PrintEula.ValidatePath fails under VMWare! > > > > > > > > > > > > If you Google that error it seems select people hit it even on real > > > > > > physical boxes, under other flavors of Windows (98, XP), too. > > > > > > Windows misreporting the drive type if I had to guess. Probably > > > > > > nothing wrong with your authoring. I'm not seeing any definitive > > > > > > solutions out there. > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > From: Kristoffer Danielsson [mailto:kristoffer.daniels...@live.se] > > > > > > Sent: Thursday, May 13, 2010 2:33 PM > > > > > > To: wix-users@lists.sourceforge.net > > > > > > Subject: [WiX-users] PrintEula.ValidatePath fails under VMWare! > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > > > > Using Wix 3.5. > > > > > > > > > > > > > > > > > > > > > > > > Tried my new MSI under Vista Home Premium, emulated under VMWare 7. > > > > > > It gives me this obscure error when I hit "Next" in the > > > > > > "Destination Folder"-dialog (simple WIX UI): > > > > > > > > > > > > > > > > > > "Installation directory must be on local hard drive." > > > > > > > > > > > > > > > > > > Reading the logs: > > > > > > > > > > > > > > > > > > > > > > > > Doing action: WixUIValidatePath > > > > > > > > > > > > ... > > > > > > > > > > > > Action ended ... WixUIValidatePath. Return value 1. > > > > > > > > > > > > InvalidDirDlg. Dialog created > > > > > > > > > > > > _________________________________________________________________ > > > > > > Vårfina smileys till Messenger här! > > > > > > http://springpack.msn.se > > > > > > ------------------------------------------------------------------ > > > > > > ------------ > > > > > > > > > > > > _______________________________________________ > > > > > > WiX-users mailing list > > > > > > WiX-users@lists.sourceforge.net > > > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------ > > > > > > ------------ > > > > > > > > > > > > _______________________________________________ > > > > > > WiX-users mailing list > > > > > > WiX-users@lists.sourceforge.net > > > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > _________________________________________________________________ > > > > > Dela kalender. Se möjligheterna med Hotmail! > > > > > http://www.microsoft.com/sverige/windows/windowslive/thenewbusy.aspx > > > > > -------------------------------------------------------------------- > > > > > ---------- > > > > > > > > > > _______________________________________________ > > > > > WiX-users mailing list > > > > > WiX-users@lists.sourceforge.net > > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > _________________________________________________________________ > > > > Hotmail i mobilen på 5 sekunder! > > > > http://new.windowslivemobile.msn.com/SE-SE/windows-live-hotmail/defaul > > > > t.aspx > > > > ---------------------------------------------------------------------- > > > > -------- > > > > > > > > _______________________________________________ > > > > WiX-users mailing list > > > > WiX-users@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > _________________________________________________________________ > > > Hotmail i mobilen på 5 sekunder! > > > http://new.windowslivemobile.msn.com/SE-SE/windows-live-hotmail/default.aspx > > > ------------------------------------------------------------------------------ > > > > > > _______________________________________________ > > > WiX-users mailing list > > > WiX-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > ------------------------------------------------------------------------------ > > > > > > _______________________________________________ > > > WiX-users mailing list > > > WiX-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > _________________________________________________________________ > > Hotmail i mobilen på 5 sekunder! > > http://new.windowslivemobile.msn.com/SE-SE/windows-live-hotmail/default.aspx > > ------------------------------------------------------------------------------ > > > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > _________________________________________________________________ > Vårfina smileys till Messenger här! > http://springpack.msn.se > ------------------------------------------------------------------------------ > > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users _________________________________________________________________ Vårfina smileys till Messenger här! http://springpack.msn.se ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users