相关疑难解决方法(0)

Wix Burn vcredist

我有一个使用Visual Studio 2015开发的c ++应用程序,以及一个Wix安装程序和一个Burn bootstrapper.该应用程序的早期版本能够使用Visual Studio合并模块来安装必要的先决条件,但在使用Visual Studio 2015时看起来这不是一个选项(请参阅Redistributables用于部署在Windows 7上使用Visual Studio 2015开发的C++ exe)).

根据该链接中的建议,我们已经开始使用带有vital ="yes"的ExePackage在Burn中安装vcredist.这通常很有效 - 我们有几个客户由于vcredist的各种问题导致安装失败.直到最近,这些都是导致安装失败的错误.

在过去的几天里,由于安装了较新版本的可再发行组件,我们收到了几个安装程序失败的报告:vcredist失败,错误代码为0x80070666,导致我们的引导程序失败.

我的问题是:

  1. 正在部署vcredist的"正确"方法吗?(假设我们需要一个exe安装程序)
  2. 我们如何知道安装了哪些版本的可再发行组件(不一定在引导程序中,这些信息是否以某种用户可读形式存储)?
  3. 是否有我们应该分发的可再发行版本的更新版本?(目前使用14.0.23026)这是基于用于编译的Visual Studio版本还是应该始终分发最新版本?(当前VS版本14.0.23107.0)
  4. 作为最后的手段,是否可以检测从vcredist返回的错误代码并允许该值确定安装是继续还是失败?

wix burn vcredist visual-studio-2015

19
推荐指数
1
解决办法
7449
查看次数

如何找到已安装的MSI文件的升级代码?

在某些情况下,可能需要检索已部署软件包的MSI升级代码.

常见场景:

  • 我接管了其他人的MSI项目,我需要确定哪些升级代码用于以前的版本.这是处理升级方案所必需的.我没有任何版本的存档.
  • 我在开发过程中不小心多次更改了我的WiX软件包的升级代码,我需要"在野外"找到所有升级代码版本.我不知道升级代码应该在版本之间保持稳定.

这是一个Q/A风格的问题.

这个问题以各种形式出现过,但这不是重复的.我发布了一种使用主MSI自动化接口(或严格来说WMI)的方法.它应该比先前答案的基于注册表的方法更可靠.这个答案也试图总结其他检索方法.

vbscript powershell wmi windows-installer wix

12
推荐指数
1
解决办法
7972
查看次数