Wpf 在WiX引导程序中选择MSI功能

Wpf 在WiX引导程序中选择MSI功能,wpf,wix,bootstrapper,burn,wix3.6,Wpf,Wix,Bootstrapper,Burn,Wix3.6,我已经有了一个MSI软件包,其中包含我通过WiX创建的几个功能。现在,如果需要,我还想安装.NET framework作为先决条件。因此,我创建了一个基于WiX的引导程序应用程序。为了提供一个漂亮的用户界面,我用WPF为引导程序创建了一个自定义UI。无论如何,现在我想在我的自定义引导程序中创建一个页面,允许用户在开始安装之前从MSI中选择功能。以下是我遇到的问题: 是否有办法从MSI获取可用功能,这些功能将安装在自定义引导程序应用程序中,以便我可以用相应的复选框填充我的用户界面 如果我可以列出安

我已经有了一个MSI软件包,其中包含我通过WiX创建的几个功能。现在,如果需要,我还想安装.NET framework作为先决条件。因此,我创建了一个基于WiX的引导程序应用程序。为了提供一个漂亮的用户界面,我用WPF为引导程序创建了一个自定义UI。无论如何,现在我想在我的自定义引导程序中创建一个页面,允许用户在开始安装之前从MSI中选择功能。以下是我遇到的问题:

是否有办法从MSI获取可用功能,这些功能将安装在自定义引导程序应用程序中,以便我可以用相应的复选框填充我的用户界面

如果我可以列出安装的可用功能,请参见问题1,如何将Boostrapper用户界面中的用户选择应用于我的MSI软件包


非常感谢您的帮助。

在引导程序代码中,您可以使用打开MSI并确定可用功能,然后显示每个功能的复选框


要回答第二个问题,您只需在启动MSI安装时在命令行上传递功能名称。逗号分隔功能并将其传递给属性。

在引导程序代码中,可以使用打开MSI并确定可用功能,然后显示每个功能的复选框


要回答第二个问题,您只需在启动MSI安装时在命令行上传递功能名称。逗号分隔功能并将其传递给属性。

另一种方法是将MSI包沿功能线拆分为多个MSI微包。然后根据引导程序中的UI选项有条件地安装MSI包。

另一种方法是将MSI包沿功能线拆分为多个MSI微包。然后根据引导程序中的UI选择有条件地安装MSI软件包。

这听起来是个好主意,但我认为wix不提供对MsiOpenProduct等功能的访问。还是我遗漏了什么?抱歉,再多说一句。我还是有点迷路。我现在用我的安装程序玩了几个小时,但我真的不知道如何使用你提到的功能。例如,我尝试了Installer.OpenProductXXXX;在OnPlanComplete功能中,我总是得到错误的参数,只有一个例外。我认为我使用了错误的功能或在错误的环境中。任何帮助都将是非常好的…老实说,我不知道WiX是否在他们的引导程序中提供了这一点。也许更熟悉它的人会回应。我的建议需要使用C++、C或VBScript来与生成的MSI接口。这些年来我已经做了很多。你可以找到很多这样做的示例代码。这听起来是个好主意,但我不认为wix提供了对MsiOpenProduct等函数的访问。还是我遗漏了什么?抱歉,再多说一句。我还是有点迷路。我现在用我的安装程序玩了几个小时,但我真的不知道如何使用你提到的功能。例如,我尝试了Installer.OpenProductXXXX;在OnPlanComplete功能中,我总是得到错误的参数,只有一个例外。我认为我使用了错误的功能或在错误的环境中。任何帮助都将是非常好的…老实说,我不知道WiX是否在他们的引导程序中提供了这一点。也许更熟悉它的人会回应。我的建议需要使用C++、C或VBScript来与生成的MSI接口。这些年来我已经做了很多。你可以找到很多这样做的示例代码。