【发布时间】:2018-01-25 22:25:36
【问题描述】:
我有一个捆绑的应用程序,比如 XYZ-1.0.0.1.exe,其中捆绑了应用程序 A-2.2.0.1.exe 和 B-1.2.0.1.exe。因此,当我们安装 XYZ 时,我们会在添加删除程序中列出 A 和 B。但是当我用 XYZ-1.0.0.2 升级 XYZ-1.0.0.1 时,它有 A-2.2.0.1.exe 和 B-1.2.0.2.exe,所以 A 相同并且已经安装,B 需要升级。实际上,我通过将安装条件设置为 false 来跳过 A 的安装,因为已经安装了相同的版本,并且在升级时只安装了 B。
成功升级后我无法卸载应用程序XYZ,它说一些包错误,只有当用于升级的源文件从机器中删除时才会发生这种情况。实际上在卸载包时必须从程序缓存中引用,我认为既然我们跳过了一个包缓存有问题。
我得到的错误如下“提示容器来源:WixAttachedContainer,路径:C:\Users\ABC\Desktop\XYZ-1.0.0.2.exe 无法解析文件源:C:\Users\ ABC\Desktop\XYZ-1.0.0.2.exe,错误:0x80070002。错误0x80070002:提示输入源失败(原始路径'C:\Users\ABC\Desktop\XYZ-1.0.0.2.exe')。获取失败容器:WixAttachedContainer 到工作路径:C:\Users\ABC\AppData\Local\Temp{b4a1c780-306c-40f0-83ad7},错误:0x80070002。“
仅当我将 XYZ.exe 复制到任何路径(例如桌面)并在安装后(跳过安装 A 或 B,因为已安装捆绑的相同版本的 A 或 B)并从保存的路径中删除安装文件 XYZ.exe 时才会出现此错误即这里的桌面。除非我卸载独立跳过的 A 或 B,否则我无法卸载。
还有另一种情况。
我有一个捆绑的应用程序,比如 XYZ-1.0.0.1.exe,其中捆绑了应用程序 A-2.2.0.1.exe 和 B-1.2.0.1.exe。 XYZ-1.0.0.2.exe,它有A-2.2.0.1.exe和B-1.2.0.2.exe。在 XYZ 的两个版本中,我们有相同的 A 版本。当我安装 XYZ-1.0.0.1.exe 时,我通过将安装条件设置为 false 来跳过 A-2.2.0.1.exe 的安装。所以安装了XYZ-1.0.0.1.exe,也安装了B-1.2.0.1。此外,当我升级到 XYZ-1.0.0.2 时,我需要安装所有 A 和 B。安装成功,现在我有 XYZ-1.0.0.2、A-2.2.0.1 和 B-1.2.0.2。现在,如果我从原始路径中删除 XYZ-1.0.0.2.exe 的安装文件并尝试卸载它会中断。
最初我认为包缓存问题是因为 A-2.2.0.1.exe 没有与 XYZ-1.0.0.2.exe 一起安装,因为我跳过了它,因为它已经可用。但是在第二种情况下知道跳过不是问题之后。因为在第二种情况下,A-2.2.0.1.exe 与 XYZ-1.0.0.2.exe 一起安装。
【问题讨论】:
-
所以这是一个 WiX Burn 包,您实际上从包中删除了一个 MSI,然后在第一个 WiX 包之上重新安装?我一定是误会了,这是怎么回事?您之后看到的确切错误消息是什么?
-
您能否从初始安装、升级和卸载中获取引导程序日志?
-
这些不是 MSI,XYZ,A 和 B 是“exe”文件。我在 XYZ 中捆绑了 A 和 B。我不允许提供完整的日志。我得到的错误如下“提示容器来源:WixAttachedContainer,路径:C:\Users\ABC\Desktop\XYZ-1.0.0.2.exe 无法解析文件源:C:\Users\ABC\Desktop \XYZ-1.0.0.2.exe,错误:0x80070002。错误0x80070002:提示输入源时失败(原始路径'C:\Users\ABC\Desktop\XYZ-1.0.0.2.exe')。获取容器失败:WixAttachedContainer到工作路径:C:\Users\ABC\AppData\Local\Temp\{b4a1c780-306c-40f0-83ad7}\,错误:0x80070002。"
-
仅当我将 XYZ 复制到任何路径(例如桌面)并在安装后(跳过安装 A 或 B,因为已安装捆绑的相同版本的 A 或 B)并从保存的路径中删除安装文件时,才会出现此错误即这里的桌面。除非我卸载独立跳过的 A 或 B,否则我无法卸载。
-
我今天也遇到了另一个问题。我有一个捆绑的应用程序,比如 XYZ-1.0.0.1.exe,其中捆绑了应用程序 A-2.2.0.1.exe 和 B-1.2.0.1.exe在里面。我在 XYZ 的 UI 中有复选框来选择可以安装的应用程序。所以我使用 InstallCondition 为 false 从安装中跳过 B-1.2.0.1.exe。后来我手动安装了 B-1.2.0.1.exe。因此,安装了对应于 XYZ 的 A 和 B 无效。现在在卸载 XYZ 时,它会尝试卸载 A 和 B。删除所有用于安装的设置(XYZ 和 B)。当我尝试卸载 XYZ-1.0.0.1.exe 时。我在上面遇到了同样的错误。
标签: wix uninstallation