public static boolean isInstalled()

in core/src/main/java/hudson/util/jna/DotNet.java [109:139]


    public static boolean isInstalled(int major, int minor, String targetMachine, IJIAuthInfo session) throws JIException, UnknownHostException {
        IJIWinReg registry = JIWinRegFactory.getSingleTon().getWinreg(session, targetMachine, true);
        JIPolicyHandle hklm = null;
        try {
            hklm = registry.winreg_OpenHKLM();
            if (major == 4 && minor >= 5) {
                return isV45PlusInstalled(minor, registry, hklm);
            } else if (major == 4 && minor == 0) {
                return isV40Installed(registry, hklm);
            } else if (major == 3 && minor == 5) {
                return isV35Installed(registry, hklm);
            } else if (major == 3 && minor == 0) {
                return isV35Installed(registry, hklm) || isV30Installed(registry, hklm);
            } else if (major == 2 && minor == 0) {
                return isV35Installed(registry, hklm) || isV30Installed(registry, hklm) || isV20Installed(registry, hklm);
            } else {
                return false;
            }
        } catch (JIException e) {
            if (e.getErrorCode() == 2) {
                // not found
                return false;
            }
            throw e;
        } finally {
            if (hklm != null) {
                registry.winreg_CloseKey(hklm);
            }
            registry.closeConnection();
        }
    }