Настройка каталога с помощью RegistrySearch для несуществующего каталога не работает - PullRequest
1 голос
/ 26 февраля 2010

Я использую RegistrySearch, чтобы установить свойство, которое является одним из моих каталогов, и я вижу, что, если значение реестра относится к подкаталогу, который не существует, чем значение этого каталога не установлено, почему это так? * В моем случае ROLESDIR будет установлен пустым, если целевой каталог не существует (в то время как реестр все еще указывает на него) -> конечный результат заключается в том, что RoleDir будет установлен непосредственно в CONFDIR

<Property Id="ROLESDIR">
  <RegistrySearch Id="ROLESDIRRegistry" Type="directory" Root="HKLM" Key="Software\DummyName\UCM" Name="ConfRolesDirectoryPath" />
</Property>

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="SDIR">
      <Directory Id="CONFDIR" Name="Conf">
        <Directory Id="ROLESDIR" Name="Roles">
          <Directory Id="RoleDir" Name="MyRole" />
        </Directory>
      </Directory>
    </Directory>
  </Directory>
</Directory>

1 Ответ

2 голосов
/ 16 марта 2010

Ваш вопрос не очень ясен,

Можете ли вы привести пример значения реестра.

Я использовал это в прошлом.

<Property Id="INSTALLDIR">
  <RegistrySearch Id="INSTALLDIRRegistry" Type="raw" Root="HKLM" Key="Software\Manufacturer\Product" Name="InstallDir" />
</Property>

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="INSTALLDIR" Name="ProductName">

Устанавливает INSTALLDIR в качестве местоположения пути в значении реестра. Я думаю, что в вашем случае вы пытаетесь установить путь к папке, путь к которой уже определен кодом wix.

Вы можете попробовать что-то вроде этого

<Directory Id="TARGETDIR" Name="SourceDir">
   <Directory Id="ROLESDIR" Name="Roles">
      <Directory Id="RoleDir" Name="MyRole" />
   </Directory>
   <Directory Id="ProgramFilesFolder">
      <Directory Id="SDIR">
         <Directory Id="CONFDIR" Name="Conf" />
      </Directory>
   </Directory>
</Directory>

Надеюсь, это поможет

...