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

时间:2016-03-10 12:15:06

标签: c# visual-studio-2012 custom-action msiexec installshield-le

我已经创建了一个windows服务的安装文件。除此之外,我还必须在目标机器中安装第三方软件。此第三方软件有2种版本的OS类型,64位和32位。我已将其包含在自定义操作中,如下所示:

Setup

现在我想在此安装中添加操作系统类型条件,但我没有找到任何在条件下添加的选项,如下所示:

Conditions

正如您所看到的,我们无法明确键入条件。我已经读过识别操作系统类型的条件是NOT VersionNT64VersionNT64,并检查它是否已安装NOT Installed等,并且您可以将其指定为条件。但正如我先前所说,我没有看到任何选项指定这个条件。对此有任何建议或见解将非常有帮助。如果需要进一步的细节,请告诉我。

1 个答案:

答案 0 :(得分:2)

条件构建器用于启动条件,只有在满足操作系统条件时才允许安装。有关自定义操作的条件,请在自定义操作的Condition属性中使用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一起使用的第三方软件。