<NME> MSBuildLogger.cs
<BEF> ADDFILE
<MSG> wire in a Microsoft.Build.Framework.ILogger to forward warnings and errors

<DFF> @@ -0,0 +1,53 @@
+#if ASPNET50
+using System;
+using System.Collections.Generic;
+using Microsoft.Framework.Logging;
+
+namespace OmniSharp.MSBuild
+{
+    public class MSBuildLogger : Microsoft.Build.Framework.ILogger
+    {
+        private readonly ILogger _logger;
+        private readonly IList<Action> _callOnShutdown;
+
+        public MSBuildLogger(ILogger logger)
+        {
+            _logger = logger;
+            _callOnShutdown = new List<Action>();
+        }
+
+        public string Parameters { get; set; }
+
+        public Microsoft.Build.Framework.LoggerVerbosity Verbosity { get; set; }
+
+        public void Initialize(Microsoft.Build.Framework.IEventSource eventSource)
+        {
+            eventSource.ErrorRaised += OnError;
+            eventSource.WarningRaised += OnWarning;
+            _callOnShutdown.Add(() =>
+            {
+                eventSource.ErrorRaised -= OnError;
+                eventSource.WarningRaised -= OnWarning;
+            });
+        }
+
+        public void Shutdown()
+        {
+            foreach (var action in _callOnShutdown)
+            {
+                action();
+            }
+        }
+
+        private void OnError(object sender, Microsoft.Build.Framework.BuildErrorEventArgs args)
+        {
+            _logger.WriteError(args.Message);
+        }
+
+        private void OnWarning(object sender, Microsoft.Build.Framework.BuildWarningEventArgs args)
+        {
+            _logger.WriteWarning(args.Message);
+        }
+    }
+}
+#endif
\ No newline at end of file

{'commit': 'diff --git a/src/OmniSharp/MSBuild/MSBuildLogger.cs b/src/OmniSharp/MSBuild/MSBuildLogger.cs\nnew file mode 100644\nindex 00000000..5f372147\n--- /dev/null\n+++ b/src/OmniSharp/MSBuild/MSBuildLogger.cs\n@@ -0,0 +1,53 @@\n+#if ASPNET50\n+using System;\n+using System.Collections.Generic;\n+using Microsoft.Framework.Logging;\n+\n+namespace OmniSharp.MSBuild\n+{\n+    public class MSBuildLogger : Microsoft.Build.Framework.ILogger\n+    {\n+        private readonly ILogger _logger;\n+        private readonly IList<Action> _callOnShutdown;\n+\n+        public MSBuildLogger(ILogger logger)\n+        {\n+            _logger = logger;\n+            _callOnShutdown = new List<Action>();\n+        }\n+\n+        public string Parameters { get; set; }\n+\n+        public Microsoft.Build.Framework.LoggerVerbosity Verbosity { get; set; }\n+\n+        public void Initialize(Microsoft.Build.Framework.IEventSource eventSource)\n+        {\n+            eventSource.ErrorRaised += OnError;\n+            eventSource.WarningRaised += OnWarning;\n+            _callOnShutdown.Add(() =>\n+            {\n+                eventSource.ErrorRaised -= OnError;\n+                eventSource.WarningRaised -= OnWarning;\n+            });\n+        }\n+\n+        public void Shutdown()\n+        {\n+            foreach (var action in _callOnShutdown)\n+            {\n+                action();\n+            }\n+        }\n+\n+        private void OnError(object sender, Microsoft.Build.Framework.BuildErrorEventArgs args)\n+        {\n+            _logger.WriteError(args.Message);\n+        }\n+\n+        private void OnWarning(object sender, Microsoft.Build.Framework.BuildWarningEventArgs args)\n+        {\n+            _logger.WriteWarning(args.Message);\n+        }\n+    }\n+}\n+#endif\n\\ No newline at end of file\ndiff --git a/src/OmniSharp/MSBuild/ProjectFile/ProjectFileInfo.cs b/src/OmniSharp/MSBuild/ProjectFile/ProjectFileInfo.cs\nindex 8e8372f5..a46f7398 100644\n--- a/src/OmniSharp/MSBuild/ProjectFile/ProjectFileInfo.cs\n+++ b/src/OmniSharp/MSBuild/ProjectFile/ProjectFileInfo.cs\n@@ -64,7 +64,7 @@ public static ProjectFileInfo Create(ILogger logger, string solutionDirectory, s\n                 var collection = new ProjectCollection(properties);\n                 var project = collection.LoadProject(projectFilePath);\n                 var projectInstance = project.CreateProjectInstance();\n-                var buildResult = projectInstance.Build("ResolveReferences", loggers: null);\n+                var buildResult = projectInstance.Build("ResolveReferences", new Microsoft.Build.Framework.ILogger[] { new MSBuildLogger(logger) });\n \n                 if (!buildResult)\n                 {\n@@ -107,6 +107,7 @@ public static ProjectFileInfo Create(ILogger logger, string solutionDirectory, s\n                 engine.DefaultToolsVersion = "4.0";\n #pragma warning restore CS0618\n                 // engine.RegisterLogger(new ConsoleLogger());\n+                engine.RegisterLogger(new MSBuildLogger(logger));\n \n                 var propertyGroup = new BuildPropertyGroup();\n                 propertyGroup.SetProperty("DesignTimeBuild", "true");\n', 'commit_subject': 'wire in a Microsoft.Build.Framework.ILogger to forward warnings and errors', 'repo_name': 'OmniSharp/omnisharp-roslyn', 'committer': {'name': 'Johannes Rieken', 'email': '993053d5d14c42b269b9f771940382a5856b46a4@microsoft.com', 'time_sec': '1429533679', 'tz_offset': '120', 'date': {'seconds': '1429533679'}}, 'commit_tree': '39abb9880ef159be6ca924a6690c28cca3c11ee4', 'commit_message': 'wire in a Microsoft.Build.Framework.ILogger to forward warnings and errors\n', 'language_name': 'Shell', 'license': 'mit', 'hunks': '@@ -0,0 +1,53 @@\n+#if ASPNET50\n+using System;\n+using System.Collections.Generic;\n+using Microsoft.Framework.Logging;\n+\n+namespace OmniSharp.MSBuild\n+{\n+    public class MSBuildLogger : Microsoft.Build.Framework.ILogger\n+    {\n+        private readonly ILogger _logger;\n+        private readonly IList<Action> _callOnShutdown;\n+\n+        public MSBuildLogger(ILogger logger)\n+        {\n+            _logger = logger;\n+            _callOnShutdown = new List<Action>();\n+        }\n+\n+        public string Parameters { get; set; }\n+\n+        public Microsoft.Build.Framework.LoggerVerbosity Verbosity { get; set; }\n+\n+        public void Initialize(Microsoft.Build.Framework.IEventSource eventSource)\n+        {\n+            eventSource.ErrorRaised += OnError;\n+            eventSource.WarningRaised += OnWarning;\n+            _callOnShutdown.Add(() =>\n+            {\n+                eventSource.ErrorRaised -= OnError;\n+                eventSource.WarningRaised -= OnWarning;\n+            });\n+        }\n+\n+        public void Shutdown()\n+        {\n+            foreach (var action in _callOnShutdown)\n+            {\n+                action();\n+            }\n+        }\n+\n+        private void OnError(object sender, Microsoft.Build.Framework.BuildErrorEventArgs args)\n+        {\n+            _logger.WriteError(args.Message);\n+        }\n+\n+        private void OnWarning(object sender, Microsoft.Build.Framework.BuildWarningEventArgs args)\n+        {\n+            _logger.WriteWarning(args.Message);\n+        }\n+    }\n+}\n+#endif\n\\ No newline at end of file\n', 'addition_count': 53, 'deletion_count': 0, 'src_file': '/dev/null', 'tgt_file': 'b/src/OmniSharp/MSBuild/MSBuildLogger.cs', 'file_extension': '.cs', 'before_file': 'ADDFILE', 'message': 'wire in a Microsoft.Build.Framework.ILogger to forward warnings and errors\n', 'author_name': 'Johannes Rieken', 'lang': 'cs'}