Project.json schema warnings don't get displayed
When building a project.json that has schema warnings (and other warnings), we are not writing the warnings to the console. This is a regression. The fix is to add all diagnostic messages to the LibraryManager, which is responsible to hold all the diagnostic messages. Fix 3021
This commit is contained in:
		
					parent
					
						
							
								e68a49e1d5
							
						
					
				
			
			
				commit
				
					
						ecdb10591c
					
				
			
		
					 5 changed files with 63 additions and 2 deletions
				
			
		| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					// Copyright (c) .NET Foundation and contributors. All rights reserved.
 | 
				
			||||||
 | 
					// Licensed under the MIT license. See LICENSE file in the project root for full license information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace TestLibrary
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public static class Helper
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public static void SayHi()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Console.WriteLine("Hello there!");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "version": "1.0.0-*",
 | 
				
			||||||
 | 
					  "compilationOptions": {
 | 
				
			||||||
 | 
					    "xmlDoc": true
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "packInclude": {},
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "NETStandard.Library": "1.5.0-rc2-24027"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "frameworks": {
 | 
				
			||||||
 | 
					    "netstandard1.5": {}
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -355,8 +355,14 @@ namespace Microsoft.DotNet.ProjectModel
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            List<DiagnosticMessage> allDiagnostics = new List<DiagnosticMessage>(diagnostics);
 | 
				
			||||||
 | 
					            if (Project != null)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                allDiagnostics.AddRange(Project.Diagnostics);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Create a library manager
 | 
					            // Create a library manager
 | 
				
			||||||
            var libraryManager = new LibraryManager(libraries.Values.ToList(), diagnostics, Project?.ProjectFilePath);
 | 
					            var libraryManager = new LibraryManager(libraries.Values.ToList(), allDiagnostics, Project?.ProjectFilePath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return new ProjectContext(
 | 
					            return new ProjectContext(
 | 
				
			||||||
                globalSettings,
 | 
					                globalSettings,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								test/dotnet-build.Tests/BuildWarningsTests.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								test/dotnet-build.Tests/BuildWarningsTests.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					// Copyright (c) .NET Foundation and contributors. All rights reserved.
 | 
				
			||||||
 | 
					// Licensed under the MIT license. See LICENSE file in the project root for full license information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using FluentAssertions;
 | 
				
			||||||
 | 
					using Microsoft.DotNet.Tools.Test.Utilities;
 | 
				
			||||||
 | 
					using Xunit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Microsoft.DotNet.Tools.Builder.Tests
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class BuildWarningsTests : TestBase
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void HavingDeprecatedProjectFileProducesWarning()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            var testInstance = TestAssetsManager.CreateTestInstance("TestLibraryWithDeprecatedProjectFile").WithLockFiles();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            new BuildCommand(testInstance.TestRoot)
 | 
				
			||||||
 | 
					                .ExecuteWithCapturedOutput()
 | 
				
			||||||
 | 
					                .Should()
 | 
				
			||||||
 | 
					                .Pass()
 | 
				
			||||||
 | 
					                .And
 | 
				
			||||||
 | 
					                .HaveStdErrContaining("DOTNET1015: The 'compilationOptions' option is deprecated. Use 'buildOptions' instead.")
 | 
				
			||||||
 | 
					                .And
 | 
				
			||||||
 | 
					                .HaveStdErrContaining("DOTNET1015: The 'packInclude' option is deprecated. Use 'files' in 'packOptions' instead.");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in a new issue