私のWebアプリケーションのインストーラーはWMIを介していくつかの構成を行い、さまざまなバージョンを処理するために、IISに次のようなコードでバージョンを要求します。
DirectoryEntry folderRoot = new DirectoryEntry("IIS://localhost/W3SVC/Info");
Version iisVersion = new Version((int)folderRoot.InvokeGet("MajorIIsVersionNumber"), (int)folderRoot.InvokeGet("MinorIIsVersionNumber"));
公式バージョンは8.0ですが、Server2012とWindows8はどちらも7.5を返します。これは、Windows 2008が報告するのと同じバージョンであることを除けば、それほど問題にはなりません。これはなぜですか、OSのバージョンを確認するよりも優れた解決策がありますか?