Как установить значение реестра в wix?

Я пытаюсь установить значение реестра для моего местоположения установки в моем WiX. Я хочу установить ключ в локальной машине / программном обеспечении, чтобы я использовал следующий файл WiX. Я не получаю никакой ошибки сборки, все идет хорошо, но значение реестра не установлено.

 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

     <?define engage.client.app_TargetDir=$(var.engage.client.app.TargetDir)?>
     <Product Id="*" Name="EngageSetupCreator" Language="1033" Version="1.0.0.0" Manufacturer="KrimzenInc" UpgradeCode="PUT-GUID-HERE">
       <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" AdminImage="yes" />

       <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
       <MediaTemplate />

      <Feature Id="ProductFeature" Title="EngageSetupCreator" Level="1">
        <ComponentGroupRef Id="ProductComponents" />
        <ComponentGroupRef Id="ProductComponents2" />
        <ComponentRef Id="InstallRegistryComponent"/>
        <!--<ComponentGroupRef Id="Assets"/>-->
      </Feature>
     </Product>
     <Fragment>
      <SetDirectory Id="INSTALLFOLDER" Value="[WindowsVolume]Engage" />
       <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="WINDOWSVOLUME">
         <Directory Id="SUB_FOLDER" Name="Engage">
          <Directory Id="INSTALLFOLDER" Name="EngageSetupCreator" >
            <Component Id="InstallRegistryComponent" Guid="*">
             <RegistryKey Id='ChessInfoBarInstallDir' Root='HKLM' Key='Software\Crimson\Engage' Action='createAndRemoveOnUninstall' >
              <RegistryValue Type='string' Name='InstallDir' Value="[INSTALLFOLDER]" Action="write" KeyPath="yes" />

             </Component>
            </Directory>
          </Directory>
        </Directory>
      </Directory>
     </Fragment>
     <Fragment>
      <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">

       <Component Id="engage.client.app.exe" Guid="*">
         <File Id="engage.client.app.exe" Name="engage.client.app.exe" Source="$(var.engage.client.app_TargetDir)engage.client.app.exe"  />
       </Component>


       <Component Id="CefSharp.BrowserSubprocess.exe" Guid="*">
         <File Id="CefSharp.BrowserSubprocess.exe" Name="CefSharp.BrowserSubprocess.exe" Source="$(var.engage.client.app_TargetDir)CefSharp.BrowserSubprocess.exe" />
       </Component>

      </ComponentGroup>-->



      <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch KrimzenEngage" />

     <!-- Step 3: Include the custom action -->
     <Property Id="WixShellExecTarget" Value="[#engage.client.app.exe]" />
     <CustomAction Id="LaunchApplication"
        BinaryKey="WixCA"
        DllEntry="WixShellExec"
        Impersonate="yes" />

     </Fragment>

 </Wix>

но это не установка значения. что я делаю не так? Я использую это в 64-битной системе.

1 ответ

Решение

В 64-разрядных системах 32-разрядные разделы реестра программного обеспечения, обычно находящиеся в "HKLM\Software\ExampleSoftware", вместо этого находятся в "HKLM\Software\WOW6432Node\ExampleSoftware". Проверьте здесь для получения дополнительной информации.

Другие вопросы по тегам