private string getMSBuildPath() { string buildExecutable = null; var lastVersion = new Version(); var system = _fsProxy.GetSpecialFolder(Environment.SpecialFolder.System); if (!_fsProxy.DirectoryExists(system)) { return(buildExecutable); } var frameworkPath = Path.Combine(Path.GetDirectoryName(system), @"Microsoft.NET\Framework"); var frameworks = _fsProxy.GetFoldersFrom(frameworkPath, "*"); if (frameworks != null) { foreach (var framework in frameworks) { var version = getFrameworkVersion(framework); if (version > lastVersion) { var file = Path.Combine(framework, "MSBuild.exe"); if (_fsProxy.FileExists(file)) { lastVersion = version; buildExecutable = file; } } } } return(buildExecutable); }