且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

从 Bootstrapper 调用时,Wix 安装程序未安装

更新时间:2021-11-07 04:10:43

你的问题与此行有关

[0AA8:3E64][2017-03-22T16:41:46]i201: Planned package: MyProject.msi, state: Absent, default requested: Cache, ba requested: Cache, execute: None, rollback: None, cache: No, uncache: No, dependency: None

由于某种原因,默认请求和 ba 请求都是缓存".要让安装程序运行,它必须是安装".

For some reason the default requested and ba requested are both "Cache". For the installer to run this has to be "Install".

我们也有这条有趣的线

[0AA8:3E64][2017-03-22T16:41:46]i200:计划开始,1 个包,操作:缓存

[0AA8:3E64][2017-03-22T16:41:46]i200: Plan begin, 1 packages, action: Cache

我挖了一点,缓存"动作是3.10.3新增的动作.有趣的是,此操作刚好在 BOOTSTRAPPER_ACTION_INSTALL 之前添加到 BOOTSTRAPPER_ACTION 枚举中.

I did a bit of digging, and the "Cache" action is a newly added action in 3.10.3. Interestingly, this action was added to the BOOTSTRAPPER_ACTION enum right before BOOTSTRAPPER_ACTION_INSTALL.

所以这里发生了两件事之一,不知何故,您正在使用使用旧枚举的二进制文件进行构建,因此 BOOSTRAPPER_ACTION_INSTALL 与新 BOOSTRAPPER_ACTION_CACHE 的值相同,并且您正在混合二进制文件.您针对 3.10.2 或更早版本构建,但不知何故随 3.10.3 dll 一起提供.

So one of two things is happening here, somehow you are building with a binary that is using the old enum so BOOSTRAPPER_ACTION_INSTALL is the same value as the new BOOSTRAPPER_ACTION_CACHE and you are mixing binaries. You build against 3.10.2 or earlier but somehow are shipping with the 3.10.3 dll.

或者,您的引导程序将操作设置为 BOOTSTRAPPER_ACTION_CACHE 某处.

Or, your bootstrapper is setting the action to BOOTSTRAPPER_ACTION_CACHE somewhere.

这应该是一个很好的起点,但如果不了解更多信息,我无法真正弄清楚到底发生了什么.

This should be a good starting point but I can't really figure out exactly what is happening without knowing more.