Installation dotnetinstaller配置,即使先决条件失败,也可以继续MSI安装

Installation dotnetinstaller配置,即使先决条件失败,也可以继续MSI安装,installation,prerequisites,redistributable,dotnetinstaller,Installation,Prerequisites,Redistributable,Dotnetinstaller,我有一个VC++应用程序的设置。作为本机应用程序,VC++可再发行文件是一个先决条件。然而,如今这些变化非常频繁(每6-8周一次)。这意味着我们发布了应用程序的新版本,但在客户实际安装我们的应用程序之前,更新版本的可再发行文件也会发布并安装在客户机器上。其结果是,由于存在较新的版本,安装程序中的旧可再发行文件将无法安装。这反过来会导致安装失败,因此不会执行应用程序MSI 目前,解决方法是打开一个提升为administrator的命令提示符,并使用正确的参数运行msiexec。我想为客户找到更好的

我有一个VC++应用程序的设置。作为本机应用程序,VC++可再发行文件是一个先决条件。然而,如今这些变化非常频繁(每6-8周一次)。这意味着我们发布了应用程序的新版本,但在客户实际安装我们的应用程序之前,更新版本的可再发行文件也会发布并安装在客户机器上。其结果是,由于存在较新的版本,安装程序中的旧可再发行文件将无法安装。这反过来会导致安装失败,因此不会执行应用程序MSI

目前,解决方法是打开一个提升为administrator的命令提示符,并使用正确的参数运行msiexec。我想为客户找到更好的体验

VC++可再发行文件是作为必要的先决条件添加的。这意味着
required\u install
属性设置为
true
。其结果是,未能安装必备组件意味着安装失败。虽然
allow_continue_on_error
default_continue_on_error
被设置为
true
,但用户会被告知失败,并可以继续其他先决条件,但安装最终失败,MSI执行不会开始

我尝试通过将
required\u install
属性设置为
false
来实现VC++可再发行的可选先决条件。然而,这会导致另一种不受欢迎的行为。如果缺少任何必需的先决条件,则会显示先决条件对话框,并且我可以选中/取消选中可选的先决条件(因此,如果我不想要它们,则跳过它们)。但是,如果找到了所有必需的先决条件,并且只缺少可选的先决条件,则安装程序不会显示“先决条件”对话框并直接执行MSI

我需要一个选项,使这些先决条件可选,在这个意义上说,未能安装它们不会停止MSI的执行;但是,我确实希望用户看到它们丢失了(如果是这样的话),并且可以选择安装它们


这在Dotnettaller中是否可能?

似乎有一个安装VC++可再发行版本的关键点,即
HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\VisualStudio\14.0\VC\Runtimes\{x86 | x64 | ARM}
。这里记录了这一点:

但是,版本以字符串形式存储,格式为
v14.28.29913.00
,如下所示: 还有用于次要、主要、构建和修订的DWORD值

使用dotnetinstaller的一个解决方案是使用
installedcheckoperator
组合
installedcheck
操作。可以找到一个例子

最新版本的dotnetinstaller支持以
v[version]
的形式解析字符串,例如
v14.28.29913.00
,因此更容易检查VC++可再发行版本