从 Bootstrapper 调用时,Wix 安装程序未安装 [英] Wix Setup not installing when called from Bootstrapper

查看:39
本文介绍了从 Bootstrapper 调用时,Wix 安装程序未安装的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个运行良好的 Setup.MSI.

I have a Setup.MSI that works perfectly fine.

但是当我从 Bootstrapper 链中调用它时,安装立即完成并显示成功消息,而没有实际安装任何东西.

But when I call it from within a Bootstrapper chain, the installation immediately finishes with a success message without actually installing anything.

似乎只是跳过了应该执行 MSI 的步骤,就好像它检测到已经安装的版本一样.如果所有以前的版本都已经卸载或新版本更高都没有关系.(尽管单独执行 MSI 总是会导致正确的结果,即在继续安装之前卸载所有早期版本).

It seem like just the step where the MSI should be executed is skipped, as if it has detected an already installed version. It doesn't matter if all previous versions are already uninstalled or the new version is higher. (Altough the execution of the MSI alone always lead to a proper result, where all earlier versions are uninstalled before continuing the installation).

出于测试目的,我从 Bootstrapper 链中删除了除 Setup.msi 之外的所有内容.

For testing purposes I removed everything but the Setup.msi from my Bootstrapper chain.

执行EXE的LOG是:

The LOG from executing the EXE is:

[0AA8:3E64][2017-03-22T16:41:45]i001: Burn v3.10.3.3007, Windows v10.0 (Build 14393: Service Pack 0), path: C:\Users\bassak\AppData\Local\Temp\{747ED177-C2E5-40F8-8166-FB885ED86990}\.cr\MyProjectFULL.exe
[0AA8:3E64][2017-03-22T16:41:45]i000: Initializing string variable 'InstallFolder' to value '[WindowsVolume]AVL\MyProject'
[0AA8:3E64][2017-03-22T16:41:45]i000: Initializing numeric variable 'CheckBoxInstallSQL' to value '0'
[0AA8:3E64][2017-03-22T16:41:45]i009: Command Line: '"-burn.clean.room=C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\MyProjectFULL.exe" -burn.filehandle.attached=452 -burn.filehandle.self=464 -l log.log'
[0AA8:3E64][2017-03-22T16:41:45]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\MyProjectFULL.exe'
[0AA8:3E64][2017-03-22T16:41:45]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\'
[0AA8:3E64][2017-03-22T16:41:45]i000: Setting string variable 'WixBundleLog' to value 'C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\log.log'
[0AA8:3E64][2017-03-22T16:41:45]i000: Setting string variable 'WixBundleName' to value 'MyProject Bundle'
[0AA8:3E64][2017-03-22T16:41:45]i000: Setting string variable 'WixBundleManufacturer' to value 'AVL List GmbH'
[0AA8:3CE0][2017-03-22T16:41:45]i000: Setting version variable 'WixBundleFileVersion' to value '4.0.1.4'
[0AA8:3E64][2017-03-22T16:41:45]i100: Detect begin, 1 packages
[0AA8:3E64][2017-03-22T16:41:45]i101: Detected package: MyProject.msi, state: Absent, cached: Complete
[0AA8:3E64][2017-03-22T16:41:45]i199: Detect complete, result: 0x0
[0AA8:3CE0][2017-03-22T16:41:46]i000: Setting numeric variable 'CheckBoxInstallSQL' to value 0
[0AA8:3E64][2017-03-22T16:41:46]i200: Plan begin, 1 packages, action: Cache
[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
[0AA8:3E64][2017-03-22T16:41:46]i299: Plan complete, result: 0x0
[0AA8:3E64][2017-03-22T16:41:46]i300: Apply begin
[0AA8:3E64][2017-03-22T16:41:46]i010: Launching elevated engine process.
[0AA8:3E64][2017-03-22T16:41:46]i011: Launched elevated engine process.
[0AA8:3E64][2017-03-22T16:41:46]i012: Connected to elevated engine.
[28E8:47E8][2017-03-22T16:41:46]i358: Pausing automatic updates.
[28E8:47E8][2017-03-22T16:41:46]i359: Paused automatic updates.
[28E8:47E8][2017-03-22T16:41:46]i360: Creating a system restore point.
[28E8:47E8][2017-03-22T16:41:46]i361: Created a system restore point.
[28E8:47E8][2017-03-22T16:41:46]i370: Session begin, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9d8bfe4c-e128-400a-a363-4a8b12853b73}, options: 0x7, disable resume: No
[28E8:47E8][2017-03-22T16:41:47]i000: Caching bundle from: 'C:\Users\bassak\AppData\Local\Temp\{1A7728A4-BCE6-4984-8F1C-C94521036C1D}\.be\MyProjectFULL.exe' to: 'C:\ProgramData\Package Cache\{9d8bfe4c-e128-400a-a363-4a8b12853b73}\MyProjectFULL.exe'
[28E8:47E8][2017-03-22T16:41:47]i320: Registering bundle dependency provider: {9d8bfe4c-e128-400a-a363-4a8b12853b73}, version: 4.0.1.4
[28E8:47E8][2017-03-22T16:41:47]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9d8bfe4c-e128-400a-a363-4a8b12853b73}, resume: Active, restart initiated: No, disable resume: No
[28E8:363C][2017-03-22T16:41:47]i304: Verified existing payload: MyProject.msi at path: C:\ProgramData\Package Cache\{F2ABE5A6-4D93-4F85-B93D-50AD954B2A09}v4.0.1.4\MyProject.msi.
[28E8:47E8][2017-03-22T16:41:47]i372: Session end, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9d8bfe4c-e128-400a-a363-4a8b12853b73}, resume: None, restart: None, disable resume: No
[28E8:47E8][2017-03-22T16:41:47]i330: Removed bundle dependency provider: {9d8bfe4c-e128-400a-a363-4a8b12853b73}
[28E8:47E8][2017-03-22T16:41:47]i352: Removing cached bundle: {9d8bfe4c-e128-400a-a363-4a8b12853b73}, from path: C:\ProgramData\Package Cache\{9d8bfe4c-e128-400a-a363-4a8b12853b73}\
[28E8:47E8][2017-03-22T16:41:47]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9d8bfe4c-e128-400a-a363-4a8b12853b73}, resume: None, restart initiated: No, disable resume: No
[0AA8:3E64][2017-03-22T16:41:48]i399: Apply complete, result: 0x0, restart: None, ba requested restart:  No
[0AA8:3E64][2017-03-22T16:41:49]i500: Shutting down, exit code: 0x0
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: CheckBoxInstallSQL = 0
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: InstallFolder = C:\AVL\MyProject
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WindowsVolume = C:\
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleAction = 4
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleElevated = 1
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleFileVersion = 4.0.1.4
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleInstalled = 0
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleLog = C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\log.log
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleManufacturer = AVL List GmbH
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleName = MyProject Bundle
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleOriginalSource = C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\MyProjectFULL.exe
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleOriginalSourceFolder = C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleProviderKey = {9d8bfe4c-e128-400a-a363-4a8b12853b73}
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleSourceProcessFolder = C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleSourceProcessPath = C:\MyProject Wix\MyProjectSetup\Release\4.0.1.4\MyProjectFULL.exe
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleTag = 
[0AA8:3E64][2017-03-22T16:41:49]i410: Variable: WixBundleVersion = 4.0.1.4
[0AA8:3E64][2017-03-22T16:41:49]i007: Exit code: 0x0, restarting: No

错误在哪里?我有不同的升级代码用于设置 &两者始终保持不变的引导程序.作为产品代码,我使用*".我使用 Visual Studio 2015 &在 32 位版本中构建所有内容.我真的很感激每一个指向正确方向的提示!

Where could the error be? I have a different Upgrade Code for the setup & the bootstrapper which both always stay the same. As product code I use "*". I use Visual Studio 2015 & build everything at release 32 bit. I am really grateful for every hint into the right direction!

推荐答案

你的问题与此行有关

[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.

这篇关于从 Bootstrapper 调用时,Wix 安装程序未安装的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆