如何在wix中设置注册表值?

时间:2017-08-04 06:37:06

标签: wix windows-installer

我正在尝试在我的WiX中为我的安装位置设置注册表值。 我想在localmachine / software中设置密钥 所以我使用了以下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 个答案:

答案 0 :(得分:3)

在64位系统上,通常在“HKLM \ Software \ ExampleSoftware”中找到的32位软件注册表项可以在“HKLM \ Software \ WOW6432Node \ ExampleSoftware”中找到。查看here了解详情。

相关问题