2016-02-01 4 views
1

Я читаю и запускаю образец от here.WiX Bootstrapper WPF custom UI

Некоторые вопросы:

  1. Как я могу получить имена действий во время/деинсталлировать процесс установки/удаления?
  2. Как передать переменные и параметры в встроенный MSI?
  3. Можно ли получить дополнительную информацию из встроенного MSI (версия продукта, название компании и т. Д.), Как это сделано в WixSharp (образец WpfSetup)?

4. Как я могу получить (установить) файл MSI INSTALLFOLDER, TARGETDIR и другие значения?

ответ

2
  1. Я не уверен, что вы можете или нет. Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperApplication расскажет вам, какой пакет msi он планирует или выполняет, вы также можете получить информацию о том, какое действие по установке оно выполняет, проверьте события, которые возникают во время процесса установки.

2.

в вашем bootstapper WPF приложение

//ba is an instance of BootstrapperApplication 
this.ba.Engine.StringVariables["ServerInstallLoc"] = "YOUR DATA" 

Bundle.wxs

<!-- Install paths provided by the managed bootstrapper interface --> 
<Variable Name="ServerInstallLoc" bal:Overridable="yes" Type="string" Value=""></Variable> 

А потом ссылаться на эту переменную

<MsiPackage Id="MyInstaller" SourceFile="$(var.MyInstallerMsiProjectName.TargetPath)" Compressed="yes" DisplayInternalUI="no"> 
    <!-- Pass wix bundle variable to MSI property --> 
    <MsiProperty Name="SERVER_INSTALL_OVERRIDE" Value="[ServerInstallLoc]"/> 
    </MsiPackage> 
  1. В вашем загрузчике вы можете ссылаться на свойства входящих в комплект установщиков. синтаксис: !(bind.packageVersion.PackageName) Предполагая, что один из ваших <MsiPackage> элементов называется PackageName. Binder variables reference
+0

Извините - это все скорее Wix, а не Wix #. –

+0

Хорошо, мы говорим о WiX. Как я могу читать файл msi из WixAttachedContainer в моем пользовательском интерфейсе C# Bootstrapper? – Oleg

+0

Я не знаком с этим, если у вас есть ошибка, возможно, стоит задать отдельный вопрос. Раньше я использовал 'ba.Engine.Plan (LaunchAction.Install)', а затем 'Engine.Apply()' в событии PlanComplete, а механизм bootstrapper обрабатывает извлечение для вас. –

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

  • Нет связанных вопросов^_^