我有一个使用dotnetinstaller构建的 VC++ 应用程序的设置。作为本机应用程序,VC++ 可再发行组件是先决条件。然而,现在这些变化非常频繁(每 6-8 周)。这意味着我们发布了应用程序的新版本,但在客户实际安装我们的应用程序之前,更新版本的可再发行组件也会发布并安装在客户机器上。结果是我们设置中的旧可再发行组件将无法安装,因为存在较新的版本。这反过来又会导致设置失败,因此不会执行应用程序 MSI。
目前,解决方法是打开以管理员身份提升的命令提示符并使用正确的参数运行 msiexec。我想为客户找到更好的体验。
VC++ 可再发行组件是作为必需的先决条件添加的。这意味着该required_install
属性设置为true
。这样做的结果是,无法安装先决条件意味着安装失败。虽然allow_continue_on_error
和default_continue_on_error
设置为true
,但用户会被告知失败并可以继续执行其他先决条件,但最终设置会失败并且 MSI 执行不会开始。
我尝试通过将required_install
属性设置为false
. 然而,这会导致另一种不希望的行为。如果缺少任何必需的先决条件,则会显示先决条件对话框,我可以选中/取消选中可选的先决条件(如果我不想要它们,则跳过它们)。但是,如果找到所有必需的先决条件并且仅缺少可选的先决条件,则安装程序不会显示先决条件对话框并直接执行 MSI。
我需要一个选项来使这些先决条件成为可选,因为无法安装它们不会停止 MSI 的执行;但是,我确实希望用户看到他们丢失了,如果是这样,并且可以选择安装它们。
dotnetintaller 可以通过某种方式实现吗?