9

WIXインストーラーがあります。インストールパスに応じてレジストリキーを追加しようとします(VSインストーラーは簡単です)。この場合、それは簡単なことだと思いました...これはWIXの私のXMLです。

<Feature Id="ProductFeature" Title="ChessBarInfoSetup" Level="1">
        <!--<ComponentGroupRef Id="ProductComponents" />-->
  <ComponentRef Id='InstallRegistryComponent' />
  <ComponentRef Id='ProductComponent' />
    </Feature>
</Product>

<Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
    <Directory Id="ManufacturerFolder" Name="$(var.manufacturer)">
      <Directory Id="INSTALLFOLDER" Name="$(var.productName)">

        <!--<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">-->
          <Component Id="InstallRegistryComponent" Guid="*">
            <RegistryKey Id='ChessInfoBarInstallDir' Root='HKLM' Key='Software\[Manufacturer]\[ProductName]' Action='createAndRemoveOnUninstall'>
              <RegistryValue Type='string' Name='InstallDir' Value="[INSTALLDIR]" Action="write" KeyPath="yes" />
              <!--<RegistryValue Type='integer' Name='Flag' Value='0'/>-->
            </RegistryKey>
          </Component>
          <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
          <Component Id="ProductComponent" Guid="*">
            <File Source="$(var.ChessInfoTaskBar.TargetPath)" />
          </Component>
        <!--</ComponentGroup>-->

      </Directory>
    </Directory>
        </Directory> 
</Directory>
</Fragment>

値は作成されますが、常に空の文字列です。INSTALLLOCATIONなどで試してみました...何が間違っていますか(wixチュートリアルページでValue = [INSTALLDIR]を見ました)?

4

1 に答える 1

10

INSTALLDIR代わりに使用しているため、空ですINSTALLFOLDER

<Directory Id="INSTALLFOLDER" Name="$(var.productName)">

<RegistryValue Type='string' Name='InstallDir' Value="[INSTALLFOLDER]" />

インストールディレクトリが表示されます。

于 2012-11-19T09:47:22.363 に答える