Make restore performed by run command default to nologo and quiet.

This commit changes the run command such that it will now be `/nologo` and
`/verbosity:quiet` (by default) for the restore operation even if a target
framework is specified.

When a target framework is specified, a separate restore operation is performed
that does not pass `/nologo` and the default verbosity is used.  The fix is to
ensure that the arguments used for the restore operation match those that are
used for the build operation.

Fixes #8118.
This commit is contained in:
Peter Huene 2017-12-12 10:35:40 -08:00
parent d38c6000c1
commit dcc99d6e33
No known key found for this signature in database
GPG key ID: E1D265D820213D6A
2 changed files with 26 additions and 10 deletions

View file

@ -146,17 +146,16 @@ namespace Microsoft.DotNet.Tools.Run
private void EnsureProjectIsBuilt() private void EnsureProjectIsBuilt()
{ {
List<string> buildArgs = new List<string>(); var restoreArgs = GetRestoreArguments();
buildArgs.Add(Project);
buildArgs.Add("/nologo");
buildArgs.Add("/verbosity:quiet");
buildArgs.AddRange(RestoreArgs);
var buildResult = var buildResult =
new RestoringCommand(buildArgs, RestoreArgs, new [] { Project }, NoRestore).Execute(); new RestoringCommand(
restoreArgs.Prepend(Project),
restoreArgs,
new [] { Project },
NoRestore
).Execute();
if (buildResult != 0) if (buildResult != 0)
{ {
Reporter.Error.WriteLine(); Reporter.Error.WriteLine();
@ -164,6 +163,23 @@ namespace Microsoft.DotNet.Tools.Run
} }
} }
private List<string> GetRestoreArguments()
{
List<string> args = new List<string>()
{
"/nologo"
};
if (!RestoreArgs.Any(a => a.StartsWith("/verbosity:")))
{
args.Add("/verbosity:quiet");
}
args.AddRange(RestoreArgs);
return args;
}
private ICommand GetRunCommand() private ICommand GetRunCommand()
{ {
var globalProperties = new Dictionary<string, string> var globalProperties = new Dictionary<string, string>

View file

@ -152,7 +152,7 @@ namespace Microsoft.DotNet.Cli.Run.Tests
.WithWorkingDirectory(testProjectDirectory) .WithWorkingDirectory(testProjectDirectory)
.ExecuteWithCapturedOutput("--framework netcoreapp2.1") .ExecuteWithCapturedOutput("--framework netcoreapp2.1")
.Should().Pass() .Should().Pass()
.And.HaveStdOutContaining("Hello World!"); .And.HaveStdOut("Hello World!");
} }
[Fact] [Fact]