diff --git a/Microsoft.DotNet.Cli.sln b/Microsoft.DotNet.Cli.sln
index 6e03ba1ff..c9bddd009 100644
--- a/Microsoft.DotNet.Cli.sln
+++ b/Microsoft.DotNet.Cli.sln
@@ -1,4 +1,4 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
+Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2020
MinimumVisualStudioVersion = 10.0.40219.1
@@ -236,6 +236,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Tools.Test
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_launcher", "src\tool_launcher\tool_launcher.csproj", "{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dotnet-install-tool.Tests", "test\dotnet-install-tool.Tests\dotnet-install-tool.Tests.csproj", "{8FE9D802-57F3-493B-9E14-72DF905E3838}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -1692,6 +1694,30 @@ Global
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x64.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x86.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x64.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x86.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x64.ActiveCfg = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x64.Build.0 = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x86.ActiveCfg = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x86.Build.0 = Release|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x86.ActiveCfg = Debug|Any CPU
+ {8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x86.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1767,6 +1793,7 @@ Global
{91BFE800-1624-4A58-A1CE-339705A8FFD0} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{E442F4C1-08DB-470F-B9A6-197444CD0295} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
+ {8FE9D802-57F3-493B-9E14-72DF905E3838} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B526D2CE-EE2D-4AD4-93EF-1867D90FF1F5}
diff --git a/src/dotnet/CommonLocalizableStrings.resx b/src/dotnet/CommonLocalizableStrings.resx
index 8a236f571..7a5b6d6f1 100644
--- a/src/dotnet/CommonLocalizableStrings.resx
+++ b/src/dotnet/CommonLocalizableStrings.resx
@@ -520,28 +520,26 @@
Does not do an implicit restore when executing the command.
-
- Cannot be null or whitespace.
-
-
- Contains one or more invalid characters: {0}
-
NuGet configuration file {0} does not exist.
-
- The tool's settings file has non "dotnet" as runner.
-
-
- The tool's settings file has more than one command defined.
-
-
- The tool's settings file contains error.
-{0}
-
- The tool's settings file is invalid xml.
-{0}
+ Invalid XML: {0}
+
+
+ Tool defines a command with a missing name setting.
+
+
+ Command '{0}' is missing an entry point setting.
+
+
+ Command '{0}' contains one or more of the following invalid characters: {1}.
+
+
+ More than one command is defined for the tool.
+
+
+ Command '{0}' uses unsupported runner '{1}'."
Cannot find the tools executable path. Please ensure {0} is added to your PATH.
diff --git a/src/dotnet/ToolPackage/IProjectRestorer.cs b/src/dotnet/ToolPackage/IProjectRestorer.cs
index a20a2c18f..ef68a78a0 100644
--- a/src/dotnet/ToolPackage/IProjectRestorer.cs
+++ b/src/dotnet/ToolPackage/IProjectRestorer.cs
@@ -1,6 +1,7 @@
// 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.Collections.Generic;
using Microsoft.Extensions.EnvironmentAbstractions;
namespace Microsoft.DotNet.ToolPackage
@@ -11,6 +12,7 @@ namespace Microsoft.DotNet.ToolPackage
FilePath projectPath,
DirectoryPath assetJsonOutput,
FilePath? nugetconfig,
- string source);
+ string source,
+ string verbosity);
}
}
diff --git a/src/dotnet/ToolPackage/IToolPackageObtainer.cs b/src/dotnet/ToolPackage/IToolPackageObtainer.cs
index e48694f9e..5bc95c669 100644
--- a/src/dotnet/ToolPackage/IToolPackageObtainer.cs
+++ b/src/dotnet/ToolPackage/IToolPackageObtainer.cs
@@ -1,6 +1,7 @@
// 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.Collections.Generic;
using Microsoft.Extensions.EnvironmentAbstractions;
namespace Microsoft.DotNet.ToolPackage
@@ -12,6 +13,7 @@ namespace Microsoft.DotNet.ToolPackage
string packageVersion = null,
FilePath? nugetconfig = null,
string targetframework = null,
- string source = null);
+ string source = null,
+ string verbosity = null);
}
}
diff --git a/src/dotnet/ToolPackage/ToolConfiguration.cs b/src/dotnet/ToolPackage/ToolConfiguration.cs
index 83862c38b..286d7db68 100644
--- a/src/dotnet/ToolPackage/ToolConfiguration.cs
+++ b/src/dotnet/ToolPackage/ToolConfiguration.cs
@@ -3,6 +3,7 @@
using System;
using System.IO;
+using System.Linq;
using Microsoft.DotNet.Tools;
namespace Microsoft.DotNet.ToolPackage
@@ -15,33 +16,36 @@ namespace Microsoft.DotNet.ToolPackage
{
if (string.IsNullOrWhiteSpace(commandName))
{
- throw new ArgumentNullException(nameof(commandName), CommonLocalizableStrings.CannotBeNullOrWhitespace);
+ throw new ToolConfigurationException(CommonLocalizableStrings.ToolSettingsMissingCommandName);
}
- EnsureNoInvalidFilenameCharacters(commandName, nameof(toolAssemblyEntryPoint));
-
if (string.IsNullOrWhiteSpace(toolAssemblyEntryPoint))
{
- throw new ArgumentNullException(nameof(toolAssemblyEntryPoint), CommonLocalizableStrings.CannotBeNullOrWhitespace);
+ throw new ToolConfigurationException(
+ string.Format(
+ CommonLocalizableStrings.ToolSettingsMissingEntryPoint,
+ commandName));
}
+ EnsureNoInvalidFilenameCharacters(commandName);
+
CommandName = commandName;
ToolAssemblyEntryPoint = toolAssemblyEntryPoint;
}
- private void EnsureNoInvalidFilenameCharacters(string commandName, string nameOfParam)
+ private void EnsureNoInvalidFilenameCharacters(string commandName)
{
- char[] invalidCharactors = Path.GetInvalidFileNameChars();
- if (commandName.IndexOfAny(invalidCharactors) != -1)
+ var invalidCharacters = Path.GetInvalidFileNameChars();
+ if (commandName.IndexOfAny(invalidCharacters) != -1)
{
- throw new ArgumentException(
- paramName: nameof(nameOfParam),
- message: string.Format(CommonLocalizableStrings.ContainInvalidCharacters,
- new string(invalidCharactors)));
+ throw new ToolConfigurationException(
+ string.Format(
+ CommonLocalizableStrings.ToolSettingsInvalidCommandName,
+ commandName,
+ string.Join(", ", invalidCharacters.Select(c => $"'{c}'"))));
}
}
-
public string CommandName { get; }
public string ToolAssemblyEntryPoint { get; }
}
diff --git a/src/dotnet/ToolPackage/ToolConfigurationDeserializer.cs b/src/dotnet/ToolPackage/ToolConfigurationDeserializer.cs
index 4938111f2..4b1a7a831 100644
--- a/src/dotnet/ToolPackage/ToolConfigurationDeserializer.cs
+++ b/src/dotnet/ToolPackage/ToolConfigurationDeserializer.cs
@@ -29,35 +29,29 @@ namespace Microsoft.DotNet.ToolPackage
catch (InvalidOperationException e) when (e.InnerException is XmlException)
{
throw new ToolConfigurationException(
- string.Format(CommonLocalizableStrings.ToolSettingsInvalidXml, e.InnerException.Message));
+ string.Format(
+ CommonLocalizableStrings.ToolSettingsInvalidXml,
+ e.InnerException.Message));
}
}
if (dotNetCliTool.Commands.Length != 1)
{
- throw new ToolConfigurationException(
- CommonLocalizableStrings.ToolSettingMoreThanOneCommand);
+ throw new ToolConfigurationException(CommonLocalizableStrings.ToolSettingsMoreThanOneCommand);
}
if (dotNetCliTool.Commands[0].Runner != "dotnet")
{
throw new ToolConfigurationException(
- CommonLocalizableStrings.ToolSettingInvalidRunner);
+ string.Format(
+ CommonLocalizableStrings.ToolSettingsUnsupportedRunner,
+ dotNetCliTool.Commands[0].Name,
+ dotNetCliTool.Commands[0].Runner));
}
- var commandName = dotNetCliTool.Commands[0].Name;
- var toolAssemblyEntryPoint = dotNetCliTool.Commands[0].EntryPoint;
-
- try
- {
- return new ToolConfiguration(commandName, toolAssemblyEntryPoint);
- }
- catch (ArgumentException e)
- {
- throw new ToolConfigurationException(
- string.Format(CommonLocalizableStrings.ToolSettingsContainError,
- e.Message));
- }
+ return new ToolConfiguration(
+ dotNetCliTool.Commands[0].Name,
+ dotNetCliTool.Commands[0].EntryPoint);
}
}
}
diff --git a/src/dotnet/ToolPackage/ToolPackageObtainer.cs b/src/dotnet/ToolPackage/ToolPackageObtainer.cs
index 3066c7e00..bd44fc1c4 100644
--- a/src/dotnet/ToolPackage/ToolPackageObtainer.cs
+++ b/src/dotnet/ToolPackage/ToolPackageObtainer.cs
@@ -1,4 +1,6 @@
using System;
+using System.Collections.Generic;
+using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Xml.Linq;
@@ -38,7 +40,8 @@ namespace Microsoft.DotNet.ToolPackage
string packageVersion = null,
FilePath? nugetconfig = null,
string targetframework = null,
- string source = null)
+ string source = null,
+ string verbosity = null)
{
if (packageId == null)
{
@@ -71,7 +74,7 @@ namespace Microsoft.DotNet.ToolPackage
targetframework,
toolDirectory);
- _projectRestorer.Restore(tempProjectPath, toolDirectory, nugetconfig, source);
+ _projectRestorer.Restore(tempProjectPath, toolDirectory, nugetconfig, source, verbosity);
if (packageVersionOrPlaceHolder.IsPlaceholder)
{
diff --git a/src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommand.cs b/src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommand.cs
index e8d288c82..d19fc880c 100644
--- a/src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommand.cs
+++ b/src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommand.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
+using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.DotNet.Cli;
@@ -27,6 +28,7 @@ namespace Microsoft.DotNet.Tools.Install.Tool
private readonly string _framework;
private readonly string _source;
private readonly bool _global;
+ private readonly string _verbosity;
public InstallToolCommand(
AppliedOption appliedCommand,
@@ -48,6 +50,7 @@ namespace Microsoft.DotNet.Tools.Install.Tool
_framework = appliedCommand.ValueOrDefault("framework");
_source = appliedCommand.ValueOrDefault("source");
_global = appliedCommand.ValueOrDefault("global");
+ _verbosity = appliedCommand.SingleArgumentOrDefault("verbosity");
var cliFolderPathCalculator = new CliFolderPathCalculator();
var offlineFeedPath = new DirectoryPath(cliFolderPathCalculator.CliFallbackFolderPath);
@@ -58,7 +61,7 @@ namespace Microsoft.DotNet.Tools.Install.Tool
.WithSubDirectories(Path.GetRandomFileName())
.WithFile(Path.GetRandomFileName() + ".csproj"),
new Lazy(BundledTargetFramework.GetTargetFrameworkMoniker),
- new ProjectRestorer());
+ new ProjectRestorer(reporter));
_environmentPathInstruction = environmentPathInstruction
?? EnvironmentPathFactory
@@ -66,69 +69,68 @@ namespace Microsoft.DotNet.Tools.Install.Tool
_shellShimMaker = shellShimMaker ?? new ShellShimMaker(cliFolderPathCalculator.ToolsShimPath);
- _reporter = reporter ?? Reporter.Output;
+ _reporter = reporter;
}
public override int Execute()
{
+ var reporter = (_reporter ?? Reporter.Output);
+ var errorReporter = (_reporter ?? Reporter.Error);
if (!_global)
{
throw new GracefulException(LocalizableStrings.InstallToolCommandOnlySupportGlobal);
}
- var toolConfigurationAndExecutablePath = ObtainPackage();
+ try
+ {
+ var toolConfigurationAndExecutablePath = ObtainPackage();
- var commandName = toolConfigurationAndExecutablePath.Configuration.CommandName;
- _shellShimMaker.EnsureCommandNameUniqueness(commandName);
+ var commandName = toolConfigurationAndExecutablePath.Configuration.CommandName;
+ _shellShimMaker.EnsureCommandNameUniqueness(commandName);
- _shellShimMaker.CreateShim(
- toolConfigurationAndExecutablePath.Executable,
- commandName);
+ _shellShimMaker.CreateShim(
+ toolConfigurationAndExecutablePath.Executable,
+ commandName);
- _environmentPathInstruction
- .PrintAddPathInstructionIfPathDoesNotExist();
-
- _reporter.WriteLine(
- string.Format(LocalizableStrings.InstallationSucceeded, commandName));
+ _environmentPathInstruction
+ .PrintAddPathInstructionIfPathDoesNotExist();
+ reporter.WriteLine(
+ string.Format(LocalizableStrings.InstallationSucceeded, commandName));
+ }
+ catch (PackageObtainException ex)
+ {
+ errorReporter.WriteLine(ex.Message.Red());
+ errorReporter.WriteLine(string.Format(LocalizableStrings.ToolInstallationFailed, _packageId).Red());
+ return 1;
+ }
+ catch (ToolConfigurationException ex)
+ {
+ errorReporter.WriteLine(
+ string.Format(
+ LocalizableStrings.InvalidToolConfiguration,
+ ex.Message).Red());
+ errorReporter.WriteLine(string.Format(LocalizableStrings.ToolInstallationFailedContactAuthor, _packageId).Red());
+ return 1;
+ }
return 0;
}
private ToolConfigurationAndExecutablePath ObtainPackage()
{
- try
+ FilePath? configFile = null;
+ if (_configFilePath != null)
{
- FilePath? configFile = null;
- if (_configFilePath != null)
- {
- configFile = new FilePath(_configFilePath);
- }
-
- return _toolPackageObtainer.ObtainAndReturnExecutablePath(
- packageId: _packageId,
- packageVersion: _packageVersion,
- nugetconfig: configFile,
- targetframework: _framework,
- source: _source);
+ configFile = new FilePath(_configFilePath);
}
- catch (PackageObtainException ex)
- {
- throw new GracefulException(
- message:
- string.Format(LocalizableStrings.InstallFailedNuget,
- ex.Message),
- innerException: ex);
- }
- catch (ToolConfigurationException ex)
- {
- throw new GracefulException(
- message:
- string.Format(
- LocalizableStrings.InstallFailedPackage,
- ex.Message),
- innerException: ex);
- }
+ return _toolPackageObtainer.ObtainAndReturnExecutablePath(
+ packageId: _packageId,
+ packageVersion: _packageVersion,
+ nugetconfig: configFile,
+ targetframework: _framework,
+ source: _source,
+ verbosity: _verbosity);
}
}
}
diff --git a/src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommandParser.cs b/src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommandParser.cs
index 6422517d9..c4d2a9696 100644
--- a/src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommandParser.cs
+++ b/src/dotnet/commands/dotnet-install/dotnet-install-tool/InstallToolCommandParser.cs
@@ -36,7 +36,8 @@ namespace Microsoft.DotNet.Cli
"-f|--framework",
LocalizableStrings.FrameworkOptionDescription,
Accept.ExactlyOneArgument()),
- CommonOptions.HelpOption());
+ CommonOptions.HelpOption(),
+ CommonOptions.VerbosityOption());
}
}
}
diff --git a/src/dotnet/commands/dotnet-install/dotnet-install-tool/LocalizableStrings.resx b/src/dotnet/commands/dotnet-install/dotnet-install-tool/LocalizableStrings.resx
index d689f4b11..7d543cab8 100644
--- a/src/dotnet/commands/dotnet-install/dotnet-install-tool/LocalizableStrings.resx
+++ b/src/dotnet/commands/dotnet-install/dotnet-install-tool/LocalizableStrings.resx
@@ -149,24 +149,6 @@
WorkingDirectory: {0}
Arguments: {1}
Output: {2}{3}
-
-
- Failed to restore package.
-WorkingDirectory: {0}
-Arguments: {1}
-Output: {2}{3}
-
-
- Install failed. Failed to download package:
-NuGet returned:
-
-{0}
-
-
- Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
-The error was:
-
-{0}
@@ -181,4 +163,16 @@ The installation succeeded. If there are no further instructions, you can type t
The --global switch (-g) is currently required because only user wide tools are supported.
+
+ The settings file in the tool's NuGet package is invalid: {0}
+
+
+ Tool '{0}' failed to install.
+
+
+ Tool '{0}' failed to install. Please contact the tool author for assistance.
+
+
+ The tool package could not be restored.
+
\ No newline at end of file
diff --git a/src/dotnet/commands/dotnet-install/dotnet-install-tool/ProjectRestorer.cs b/src/dotnet/commands/dotnet-install/dotnet-install-tool/ProjectRestorer.cs
index 1419e0e38..ba4548c2d 100644
--- a/src/dotnet/commands/dotnet-install/dotnet-install-tool/ProjectRestorer.cs
+++ b/src/dotnet/commands/dotnet-install/dotnet-install-tool/ProjectRestorer.cs
@@ -14,11 +14,19 @@ namespace Microsoft.DotNet.Tools.Install.Tool
{
internal class ProjectRestorer : IProjectRestorer
{
+ private IReporter _reporter;
+
+ public ProjectRestorer(IReporter reporter)
+ {
+ _reporter = reporter;
+ }
+
public void Restore(
FilePath projectPath,
DirectoryPath assetJsonOutput,
FilePath? nugetconfig,
- string source = null)
+ string source = null,
+ string verbosity = null)
{
var argsToPassToRestore = new List();
@@ -42,18 +50,22 @@ namespace Microsoft.DotNet.Tools.Install.Tool
$"/p:BaseIntermediateOutputPath={assetJsonOutput.ToQuotedString()}"
});
+ argsToPassToRestore.Add($"/verbosity:{verbosity ?? "quiet"}");
+
var command = new DotNetCommandFactory(alwaysRunOutOfProc: true)
- .Create("restore", argsToPassToRestore)
- .CaptureStdOut()
- .CaptureStdErr();
+ .Create("restore", argsToPassToRestore);
+
+ if (_reporter != null)
+ {
+ command = command
+ .OnOutputLine((line) => _reporter.WriteLine(line))
+ .OnErrorLine((line) => _reporter.WriteLine(line));
+ }
var result = command.Execute();
if (result.ExitCode != 0)
{
- throw new PackageObtainException(
- string.Format(
- LocalizableStrings.FailedToRestorePackage,
- result.StartInfo.WorkingDirectory, result.StartInfo.Arguments, result.StdErr, result.StdOut));
+ throw new PackageObtainException(LocalizableStrings.ToolInstallationRestoreFailed);
}
}
diff --git a/src/dotnet/commands/dotnet-install/dotnet-install-tool/xlf/LocalizableStrings.cs.xlf b/src/dotnet/commands/dotnet-install/dotnet-install-tool/xlf/LocalizableStrings.cs.xlf
index 0904e75e8..80067a1b6 100644
--- a/src/dotnet/commands/dotnet-install/dotnet-install-tool/xlf/LocalizableStrings.cs.xlf
+++ b/src/dotnet/commands/dotnet-install/dotnet-install-tool/xlf/LocalizableStrings.cs.xlf
@@ -30,39 +30,6 @@ Arguments: {1}
Output: {2}{3}
-
- Failed to restore package.
-WorkingDirectory: {0}
-Arguments: {1}
-Output: {2}{3}
- Failed to restore package.
-WorkingDirectory: {0}
-Arguments: {1}
-Output: {2}{3}
-
-
-
- Install failed. Failed to download package:
-NuGet returned:
-
-{0}
- Install failed. Failed to download package:
-NuGet returned:
-
-{0}
-
-
-
- Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
-The error was:
-
-{0}
- Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
-The error was:
-
-{0}
-
-
NuGet Package Id of the tool to install.
NuGet Package Id of the tool to install.
@@ -113,6 +80,26 @@ The error was:
The --global switch (-g) is currently required because only user wide tools are supported.
+
+ The settings file in the tool's NuGet package is invalid: {0}
+ The settings file in the tool's NuGet package is invalid: {0}
+
+
+
+ Tool '{0}' failed to install.
+ Tool '{0}' failed to install.
+
+
+
+ Tool '{0}' failed to install. Please contact the tool author for assistance.
+ Tool '{0}' failed to install. Please contact the tool author for assistance.
+
+
+
+ The tool package could not be restored.
+ The tool package could not be restored.
+
+