[wix-users] Registry search weirdness
John Naylor
mejohnnaylor at mac.com
Mon Jul 4 20:11:52 PDT 2016
Hi Sampat - thanks for responding so quickly.
I’m running 64bit Windows 10, so I presume that the PS interactive shell, in which the script works well, is 64 bit also.
I’m creating a Windows Installer Package with burn for some library files, candle for my sources, & light to link the lot together. I don’t know how to tell whether the MSI is 32 or 64 bit. I’ll read the docs after hitting <send>
The custom action is deferred, not immediate
Here’s the code snippet I’m using to invoke the CA, my script is a file with Id=‘ServicesUtil’ defined elsewhere in the WXS file.
<!-- Get Path to Powershell executable -->
<Property Id='POWERSHELLEXE'>
<RegistrySearch Id='POWERSHELLEXE'
Type='raw'
Root='HKLM'
Key='SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell'
Name='Path'
/>
</Property>
<Condition Message="This application requires Windows PowerShell.">
<![CDATA[Installed OR POWERSHELLEXE]]>
</Condition>
<!-- Define command for Custom Action -->
<SetProperty Id='SCStartServices'
Before ='InstallFiles'
Sequence='execute'
Value =""[POWERSHELLEXE]" -Version 5.0 -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& '[#ServicesUtil]' ; exit $$($Error.Count)""
/>
<!-- Define the Custom Action -->
<CustomAction Id='SCStartServices'
BinaryKey='WixCA'
DllEntry='CAQuietExec'
Return='check'
Execute='deferred'
Impersonate='no'
/>
<!-- invoke custom action -->
<InstallExecuteSequence>
<Custom Action='SCStartServices' After='InstallFiles'><![CDATA[NOT Installed]]></Custom>
</InstallExecuteSequence>
And here’s the error message from the install log:
CAQuietExec: Get-ItemProperty : Cannot find path 'HKEY_LOCAL_MACHINE\SOFTWARE\Node.js'
CAQuietExec: because it does not exist.
> On Jul 4, 2016, at 9:18 PM, John Naylor <mejohnnaylor at mac.com> wrote:
>
> I have a powershell script that installs and runs just fine.
>
> When I try to run it during the install as a custom action I get a failure message in the log, and the install rolls back.
>
> The problem line in the script is:
>
> $myvar = Get-ItemProperty HKLM:SOFTWARE\path\to\property
>
> The error in the log is that the item cannot be found.
>
> Running this line at the powershell prompt, or invoking the script its in produces the expected result.
>
> Does the installer prevent access to the registry during installation or something? I can't figure this one out.
>
> Thx!
>
> Sent from my iPhone. Please excuse brevity and auto-corruptions.
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
More information about the wix-users
mailing list