OK. Duh. Forgot to add Impersonate="no" to the #1 custom action... Now it's good.
Brain is a little scrambled trying to come up to speed on Code Composer and finish this stuff for Windows 7. Two wildly divergent tasks... Thanks for all your help!!! -----Original Message----- From: Kurt Jensen [mailto:kurt.jen...@ophir-spiricon.com] Sent: Thursday, June 10, 2010 7:06 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] MSI vs Windows 7 UAC Thanks. I got confused and thought Impersonate="no" was the default. Good coding practice is to be explicit about key parameters, default value or not. That took care of #2 & #4. I guess we all will now have to put up with #3. #1 is the real failure and continues to fail. This looks like a serious error in the WiX handling of custom actions. I understand only a little. I know that custom actions, and any dependent assemblies, are placed in a temporary directory with the name "<custom action dll file name>=#". Apparently this mechanism is failing under UAC in Windows 7. I would guess that the directory creation and file copy are not being elevated. This will fail if "Program Files" is read only to the current user. This confuses me because the user is required to be an administrator because we are installing drivers. Also, there is a current bug where the directory is not removed after the custom action is done. Kurt -----Original Message----- From: Blair [mailto:os...@live.com] Sent: Wednesday, June 09, 2010 6:06 PM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] MSI vs Windows 7 UAC A couple of observations: Add Impersonate="no" to your CustomAction declarations. That attribute defaults to "yes". You are impersonating the installing user instead of running those CAs as SYSTEM. Normally custom actions are run from the Binary table instead of the File table, unless you also need them outside of your installation. DTF CAs require write access to the directory that the DLL is run from. For CAs run from the Binary table, Windows Installer places them in a location appropriate for the impersonation-level the CA will run at. For File table CAs, you have to ensure that. If a deferred CA is impersonating the installing user, it will lose elevation if that wasn't supplied before invoking MSI. -----Original Message----- From: Kurt Jensen [mailto:kurt.jen...@ophir-spiricon.com] Sent: Wednesday, June 09, 2010 12:30 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] MSI vs Windows 7 UAC 1) <DirectoryRef Id="APPLICATIONDIRECTORY"> <Component Id="CustomAction.Install.WiX" Guid="{5B6CBC69-4EA2-4648-A080-8D2027BAB081}"> <File Id="$(var.CustomAction.Install.WiX.TargetName)" Source="$(var.CustomAction.Install.WiX.TargetDir)$(var.CustomAction.Inst all.WiX.TargetName).CA.dll" /> </Component> </DirectoryRef> <CustomAction Id="CAInstall" FileKey="$(var.CustomAction.Install.WiX.TargetName)" DllEntry="CAInstall" Execute="commit" /> <CustomAction Id="CAUninstall" FileKey="$(var.CustomAction.Install.WiX.TargetName)" DllEntry="CAUninstall" Execute="deferred" /> <InstallExecuteSequence> <!-- Run CAInstall after InstallFiles only if the product was not installed (i.e. do not run on uninstall) --> <Custom Action="CAInstall" Before="InstallFinalize">NOT Installed</Custom> <!-- Run CAInstall after InstallFiles only if the product was installed (i.e. only run on uninstall) --> <Custom Action="CAUninstall" Before="RemoveFiles">Installed</Custom> </InstallExecuteSequence> 2) <DirectoryRef Id="PYROCAMDIRECTORY"> <Component Id="PyrocamIII" Guid="21324FF8-D573-4811-A7E8-DB9A58274EAD"> <File Source="$(var.SolutionDir)..\..\Installations\Source\Pyrocam III Device Driver 1.1.0.0\InstallII.exe" /> </Component> </DirectoryRef> <CustomAction Id="InstallII" Directory="PYROCAMDIRECTORY" ExeCommand="[PYROCAMDIRECTORY]InstallII.exe" Execute="deferred" Return="ignore" /> <InstallExecuteSequence> <Custom Action="InstallII" After="InstallFiles">NOT Installed</Custom> </InstallExecuteSequence> <InstallExecuteSequence> <Custom Action="ReenumPyrocam" After="InstallFiles">NOT Installed</Custom> </InstallExecuteSequence> 3,4) As I said, very annoying and looks unprofessional. The thought is that there is something wrong with my installation which is why Windows 7 has to ask permission. This is a cause for concern and phone calls. As a result, my supervisor and salesmen want no messages and no requests for permission. 5) "You can do all this in a plain MSI you just need to do it properly." I would if I could. Please explain. Kurt -----Original Message----- From: Pally Sandher [mailto:pally.sand...@iesve.com] Sent: Wednesday, June 09, 2010 11:40 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] MSI vs Windows 7 UAC 1 - Post the Custom Action WiX code. Could be a number of things. 2 - See 1. 3 - That's expected behaviour. Windows Installer won't request elevation until it needs to which is when the InstallExecuteSequence starts (hence anything needing elevation should be in the InstallExecuteSequence between InstallInitialize & InstallFinalize). It's never "always elevated" unless you launch your msi from an elevated process e.g. command prompt started with "Run as Administrator" or a bootstrapper which requests elevation through a manifest. If you run your MSI with basic or no UI you'll see the UAC prompt immediately since there's no InstallUISequence being run. 4 - see 1 & 2. Sounds to me like your vdproj is either scheduling stuff correctly or (more likely) is taking the easy way out & running everything always fully elevated due to a manifest in its setup.exe. You can do all this in a plain MSI you just need to do it properly. 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: Kurt Jensen [mailto:kurt.jen...@ophir-spiricon.com] Sent: 09 June 2010 17:54 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] MSI vs Windows 7 UAC P.S. I have incorporated the tools in 2-4, without any of these problems, in our current installation using Visual Studio vdproj. Surely there is some setting I am missing but have not found yet. -----Original Message----- From: Kurt Jensen [mailto:kurt.jen...@ophir-spiricon.com] Sent: Wednesday, June 09, 2010 10:23 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] MSI vs Windows 7 UAC First I need some guidance. I have several problems which all appear related to dealing with UAC on Windows 7. But they may each require separate solutions. Should I post these separately? 1) On a Windows 7 computer with the default UAC setting, my installation appears to be failing because SFXCA fails to extract my custom action to a temporary directory. The relevant messages I get in the log are: SFXCA: Extracting custom action to temporary directory: C:\Program Files\Spiricon\BeamGage Standard\CustomAction.Install.WiX.CA.dll-9\ SFXCA: Failed to extract to temporary directory. Cabinet error code 11. CustomAction CAInstall returned actual error code 1603 This message is followed immediately by Rollback messages. 2) We use a program, written many years ago, that calls CM_Reenumerate_DevNode in order to simulate Find New Hardware. Originally I thought that this program was causing the install to fail but I removed it and found the failure described above. When I tried to just run it, UAC said it needed elevated privileges. When I ran it as administrator it appeared to execute without error. But, I keep an error message in the log as if it was not being run at elevated privileges. I thought deferred custom actions, and Impersonate="no", were executed with elevated privileges. Any ideas how I can debug this? 3) When I click through the installation dialogs, I always get a UAC dialog before the actual install starts. I always thought MSI was elevated and would "just run". My MSI is not (yet) signed. Would this help? 4) I am using a third tool to install third part drivers. I run this tool three times. And three times I get a UAC dialog. This is not only annoying, it looks very unprofessional. This tool is run in a custom action. Again, I thought deferred custom actions were executed with elevated privileges. Please note that I am using WiX v3.0. TIA! Kurt Jensen Senior Software Engineer Ophir-Spiricon Ph: 435-755-5429 Cell: 435-764-2122 www.ophir-spiricon.com <http://www.ophir-spiricon.com/> kurt.jen...@ophir-spiricon.com <mailto:kenneth.fer...@ophir-spiricon.com> The True Measure of Laser Performance(tm) ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This footnote also confirms that this email message has been swept by MIMEsweeper for the presence of computer viruses. www.clearswift.com ********************************************************************** ------------------------------------------------------------------------ ------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ---- -- ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users