private NETCoreSdkResolver.Result ResolveNETCoreSdkDirectory(SdkResolverContext context, string dotnetExeDir) { string globalJsonStartDir = Path.GetDirectoryName(context.SolutionFilePath ?? context.ProjectFilePath); var result = NETCoreSdkResolver.ResolveSdk(dotnetExeDir, globalJsonStartDir, _vsSettings.DisallowPrerelease()); string mostCompatible = result.ResolvedSdkDirectory; if (result.ResolvedSdkDirectory == null && result.GlobalJsonPath != null && context.IsRunningInVisualStudio) { result.FailedToResolveSDKSpecifiedInGlobalJson = true; // We need the SDK to be version 5 or higher to ensure that we generate a build error when we fail to resolve the SDK specified by global.json mostCompatible = GetMostCompatibleSdk(dotnetExeDir, context.MSBuildVersion, 5); } else if (result.ResolvedSdkDirectory != null && result.GlobalJsonPath == null && context.MSBuildVersion < GetMinimumMSBuildVersion(result.ResolvedSdkDirectory)) { mostCompatible = GetMostCompatibleSdk(dotnetExeDir, context.MSBuildVersion); } if (mostCompatible != null) { result.ResolvedSdkDirectory = mostCompatible; } return(result); }
private NETCoreSdkResolver.Result ResolveNETCoreSdkDirectory(SdkResolverContext context, string dotnetExeDir) { string globalJsonStartDir = Path.GetDirectoryName(context.SolutionFilePath ?? context.ProjectFilePath); var result = NETCoreSdkResolver.ResolveSdk(dotnetExeDir, globalJsonStartDir, _vsSettings.DisallowPrerelease()); if (result.ResolvedSdkDirectory != null && result.GlobalJsonPath == null && context.MSBuildVersion < GetMinimumMSBuildVersion(result.ResolvedSdkDirectory)) { string mostCompatible = GetMostCompatibleSdk(dotnetExeDir, context.MSBuildVersion); if (mostCompatible != null) { result.ResolvedSdkDirectory = mostCompatible; } } return(result); }