public void HandleBuildEvent(Microsoft.Build.Framework.BuildEventArgs e) { TaskStartedEventArgs start = e as TaskStartedEventArgs; if (start != null && string.Equals(start.TaskName, desc.taskname, StringComparison.OrdinalIgnoreCase)) { insideTask = true; if (baseFilter == null) { IMSBuildLoggerFilter baseLoggerFilter = (IMSBuildLoggerFilter)desc.addIn.CreateObject(desc.classname); if (baseLoggerFilter != null) { baseFilter = baseLoggerFilter.CreateFilter(context, nextFilter) ?? nextFilter; } else { baseFilter = nextFilter; } } } if (insideTask) { baseFilter.HandleBuildEvent(e); } else { nextFilter.HandleBuildEvent(e); } if (insideTask && e is TaskFinishedEventArgs) { insideTask = false; } }
/* * Warning MSB3644: The reference assemblies for framework * ".NETFramework,Version=v4.0,Profile=Client" were not found. To resolve this, * install the SDK or Targeting Pack for this framework version or retarget * your application to a version of the framework for which you have the SDK * or Targeting Pack installed. Note that assemblies will be resolved from * the Global Assembly Cache (GAC) and will be used in place of reference assemblies. * Therefore your assembly may not be correctly targeted for the framework you intend. */ public IMSBuildChainedLoggerFilter CreateFilter(IMSBuildLoggerContext context, IMSBuildChainedLoggerFilter nextFilter) { if (context.Project.MinimumSolutionVersion >= SolutionFormatVersion.VS2010) { return new TargetingPackWarningWorkaroundChainEntry(nextFilter); } else { return nextFilter; } }
/* * Warning MSB3644: The reference assemblies for framework * ".NETFramework,Version=v4.0,Profile=Client" were not found. To resolve this, * install the SDK or Targeting Pack for this framework version or retarget * your application to a version of the framework for which you have the SDK * or Targeting Pack installed. Note that assemblies will be resolved from * the Global Assembly Cache (GAC) and will be used in place of reference assemblies. * Therefore your assembly may not be correctly targeted for the framework you intend. */ public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { if (engine.ProjectMinimumSolutionVersion >= Solution.SolutionVersionVS2010) { return new TargetingPackWarningWorkaroundChainEntry(nextFilter); } else { return nextFilter; } }
public void RunBuildJob(BuildJob job, IMSBuildChainedLoggerFilter loggerChain, Action<bool> reportWhenDone, CancellationToken cancellationToken) { if (job == null) throw new ArgumentNullException("job"); if (loggerChain == null) throw new ArgumentNullException("loggerChain"); BuildWorker worker = GetFreeWorker(); worker.RunJob(job, loggerChain, reportWhenDone, cancellationToken); }
public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { if (nextFilter == null) throw new ArgumentNullException("nextFilter"); // ensure the engine gets notified about start/end of this task engine.InterestingTasks.Add(taskname); // Create a Filter that tracks whether the task is active. // If active, forward to 'baseFilter', otherwise forward to 'nextFilter'. return new TaskBoundLoggerFilter(this, engine, nextFilter); }
/* * Warning MSB3644: The reference assemblies for framework * ".NETFramework,Version=v4.0,Profile=Client" were not found. To resolve this, * install the SDK or Targeting Pack for this framework version or retarget * your application to a version of the framework for which you have the SDK * or Targeting Pack installed. Note that assemblies will be resolved from * the Global Assembly Cache (GAC) and will be used in place of reference assemblies. * Therefore your assembly may not be correctly targeted for the framework you intend. */ public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { if (engine.ProjectMinimumSolutionVersion >= Solution.SolutionVersionVS2010) { return(new TargetingPackWarningWorkaroundChainEntry(nextFilter)); } else { return(nextFilter); } }
public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { if (nextFilter == null) { throw new ArgumentNullException("nextFilter"); } // ensure the engine gets notified about start/end of this task engine.InterestingTasks.Add(taskname); // Create a Filter that tracks whether the task is active. // If active, forward to 'baseFilter', otherwise forward to 'nextFilter'. return(new TaskBoundLoggerFilter(this, engine, nextFilter)); }
public void RunBuildJob(BuildJob job, IMSBuildChainedLoggerFilter loggerChain, Action <bool> reportWhenDone, CancellationToken cancellationToken) { if (job == null) { throw new ArgumentNullException("job"); } if (loggerChain == null) { throw new ArgumentNullException("loggerChain"); } BuildWorker worker = GetFreeWorker(); worker.RunJob(job, loggerChain, reportWhenDone, cancellationToken); }
public void RunJob(BuildJob job, IMSBuildChainedLoggerFilter loggerChain, Action <bool> reportWhenDone, CancellationToken cancellationToken) { Debug.Assert(loggerChain != null); this.loggerChain = loggerChain; this.reportWhenDone = reportWhenDone; try { process.Writer.Write("StartBuild"); job.WriteTo(process.Writer); this.cancellationRegistration = cancellationToken.Register(OnCancel); } catch (IOException ex) { // "Pipe is broken" loggerChain.HandleError(new BuildError(null, 0, 0, null, "Error talking to build worker: " + ex.Message)); BuildDone(false); } }
public void RunJob(BuildJob job, IMSBuildChainedLoggerFilter loggerChain, Action<bool> reportWhenDone, CancellationToken cancellationToken) { Debug.Assert(loggerChain != null); this.loggerChain = loggerChain; this.reportWhenDone = reportWhenDone; try { process.Writer.Write("StartBuild"); job.WriteTo(process.Writer); this.cancellationRegistration = cancellationToken.Register(OnCancel); } catch (IOException ex) { // "Pipe is broken" loggerChain.HandleError(new BuildError(null, 0, 0, null, "Error talking to build worker: " + ex.Message)); BuildDone(false); } }
internal Task <bool> RunBuildAsync(CancellationToken cancellationToken) { Dictionary <string, string> globalProperties = new Dictionary <string, string>(); globalProperties.AddRange(SD.MSBuildEngine.GlobalBuildProperties); foreach (KeyValuePair <string, string> pair in options.Properties) { LoggingService.Debug("Setting property " + pair.Key + " to '" + pair.Value + "'"); globalProperties[pair.Key] = pair.Value; } globalProperties["Configuration"] = options.Configuration; if (options.Platform == "Any CPU") { globalProperties["Platform"] = "AnyCPU"; } else { globalProperties["Platform"] = options.Platform; } InterestingTasks.AddRange(parentBuildEngine.CompileTaskNames); loggers.Add(new SharpDevelopLogger(this)); if (options.BuildOutputVerbosity == BuildOutputVerbosity.Diagnostic) { this.ReportMessageEvents = true; this.ReportAllTaskFinishedEvents = true; this.ReportAllTaskStartedEvents = true; this.ReportTargetFinishedEvents = true; this.ReportTargetStartedEvents = true; this.ReportUnknownEvents = true; loggers.Add(new SDConsoleLogger(feedbackSink, LoggerVerbosity.Diagnostic)); globalProperties["MSBuildTargetsVerbose"] = "true"; } //loggers.Add(new BuildLogFileLogger(project.FileName + ".log", LoggerVerbosity.Diagnostic)); foreach (IMSBuildAdditionalLogger loggerProvider in parentBuildEngine.AdditionalMSBuildLoggers) { loggers.Add(loggerProvider.CreateLogger(this)); } loggerChain = new EndOfChain(this); foreach (IMSBuildLoggerFilter loggerFilter in parentBuildEngine.MSBuildLoggerFilters) { loggerChain = loggerFilter.CreateFilter(this, loggerChain) ?? loggerChain; } WriteAdditionalTargetsToTempFile(globalProperties); BuildJob job = new BuildJob(); job.ProjectFileName = projectFileName; job.Target = options.Target.TargetName; // First remove the flags for the controllable events. job.EventMask = EventTypes.All & ~ControllableEvents; // Add back active controllable events. if (ReportMessageEvents) { job.EventMask |= EventTypes.Message; } if (ReportTargetStartedEvents) { job.EventMask |= EventTypes.TargetStarted; } if (ReportTargetFinishedEvents) { job.EventMask |= EventTypes.TargetFinished; } if (ReportAllTaskStartedEvents) { job.EventMask |= EventTypes.TaskStarted; } if (ReportAllTaskFinishedEvents) { job.EventMask |= EventTypes.TaskFinished; } if (ReportUnknownEvents) { job.EventMask |= EventTypes.Unknown; } if (!(ReportAllTaskStartedEvents && ReportAllTaskFinishedEvents)) { // just some TaskStarted & TaskFinished events should be reported job.InterestingTaskNames.AddRange(InterestingTasks); } foreach (var pair in globalProperties) { job.Properties.Add(pair.Key, pair.Value); } foreach (ILogger logger in loggers) { logger.Initialize(eventSource); } tcs = new TaskCompletionSource <bool>(); if (projectMinimumSolutionVersion <= SolutionFormatVersion.VS2008) { if (DotnetDetection.IsDotnet35SP1Installed()) { BuildWorkerManager.MSBuild35.RunBuildJob(job, loggerChain, OnDone, cancellationToken); } else { loggerChain.HandleError(new BuildError(job.ProjectFileName, ".NET 3.5 SP1 is required to build this project.")); tcs.SetResult(false); } } else { BuildWorkerManager.MSBuild40.RunBuildJob(job, loggerChain, OnDone, cancellationToken); } return(tcs.Task); }
public TaskBoundLoggerFilter(TaskBoundLoggerFilterDescriptor desc, IMSBuildLoggerContext context, IMSBuildChainedLoggerFilter nextFilter) { this.desc = desc; this.context = context; this.nextFilter = nextFilter; }
public TargetingPackWarningWorkaroundChainEntry(IMSBuildChainedLoggerFilter nextFilter) { this.nextFilter = nextFilter; }
/* * Warning MSB3644: The reference assemblies for framework * ".NETFramework,Version=v4.0,Profile=Client" were not found. To resolve this, * install the SDK or Targeting Pack for this framework version or retarget * your application to a version of the framework for which you have the SDK * or Targeting Pack installed. Note that assemblies will be resolved from * the Global Assembly Cache (GAC) and will be used in place of reference assemblies. * Therefore your assembly may not be correctly targeted for the framework you intend. */ public IMSBuildChainedLoggerFilter CreateFilter(IMSBuildLoggerContext context, IMSBuildChainedLoggerFilter nextFilter) { if (context.Project.MinimumSolutionVersion >= SolutionFormatVersion.VS2010) { return(new TargetingPackWarningWorkaroundChainEntry(nextFilter)); } else { return(nextFilter); } }
public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { return new VbcLoggerImpl(nextFilter); }
void StartBuild() { Dictionary<string, string> globalProperties = new Dictionary<string, string>(); MSBuildBasedProject.InitializeMSBuildProjectProperties(globalProperties); foreach (KeyValuePair<string, string> pair in options.Properties) { LoggingService.Debug("Setting property " + pair.Key + " to '" + pair.Value + "'"); globalProperties[pair.Key] = pair.Value; } globalProperties["Configuration"] = options.Configuration; if (options.Platform == "Any CPU") globalProperties["Platform"] = "AnyCPU"; else globalProperties["Platform"] = options.Platform; InterestingTasks.AddRange(MSBuildEngine.CompileTaskNames); loggers.Add(new SharpDevelopLogger(this)); if (options.BuildOutputVerbosity == BuildOutputVerbosity.Diagnostic) { this.ReportMessageEvents = true; this.ReportAllTaskFinishedEvents = true; this.ReportAllTaskStartedEvents = true; this.ReportTargetFinishedEvents = true; this.ReportTargetStartedEvents = true; this.ReportUnknownEvents = true; loggers.Add(new SDConsoleLogger(feedbackSink, LoggerVerbosity.Diagnostic)); globalProperties["MSBuildTargetsVerbose"] = "true"; } //loggers.Add(new BuildLogFileLogger(project.FileName + ".log", LoggerVerbosity.Diagnostic)); foreach (IMSBuildAdditionalLogger loggerProvider in MSBuildEngine.AdditionalMSBuildLoggers) { loggers.Add(loggerProvider.CreateLogger(this)); } loggerChain = new EndOfChain(this); foreach (IMSBuildLoggerFilter loggerFilter in MSBuildEngine.MSBuildLoggerFilters) { loggerChain = loggerFilter.CreateFilter(this, loggerChain) ?? loggerChain; } WriteAdditionalTargetsToTempFile(globalProperties); BuildJob job = new BuildJob(); job.ProjectFileName = projectFileName; job.Target = options.Target.TargetName; // First remove the flags for the controllable events. job.EventMask = EventTypes.All & ~ControllableEvents; // Add back active controllable events. if (ReportMessageEvents) job.EventMask |= EventTypes.Message; if (ReportTargetStartedEvents) job.EventMask |= EventTypes.TargetStarted; if (ReportTargetFinishedEvents) job.EventMask |= EventTypes.TargetFinished; if (ReportAllTaskStartedEvents) job.EventMask |= EventTypes.TaskStarted; if (ReportAllTaskFinishedEvents) job.EventMask |= EventTypes.TaskFinished; if (ReportUnknownEvents) job.EventMask |= EventTypes.Unknown; if (!(ReportAllTaskStartedEvents && ReportAllTaskFinishedEvents)) { // just some TaskStarted & TaskFinished events should be reported job.InterestingTaskNames.AddRange(InterestingTasks); } foreach (var pair in globalProperties) { job.Properties.Add(pair.Key, pair.Value); } foreach (ILogger logger in loggers) { logger.Initialize(eventSource); } if (projectMinimumSolutionVersion <= Solution.SolutionVersionVS2008) { if (DotnetDetection.IsDotnet35SP1Installed()) { BuildWorkerManager.MSBuild35.RunBuildJob(job, loggerChain, OnDone, feedbackSink.ProgressMonitor.CancellationToken); } else { loggerChain.HandleError(new BuildError(job.ProjectFileName, ".NET 3.5 SP1 is required to build this project.")); OnDone(false); } } else { BuildWorkerManager.MSBuild40.RunBuildJob(job, loggerChain, OnDone, feedbackSink.ProgressMonitor.CancellationToken); } }
public VbcLoggerImpl(IMSBuildChainedLoggerFilter nextFilter) { this.nextFilter = nextFilter; }
public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { return(new VbcLoggerImpl(nextFilter)); }
public IMSBuildChainedLoggerFilter CreateFilter(IMSBuildLoggerContext context, IMSBuildChainedLoggerFilter nextFilter) { context.OutputTextLine(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.RunningFxCopOn} " + context.ProjectFileName.GetFileNameWithoutExtension())); return new FxCopLoggerImpl(context, nextFilter); }
public TaskBoundLoggerFilter(TaskBoundLoggerFilterDescriptor desc, MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { this.desc = desc; this.engine = engine; this.nextFilter = nextFilter; }
public FxCopLoggerImpl(MSBuildEngine engineWorker, IMSBuildChainedLoggerFilter nextChainElement) { this.engineWorker = engineWorker; this.nextChainElement = nextChainElement; }
public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { engine.OutputTextLine(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.RunningFxCopOn} " + Path.GetFileNameWithoutExtension(engine.ProjectFileName))); return new FxCopLoggerImpl(engine, nextFilter); }
void StartBuild() { Dictionary <string, string> globalProperties = new Dictionary <string, string>(); MSBuildBasedProject.InitializeMSBuildProjectProperties(globalProperties); foreach (KeyValuePair <string, string> pair in options.Properties) { LoggingService.Debug("Setting property " + pair.Key + " to '" + pair.Value + "'"); globalProperties[pair.Key] = pair.Value; } globalProperties["Configuration"] = options.Configuration; if (options.Platform == "Any CPU") { globalProperties["Platform"] = "AnyCPU"; } else { globalProperties["Platform"] = options.Platform; } InterestingTasks.AddRange(MSBuildEngine.CompileTaskNames); loggers.Add(new SharpDevelopLogger(this)); if (options.BuildOutputVerbosity == BuildOutputVerbosity.Diagnostic) { this.ReportMessageEvents = true; this.ReportAllTaskFinishedEvents = true; this.ReportAllTaskStartedEvents = true; this.ReportTargetFinishedEvents = true; this.ReportTargetStartedEvents = true; this.ReportUnknownEvents = true; loggers.Add(new SDConsoleLogger(feedbackSink, LoggerVerbosity.Diagnostic)); globalProperties["MSBuildTargetsVerbose"] = "true"; } //loggers.Add(new BuildLogFileLogger(project.FileName + ".log", LoggerVerbosity.Diagnostic)); foreach (IMSBuildAdditionalLogger loggerProvider in MSBuildEngine.AdditionalMSBuildLoggers) { loggers.Add(loggerProvider.CreateLogger(this)); } loggerChain = new EndOfChain(this); foreach (IMSBuildLoggerFilter loggerFilter in MSBuildEngine.MSBuildLoggerFilters) { loggerChain = loggerFilter.CreateFilter(this, loggerChain) ?? loggerChain; } WriteAdditionalTargetsToTempFile(globalProperties); BuildJob job = new BuildJob(); job.ProjectFileName = projectFileName; job.Target = options.Target.TargetName; // First remove the flags for the controllable events. job.EventMask = EventTypes.All & ~ControllableEvents; // Add back active controllable events. if (ReportMessageEvents) { job.EventMask |= EventTypes.Message; } if (ReportTargetStartedEvents) { job.EventMask |= EventTypes.TargetStarted; } if (ReportTargetFinishedEvents) { job.EventMask |= EventTypes.TargetFinished; } if (ReportAllTaskStartedEvents) { job.EventMask |= EventTypes.TaskStarted; } if (ReportAllTaskFinishedEvents) { job.EventMask |= EventTypes.TaskFinished; } if (ReportUnknownEvents) { job.EventMask |= EventTypes.Unknown; } if (!(ReportAllTaskStartedEvents && ReportAllTaskFinishedEvents)) { // just some TaskStarted & TaskFinished events should be reported job.InterestingTaskNames.AddRange(InterestingTasks); } foreach (var pair in globalProperties) { job.Properties.Add(pair.Key, pair.Value); } foreach (ILogger logger in loggers) { logger.Initialize(eventSource); } if (projectMinimumSolutionVersion <= Solution.SolutionVersionVS2008) { BuildWorkerManager.MSBuild35.RunBuildJob(job, loggerChain, OnDone, feedbackSink.ProgressMonitor.CancellationToken); } else { BuildWorkerManager.MSBuild40.RunBuildJob(job, loggerChain, OnDone, feedbackSink.ProgressMonitor.CancellationToken); } }
public FxCopLoggerImpl(IMSBuildLoggerContext context, IMSBuildChainedLoggerFilter nextChainElement) { this.context = context; this.nextChainElement = nextChainElement; }
public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { engine.OutputTextLine(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.RunningFxCopOn} " + Path.GetFileNameWithoutExtension(engine.ProjectFileName))); return(new FxCopLoggerImpl(engine, nextFilter)); }
public VbcLoggerImpl(IMSBuildChainedLoggerFilter nextFilter) { this.nextFilter = nextFilter; }
public TaskBoundLoggerFilter(TaskBoundLoggerFilterDescriptor desc, IMSBuildLoggerContext context, IMSBuildChainedLoggerFilter nextFilter) { this.desc = desc; this.context = context; this.nextFilter = nextFilter; }
public void HandleBuildEvent(Microsoft.Build.Framework.BuildEventArgs e) { TaskStartedEventArgs start = e as TaskStartedEventArgs; if (start != null && string.Equals(start.TaskName, desc.taskname, StringComparison.OrdinalIgnoreCase)) { insideTask = true; if (baseFilter == null) { IMSBuildLoggerFilter baseLoggerFilter = (IMSBuildLoggerFilter)desc.addIn.CreateObject(desc.classname); if (baseLoggerFilter != null) baseFilter = baseLoggerFilter.CreateFilter(engine, nextFilter) ?? nextFilter; else baseFilter = nextFilter; } } if (insideTask) baseFilter.HandleBuildEvent(e); else nextFilter.HandleBuildEvent(e); if (insideTask && e is TaskFinishedEventArgs) { insideTask = false; } }
public FxCopLoggerImpl(IMSBuildLoggerContext context, IMSBuildChainedLoggerFilter nextChainElement) { this.context = context; this.nextChainElement = nextChainElement; }
public TaskBoundLoggerFilter(TaskBoundLoggerFilterDescriptor desc, MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter) { this.desc = desc; this.engine = engine; this.nextFilter = nextFilter; }
public TargetingPackWarningWorkaroundChainEntry(IMSBuildChainedLoggerFilter nextFilter) { this.nextFilter = nextFilter; }
public IMSBuildChainedLoggerFilter CreateFilter(IMSBuildLoggerContext context, IMSBuildChainedLoggerFilter nextFilter) { context.OutputTextLine(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.RunningFxCopOn} " + context.ProjectFileName.GetFileNameWithoutExtension())); return(new FxCopLoggerImpl(context, nextFilter)); }
public FxCopLoggerImpl(MSBuildEngine engineWorker, IMSBuildChainedLoggerFilter nextChainElement) { this.engineWorker = engineWorker; this.nextChainElement = nextChainElement; }