WIX: Изменить каталог установки из параметра класса C#?

Я создаю мастер установки, и у меня есть страница, где вы можете выбрать, где вы хотите установить программу. В моем классе C# у меня есть InstallPath, который хранит точный каталог, в котором я хочу установить программу.

По умолчанию это c:\Program Files.

В моем установочном файле WiX у меня есть это:

<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
      <Directory Id ="Folder" Name="SomeFolder"/>
    </Directory>
</Directory>

Моя проблема в том, что я не знаю, как сказать эту установку Wix для установки в InstallPath. Например, если InstallPath изменен на D:\SomeFolder\ Здесь я хочу установить его снова не в Program Files.

2 ответа

Решение

Вы можете использовать одно из следующих пользовательских действий для изменения значения свойства во время установки:

  1. настраиваемое действие, которое изменяет значение свойства каталога, запланированное до CostFinalize
  2. настраиваемое действие типа 35, которое изменяет путь к каталогу (должно быть запланировано после CostFinalize)

Например:

<CustomAction Id="ChangeDir" Directory="INSTALLFOLDER" Value="[SomeValueorPropertyhere]"/>

2. Запланируйте действие на этапе InstallExecution (должно быть после шага CostFinalize):

<Custom Action="ChangeDir" After="CostFinalize"></Custom>

Изменить путь это:

<Product Id="*"> 
    <Property Id="ROOTDRIVE">
        <![CDATA[D:\]]>
    </Property>
</Product>

и для нового пути D:\SomeFolder\ Здесь будет что-то вроде этого.

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="SomeFolder" Name="SomeFolder">
        <Directory Id="INSTALLFOLDER" Name="Here"/>
    </Directory>
</Directory>

Привет,

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