Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WiX自定义引导程序UI中访问安装程序包信息_Wix_Burn - Fatal编程技术网

在WiX自定义引导程序UI中访问安装程序包信息

在WiX自定义引导程序UI中访问安装程序包信息,wix,burn,Wix,Burn,我正在考虑创建一个WiX包安装程序,该安装程序将为定义链中包含的每个安装程序提供一个复选框,以允许用户选择要安装的软件包(类似于)。我通过扩展bootstrapper应用程序并重写Run方法开始创建自定义引导程序,正如我在几篇博客文章中看到的那样。在BootStrapperApplication类中,我没有看到提供对链和包含的包的信息的访问的任何内容。这些信息可以通过API获得吗?关于包中包含哪些包和功能的信息实际上可以通过运行时在系统上删除的XML文件获得。我有一系列的博客文章,用代码示例介绍

我正在考虑创建一个WiX包安装程序,该安装程序将为定义链中包含的每个安装程序提供一个复选框,以允许用户选择要安装的软件包(类似于)。我通过扩展
bootstrapper应用程序
并重写Run方法开始创建自定义引导程序,正如我在几篇博客文章中看到的那样。在
BootStrapperApplication
类中,我没有看到提供对链和包含的包的信息的访问的任何内容。这些信息可以通过API获得吗?

关于包中包含哪些包和功能的信息实际上可以通过运行时在系统上删除的XML文件获得。我有一系列的博客文章,用代码示例介绍了这个过程

这里有一段(经过编辑的)摘录,涉及你的问题:

WIXXML文件中嵌入了大量信息,例如包/功能布局、名称、描述、ID等,我们使用这些信息构建包模型,但几乎没有一个信息在运行时通过事件参数可用。但是,WiX确实会生成一个BootstrapperApplicationData.xml文件,其中包含大量信息,并包含在运行时可用的文件中。我们可以在运行时解析该文件以访问该元数据,我建议您在运行检测逻辑之前进行分析,以便在事件处理程序中使用填充的模型。由于该文件以及所有程序集和.msi文件都放置在一个随机命名的临时文件夹中,因此我们无法提前知道该文件将位于何处,因此必须使用程序集的路径来查找它

然后可以解析XML以获取元数据。我建议在调试模式下运行一个临时安装程序,并在这里设置一个断点来检查XML的内容,以便获得可用内容的完整列表

介绍文章如下:

获取捆绑包中包含的软件包和功能列表的详细信息:


有关使用该数据以及用户选择或现有安装详细信息来设置安装、删除或升级哪些软件包/功能的详细信息:

Wow,这是一个非常棒的信息来源。在发布此问题之前,我曾访问过您的网站,但没有发现您提供的链接信息。非常感谢@John M.Wright在第3部分“在调试模式下运行临时安装程序并设置断点”中介绍了VS中使用断点的具体步骤?我的血压从来没有被击中过@TinoMclaren,只要您对wix安装程序进行调试构建,它就应该与任何其他.net应用程序一样工作。您将在.exe旁边获得一个.wixpdb文件,该文件将连接所有内容。此外,请检查以下答案: