public bool BuildTargetGaugeProject() { var projectFullPath = GetProjectFullPath(); var gaugeBinDir = Utils.GetGaugeBinDir(); if (IsRunningOnMono() || !string.IsNullOrEmpty(Utils.TryReadEnvValue("GAUGE_CSHARP_BUILD_FAKE"))) { try { Gauge.FSharpHelper.Builder.buildProject(projectFullPath, gaugeBinDir); } catch (Exception ex) { Logger.Error(ex, "C# Project build failed {0}", ex.Message); return(false); } return(true); } else { var consoleLogger = new ConsoleLogger(LoggerVerbosity.Quiet); try { Logger.Debug("Create Gauge Bin Directory: {0}", gaugeBinDir); Directory.CreateDirectory(gaugeBinDir); } catch (IOException ex) { Logger.Fatal(ex, "Unable to create Gauge Bin Directory in {0}", gaugeBinDir); throw; } Logger.Info("Building Project: {0}", projectFullPath); var pc = new ProjectCollection(); var globalProperty = new Dictionary <string, string> { { "Configuration", "Release" }, { "Platform", "Any CPU" }, { "OutputPath", gaugeBinDir } }; var buildRequestData = new BuildRequestData(projectFullPath, globalProperty, null, new[] { "Build" }, null); var errorCodeAggregator = new ErrorCodeAggregator(); var buildParameters = new BuildParameters(pc) { Loggers = new ILogger[] { consoleLogger, errorCodeAggregator } }; var buildResult = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequestData); if (errorCodeAggregator.ErrorCodes.Contains("CS1001")) { Logger.Error("You have chosen an invalid folder name to initialize a Gauge project."); Logger.Error("Please choose a project name that complies with C# Project naming conventions."); } Logger.Info(buildResult.OverallResult); return(buildResult.OverallResult == BuildResultCode.Success); } }
public bool BuildTargetGaugeProject() { var consoleLogger = new ConsoleLogger(LoggerVerbosity.Quiet); var solutionFileList = Directory.GetFiles(Utils.GaugeProjectRoot, "*.sln"); if (!solutionFileList.Any()) { throw new NotAValidGaugeProjectException(); } var solutionFullPath = solutionFileList.First(); var gaugeBinDir = Utils.GetGaugeBinDir(); try { Logger.Debug("Create Gauge Bin Directory: {0}", gaugeBinDir); Directory.CreateDirectory(gaugeBinDir); } catch (IOException ex) { Logger.Fatal(ex, "Unable to create Gauge Bin Directory in {0}", gaugeBinDir); throw; } Logger.Info("Building Project: {0}", solutionFullPath); var pc = new ProjectCollection(); var globalProperty = new Dictionary <string, string> { { "Configuration", "Release" }, { "Platform", "Any CPU" }, { "OutputPath", gaugeBinDir } }; var buildRequestData = new BuildRequestData(solutionFullPath, globalProperty, null, new[] { "Build" }, null); var errorCodeAggregator = new ErrorCodeAggregator(); var buildParameters = new BuildParameters(pc) { Loggers = new ILogger[] { consoleLogger, errorCodeAggregator } }; var buildResult = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequestData); if (errorCodeAggregator.ErrorCodes.Contains("CS1001")) { Logger.Error("You have chosen an invalid folder name to initialize a Gauge project."); Logger.Error("Please choose a project name that complies with C# Project naming conventions."); } Logger.Info(buildResult.OverallResult); return(buildResult.OverallResult == BuildResultCode.Success); }