在 Visual studio Install Shield 项目中添加条件以检查自定义操作的操作系统类型

Add Condition to check operating system type for custom action in Visual studio Install Shield project

我已经创建了 windows 服务的安装文件。作为先决条件,我必须在目标机器上安装第三方软件。这个第 3 方软件有 2 个版本 OS 类型,64 位和 32 位。我已将其包含在自定义操作中,如下所示:

现在我想向此安装添加 OS 类型条件,但我找不到任何选项来添加条件,如下所示:

如您所见,没有任何选项可供我们明确键入条件。我读过识别 OS 类型的条件是 NOT VersionNT64VersionNT64 并检查它是否已安装它是 NOT Installed 等,你可以指定它作为一个条件。但正如我之前所说,我没有看到关于在何处指定此条件的任何选项。对此的任何建议或见解都会很有帮助。如果需要任何进一步的详细信息,请告诉我。

条件生成器用于启动条件,仅当满足 OS 条件时才允许安装继续进行。对于自定义操作的条件,请在自定义操作的条件 属性 中使用 VersionNT64。 Installed 属性 适用于您的产品 - Not Installed 表示您的 MSI 未安装 - 它与 OS 版本或其他产品无关。

通常使用先决条件和引导程序来处理这些情况,首先安装这些先决条件:

https://msdn.microsoft.com/en-us/library/ms165429.aspx

从您的设置安装其他设置的问题在于,如果它们是基于 MSI 的,则它们可能会失败,因为您无法执行递归 MSI 安装(您的调用另一个)。

对于不同的体系结构,构建两个 MSI 也很常见(而且通常是必要的)。

https://blogs.msdn.microsoft.com/heaths/2008/01/15/different-packages-are-required-for-different-processor-architectures/

因此,您将构建一个 32 位 MSI 和一个 64 位 MSI,然后别无选择 - 您只需安装 MSI 附带的第 3 方软件。