WiX 引导程序 WPF 自定义 UI:更改 INSTALLFOLDER



我有一个带有WPF自定义UI的引导程序。它包含NET Framework 4.5包和我的产品msi包。我想在我的 UI 中提供文件夹选择对话框,然后将默认安装文件夹替换为用户选择。为此,我需要从 msi 读取值,显示对话框,然后替换。

如何在 WPF UI 中执行此操作?这样我就无法获得价值:

 if (engine.StringVariables.Contains("INSTALLFOLDER"))
                    installdir2 = engine.StringVariables["INSTALLFOLDER"];

可以做到吗?

不可能直接从 msi 读取安装文件夹(我的意思是,相对容易),但您可以执行以下操作:

  1. 在 Bundle.wxs 中,将 MsiProperty 添加到包声明中:

    <MsiPackage  Id="Installer"  Compressed="yes" Vital="yes" ForcePerMachine="yes" SourceFile="..Installerbin$(var.Configuration)Installer.msi">
                <MsiProperty Name='INSTALLFOLDER' Value='[InstallFolder]' />
    

其中安装文件夹 - 您的 Wix 安装程序中的变量,安装文件夹 - 引擎变量名称。

  1. 安装程序中,在安装时将 INSTALLFOLDER 属性存储在注册表中(或就地存储,您可以在更新/修复/等时轻松获取它)

  2. 在引导程序中,设置 InstallFolder 属性的默认值。

  3. 在申请之前,请致电Engine.StringVariables["InstallFolder"]=your_value
  4. 你完成了

最新更新