Wixsharp External UI (WPF) 安装路径

Wixsharp External UI (WPF) Installation Path

我一直在为我的安装程序开发外部 UI,使用 WixSharp 生成。 WixSharp 示例库有一个很好的示例,说明如何创建外部 WPF UI,但我不明白如何提示用户更改我的应用程序的安装路径。显然,我有一个从 GenericSetup 派生的设置 class,并且我可以在调用 base.StartInstall() 方法时将参数传递到我的 MSI 文件。但是我怎样才能从我的 MSI 中获取安装目录以便首先向用户显示它?

其实很简单。 MSI 本质上是一个数据库,我们可以读取它。 WixSharp 提供简洁的 MsiParser class,可以读取存储在 MSI 中的一些属性。 可以这样使用:

var msi = new MsiParser(MsiFile);
var dir = msi.GetDirectoryPath("INSTALLDIR");

这个问题最初由 Oleg Shilo 在 github issue thread

上回答