(Un)在 WIX Burn 安装程序中安装 NSIS 包
Posted
技术标签:
【中文标题】(Un)在 WIX Burn 安装程序中安装 NSIS 包【英文标题】:(Un)Installing NSIS packages in WIX Burn installer 【发布时间】:2013-10-30 19:44:38 【问题描述】:我正在尝试让我的 Wix Burn 安装程序安装两个使用 NSIS 作为其安装程序的应用程序。安装效果很好。但是,我希望在我卸载我的应用程序时删除它们(Permanent="no")。这不是那么简单,因为我无法从 ExePackage 上的 UninstallCommand 属性调用不同的 exe(创建的 uninstall.exe)。还有其他方法吗?是否有 NSIS 安装程序可以用来卸载的简单命令行参数?
【问题讨论】:
你的问题不是很清楚。我所理解的是安装程序 A 安装 B 和 C(通过静默执行他们的 nsis 设置?)。但是当A被卸载时,B&C没有被卸载,对吧? 是的。在 Wix 捆绑包 (A) 中,如果我正确引用 B 和 C,当我卸载 A 时,它将触发 B 和 C 的卸载。但是,它假定您正在使用 MSI(或从 MSI 构建的 EXE),它将安装程序和卸载程序存放在同一个文件中。 NSIS 显然不是这样工作的。 【参考方案1】:您必须请求这些安装程序的作者添加对此的支持,NSIS 默认不支持它。
我什至认为安装人员支持它没有任何意义:
-
同一程序可以在同一台机器上安装多次(单个用户和所有用户?,多个版本?)
如果安装程序不写入注册表怎么办,它甚至应该如何找到原始安装?
【讨论】:
我担心这会是一个干净的答案。但是,我认为可以对您的两点提出异议。至少,这就是我想要做的。从用户的角度来看,如果我安装了一个需要某些 prereq 的应用程序,如果我删除了该应用程序,我不希望 prereq 在之后挥之不去。我想无论这是否是一种普遍(或流行)的想法,这都是我们在这种情况下想要的。【参考方案2】:不是我所谓的完美答案,而是一个实用的答案,所以我想我会分享。保存提供更好选择的人,我正在创建自定义操作来处理卸载。 NSIS 在他们的卸载策略中是一致的(默认情况下,无论如何)。知道那是什么,我可以计划。混乱,当然,但看起来不错。
【讨论】:
以上是关于(Un)在 WIX Burn 安装程序中安装 NSIS 包的主要内容,如果未能解决你的问题,请参考以下文章