0

我从这里阅读并运行示例。

一些问题:

  1. 如何在安装/卸载/删除过程中获取操作名称?
  2. 如何将变量和参数传递给嵌入式 MSI?
  3. 有什么方法可以像在 WixSharp(WpfSetup 示例)中那样从嵌入式 MSI(产品版本、公司名称等)中获取其他信息?

4. 如何从 MSI 文件 INSTALLFOLDER、TARGETDIR 和其他值中获取(设置)?

4

2 回答 2

2
  1. 我不确定你能不能。Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperApplication将告诉您它正在计划或执行的 msi 包,您还可以获取有关它正在执行的安装操作的信息,检查在安装过程中由此引发的事件。

2.

在您的引导程序 WPF 应用程序中

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

捆绑包.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活页夹变量参考
于 2016-02-01T14:10:34.400 回答
0

对于问题 4,请查看: http ://www.wrightfully.com/allowing-the-user-to-select-the-install-folder/

您还可以查看 Wix 管理的引导程序,因为我相信它也可以做到这一点。你可以在这里下载源代码: https ://github.com/wixtoolset/wix3

于 2016-02-03T21:41:23.750 回答