我们的WebSetupProjects(在VisualStudio 2010中创建)无法正确检测Win10上的IIS版本。
我的想法是它与这个条件的拼写方式有关 - 请注意双引号:
(IISMAJORVERSION >= "#5" AND IISMINORVERSION >= "#1") OR IISMAJORVERSION >= "#6"
所以即使HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters
MajorVersion
和MinorVersion
的注册表检查返回 dword-integer 值,它们也会被强制转换为字符串表示,因此导致“10”少于而不是“5”或“6” - 因此检查失败。
我还没有尝试删除双引号,但我担心它们可能存在原因(即没有它们,检查将无法正常工作)。不过,一旦有机会,我会尝试这一点,并会报告。
与此同时,有没有人遇到过同样的情况并找到了如何解决它?
答案 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编写)感到满意。