2013-09-10 2 views
0

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

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

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

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

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

+0

Если вы используете приложение для управления инсталлятором тогда в тот момент, она не имеет ничего общего с WiX. Установки WiX создают пакеты установщика Windows. Вам нужно будет ознакомиться с документацией для API установщика Windows (например, msiexec.exe), которую вы используете для передачи значения свойства для SOMEFOLDER (должно быть все в верхнем регистре, чтобы оно было общедоступным). Вы также можете рассмотреть проект WiX Bootstrapper для драйвера установщика. –

ответ

1

Вы можете использовать один из этих пользовательских действий, чтобы изменить значение свойства в процессе установки:

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

Например:

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

2.Schedule действие во время фазы InstallExecution (должна быть после стадии CostFinalize):

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

, чтобы изменить путь является:

<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> 

поздравление,

Смежные вопросы