Wix: путь к двоичному файлу в CustomAction - PullRequest
2 голосов
/ 15 декабря 2010

В моем файле wxs есть следующий код

<Directory Id="TempFolder" Name="Temp">
    <Component Id="TempExes" Guid="DF92ED79-28AB-4E88-81F2-8B035D4B8A01" DiskId="1">
          <File Id="CACLS_EXE" Name="CACLS.EXE" Source="Binary\CALCS.EXE" />
    </Component>
</Directory>

Теперь, когда я вызываю Custom Action из установщика, как мне получить путь к этому exe-файлу? Я пытался

var pathToExe = session.GetTargetPath("TempFolder") + "CACLS.exe"

, который не работает. Есть идеи? Спасибо.

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Вы пробовали:

<Directory Id="TEMPFOLDER" Name="Temp">
    <Component Id="TempExes" Guid="DF92ED79-28AB-4E88-81F2-8B035D4B8A01" DiskId="1">
      <File Id="CACLS_EXE" Name="CACLS.EXE" Source="Binary\CALCS.EXE" />
    </Component>
</Directory>

и

var pathToExe = session.GetTargetPath("TEMPFOLDER") + "CACLS.exe"

Публичные свойства есть во всех заглавных буквах.

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

1 голос
/ 16 декабря 2010

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

...