WebSetupProject中的IIS启动条件无法检测Win10上的IIS 10

时间:2015-08-18 15:38:17

标签: asp.net visual-studio-2010 iis

我们的WebSetupProjects(在VisualStudio 2010中创建)无法正确检测Win10上的IIS版本。

我的想法是它与这个条件的拼写方式有关 - 请注意双引号:

     (IISMAJORVERSION >= "#5" AND IISMINORVERSION >= "#1") OR IISMAJORVERSION >= "#6"

所以即使HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters MajorVersionMinorVersion的注册表检查返回 dword-integer 值,它们也会被强制转换为字符串表示,因此导致“10”少于而不是“5”或“6” - 因此检查失败。

我还没有尝试删除双引号,但我担心它们可能存在原因(即没有它们,检查将无法正常工作)。不过,一旦有机会,我会尝试这一点,并会报告。

与此同时,有没有人遇到过同样的情况并找到了如何解决它?

2 个答案:

答案 0 :(得分:2)

不幸的是,没有好办法。您可以像这样更改条件:  ((IISMAJORVERSION >= "#5" AND IISMINORVERSION >= "#1") OR IISMAJORVERSION >= "#6") OR IISMAJORVERSION = "#10"

问题是您必须使用每个新版本的Windows更新条件。

也许您应该考虑将安装项目迁移到WIX,因为Microsoft不再支持安装项目。使用WIX,您可以实现自定义操作,以编程方式检查所需的IIS版本,从注册表中读取它并在比较之前将其转换为整数。

答案 1 :(得分:0)

好主意,@ MartinMisol!应该自己想一想:)。但似乎没必要,至少到目前为止。

如最初所示,我尝试从条件字符串中的数字周围删除双引号(留下pound-signs):

        (IISMAJORVERSION >= #5 AND IISMINORVERSION >= #1) OR IISMAJORVERSION >= #6

对Windows 10 Professional Edition上的.msi软件包(由VisualStudio 2010编写)感到满意。