in plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/dotnet/discovery/dotnetFramework/DotnetPolicyRegistryVisitor.kt [24:47]
override fun visit(value: WindowsRegistryValue): Boolean {
if (value.key.parts.size == Deep + 2) {
val subKey = value.key.parts.takeLast(2)
if (
value.type == WindowsRegistryValueType.Str
&& value.text.isNotBlank()
&& subKey[0].startsWith("v")) {
val majorVersion = Version.parse(subKey[0])
if (majorVersion != Version.Empty && majorVersion.digits > 1) {
val subVersion = Version.parse(subKey[1])
if (subVersion != Version.Empty) {
val version = Version.parse("${majorVersion.major}${Version.Separator}${majorVersion.minor}${Version.Separator}${subVersion}")
// this class does not detect frameworks 4.0 and higher, ARM framework detection is not possible here
val platform = value.key.bitness.getPlatform(isArm = false)
_environment.tryGetRoot(value.key.bitness)?.let {
installRoot -> _frameworks.add(DotnetFramework(platform, version, File(installRoot, "v$version")))
}
}
}
}
}
return true
}