具有自定义安装位置的 Wix 捆绑卸载包

Wix bundle uninstall package with custom install location

我有一个 Wix 包,它允许用户自定义安装目录并在安装期间将值传递给包。这是使用此答案中描述的方法实现的:How do I pass a default 'install location' to the RtfLicense bootstrapper?

如果用户在运行 bundle 并卸载后没有更改安装目录,所有文件都会按预期删除。如果用户执行 select 另一个安装目录并运行 bundle 并卸载应用程序,则文件不会被删除。我猜这是因为包传递了默认目录,但它显然不存在。而且安装时创建的快捷方式被删除,因为快捷方式位置不依赖于安装目录。

我该如何解决这个问题?

"install location" 未被捆绑包保存。这些包必须在安装时保存他们需要的任何东西,并在其他操作中读回。对于 MsiPackage,这通常使用 "Remember Property" pattern 完成。目录路径作为属性进行操作,因此请保存您需要的任何目录路径。