Add verbosity option to install tool
command.
This commit adds the `--verbosity` option to the `install tool` command. MSBuild/NuGet output is now controllable by the user and defaults to being "quiet". This enables users to see warnings from NuGet that otherwise would be swallowed unless NuGet returned a non-zero exit code. As a byproduct of this change, the exception handling and error messages related to obtaining tool packages was retooled. We no longer display `install tool` command line help for installation failures, as it should only be displayed for command line syntax errors. Fixes #8465.
This commit is contained in:
parent
085452eaae
commit
7ebfdde749
50 changed files with 1068 additions and 1103 deletions
|
@ -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}
|
||||
|
|
|
@ -520,28 +520,26 @@
|
|||
<data name="NoRestoreDescription" xml:space="preserve">
|
||||
<value>Does not do an implicit restore when executing the command.</value>
|
||||
</data>
|
||||
<data name="CannotBeNullOrWhitespace" xml:space="preserve">
|
||||
<value>Cannot be null or whitespace.</value>
|
||||
</data>
|
||||
<data name="ContainInvalidCharacters" xml:space="preserve">
|
||||
<value>Contains one or more invalid characters: {0}</value>
|
||||
</data>
|
||||
<data name="NuGetConfigurationFileDoesNotExist" xml:space="preserve">
|
||||
<value>NuGet configuration file {0} does not exist.</value>
|
||||
</data>
|
||||
<data name="ToolSettingInvalidRunner" xml:space="preserve">
|
||||
<value>The tool's settings file has non "dotnet" as runner.</value>
|
||||
</data>
|
||||
<data name="ToolSettingMoreThanOneCommand" xml:space="preserve">
|
||||
<value>The tool's settings file has more than one command defined.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsContainError" xml:space="preserve">
|
||||
<value>The tool's settings file contains error.
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="ToolSettingsInvalidXml" xml:space="preserve">
|
||||
<value>The tool's settings file is invalid xml.
|
||||
{0}</value>
|
||||
<value>Invalid XML: {0}</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMissingCommandName" xml:space="preserve">
|
||||
<value>Tool defines a command with a missing name setting.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMissingEntryPoint" xml:space="preserve">
|
||||
<value>Command '{0}' is missing an entry point setting.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsInvalidCommandName" xml:space="preserve">
|
||||
<value>Command '{0}' contains one or more of the following invalid characters: {1}.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMoreThanOneCommand" xml:space="preserve">
|
||||
<value>More than one command is defined for the tool.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsUnsupportedRunner" xml:space="preserve">
|
||||
<value>Command '{0}' uses unsupported runner '{1}'."</value>
|
||||
</data>
|
||||
<data name="EnvironmentPathLinuxManualInstruction" xml:space="preserve">
|
||||
<value>Cannot find the tools executable path. Please ensure {0} is added to your PATH.
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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; }
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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<string>("framework");
|
||||
_source = appliedCommand.ValueOrDefault<string>("source");
|
||||
_global = appliedCommand.ValueOrDefault<bool>("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<string>(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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,8 @@ namespace Microsoft.DotNet.Cli
|
|||
"-f|--framework",
|
||||
LocalizableStrings.FrameworkOptionDescription,
|
||||
Accept.ExactlyOneArgument()),
|
||||
CommonOptions.HelpOption());
|
||||
CommonOptions.HelpOption(),
|
||||
CommonOptions.VerbosityOption());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -149,24 +149,6 @@
|
|||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</value>
|
||||
</data>
|
||||
<data name="FailedToRestorePackage" xml:space="preserve">
|
||||
<value>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</value>
|
||||
</data>
|
||||
<data name="InstallFailedNuget" xml:space="preserve">
|
||||
<value>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="InstallFailedPackage" xml:space="preserve">
|
||||
<value>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}</value>
|
||||
</data>
|
||||
<data name="InstallationSucceeded" xml:space="preserve">
|
||||
<value>
|
||||
|
@ -181,4 +163,16 @@ The installation succeeded. If there are no further instructions, you can type t
|
|||
<data name="InstallToolCommandOnlySupportGlobal" xml:space="preserve">
|
||||
<value>The --global switch (-g) is currently required because only user wide tools are supported.</value>
|
||||
</data>
|
||||
<data name="InvalidToolConfiguration" xml:space="preserve">
|
||||
<value>The settings file in the tool's NuGet package is invalid: {0}</value>
|
||||
</data>
|
||||
<data name="ToolInstallationFailed" xml:space="preserve">
|
||||
<value>Tool '{0}' failed to install.</value>
|
||||
</data>
|
||||
<data name="ToolInstallationFailedContactAuthor" xml:space="preserve">
|
||||
<value>Tool '{0}' failed to install. Please contact the tool author for assistance.</value>
|
||||
</data>
|
||||
<data name="ToolInstallationRestoreFailed" xml:space="preserve">
|
||||
<value>The tool package could not be restored.</value>
|
||||
</data>
|
||||
</root>
|
|
@ -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<string>();
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="new">Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="new">Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>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}</source>
|
||||
<target state="new">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}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="new">NuGet Package Id of the tool to install.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">Projekt {0} byl z řešení odebrán.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">Das Projekt "{0}" wurde aus der Projektmappe entfernt.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">Se ha quitado el proyecto "{0}" de la solución.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">Projet '{0}' retiré de la solution.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">Il progetto `{0}` è stato rimosso dalla soluzione.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">プロジェクト `{0}` がソリューションから削除されました。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">'{0}' 프로젝트가 솔루션에서 제거되었습니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">Projekt „{0}” został skasowany z rozwiązania.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">O projeto `{0}` foi removido da solução.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">Проект "{0}" удален из решения.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">`{0}` projesi çözümden kaldırıldı.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">已从解决方案中移除项目“{0}”。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,40 +674,6 @@
|
|||
<target state="translated">專案 `{0}` 已從解決方案移除。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="new">Cannot be null or whitespace.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="new">Contains one or more invalid characters: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file is invalid xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="new">The tool's settings file has non "dotnet" as runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="new">The tool's settings file has more than one command defined.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="new">The tool's settings file contains error.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="NuGetConfigurationFileDoesNotExist">
|
||||
<source>NuGet configuration file {0} does not exist.</source>
|
||||
<target state="new">NuGet configuration file {0} does not exist.</target>
|
||||
|
@ -797,6 +763,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="new">Package '{0}' is missing tool settings file DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="new">Invalid XML: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -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.27004.2008
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
|
@ -88,6 +88,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.ToolPackag
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Tools.Tests.ComponentMocks", "Microsoft.DotNet.Tools.Tests.ComponentMocks\Microsoft.DotNet.Tools.Tests.ComponentMocks.csproj", "{A3DE5654-7755-45C8-8AE5-5B5B00BEB248}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-install-tool.Tests", "dotnet-install-tool.Tests\dotnet-install-tool.Tests.csproj", "{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -578,6 +580,18 @@ Global
|
|||
{A3DE5654-7755-45C8-8AE5-5B5B00BEB248}.Release|x64.Build.0 = Release|Any CPU
|
||||
{A3DE5654-7755-45C8-8AE5-5B5B00BEB248}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A3DE5654-7755-45C8-8AE5-5B5B00BEB248}.Release|x86.Build.0 = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|x64.Build.0 = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
// 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;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
|
||||
namespace Microsoft.DotNet.ShellShim.Tests
|
||||
{
|
||||
internal class FakeReporter : IReporter
|
||||
{
|
||||
public string Message { get; private set; } = "";
|
||||
|
||||
public void WriteLine(string message)
|
||||
{
|
||||
Message = message;
|
||||
}
|
||||
|
||||
public void WriteLine()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Write(string message)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -19,10 +19,10 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[Fact]
|
||||
public void GivenEnvironmentAndReporterItCanPrintOutInstructionToAddPath()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var linuxEnvironmentPath = new LinuxEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
linuxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
// similar to https://code.visualstudio.com/docs/setup/mac
|
||||
fakeReporter.Message.Should().Be(
|
||||
reporter.Lines.Should().Equal(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.EnvironmentPathLinuxManualInstruction,
|
||||
"/myhome/executable/path", "/myhome/executable/path"));
|
||||
|
@ -42,10 +42,10 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[Fact]
|
||||
public void GivenEnvironmentAndReporterItPrintsNothingWhenenvironmentExists()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var linuxEnvironmentPath = new LinuxEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -55,16 +55,16 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
linuxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
fakeReporter.Message.Should().BeEmpty();
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenAddPackageExecutablePathToUserPathJustRunItPrintsInstructionToLogout()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var linuxEnvironmentPath = new LinuxEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -75,8 +75,8 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
linuxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
fakeReporter.Message.Should()
|
||||
.Be(CommonLocalizableStrings.EnvironmentPathLinuxNeedLogout);
|
||||
reporter.Lines.Should()
|
||||
.Equal(CommonLocalizableStrings.EnvironmentPathLinuxNeedLogout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,10 +19,10 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[Fact]
|
||||
public void GivenEnvironmentAndReporterItCanPrintOutInstructionToAddPath()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var osxEnvironmentPath = new OSXEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
osxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
// similar to https://code.visualstudio.com/docs/setup/mac
|
||||
fakeReporter.Message.Should().Be(
|
||||
reporter.Lines.Should().Equal(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.EnvironmentPathOSXManualInstruction,
|
||||
"/myhome/executable/path", "/myhome/executable/path"));
|
||||
|
@ -44,10 +44,10 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[InlineData("~/executable/path")]
|
||||
public void GivenEnvironmentAndReporterItPrintsNothingWhenenvironmentExists(string existingPath)
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var osxEnvironmentPath = new OSXEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -57,16 +57,16 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
osxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
fakeReporter.Message.Should().BeEmpty();
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenAddPackageExecutablePathToUserPathJustRunItPrintsInstructionToLogout()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var osxEnvironmentPath = new OSXEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -77,7 +77,7 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
osxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
fakeReporter.Message.Should().Be(CommonLocalizableStrings.EnvironmentPathOSXNeedReopen);
|
||||
reporter.Lines.Should().Equal(CommonLocalizableStrings.EnvironmentPathOSXNeedReopen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,16 +38,21 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
Action a = () => ToolConfigurationDeserializer.Deserialize("DotnetToolSettingsMissing.xml");
|
||||
a.ShouldThrow<ToolConfigurationException>()
|
||||
.And.Message.Should()
|
||||
.Contain(string.Format(CommonLocalizableStrings.ToolSettingsContainError, string.Empty));
|
||||
.Contain(CommonLocalizableStrings.ToolSettingsMissingCommandName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenInvalidCharAsFileNameItThrows()
|
||||
{
|
||||
Action a = () => new ToolConfiguration("na\0me", "my.dll");
|
||||
var invalidCommandName = "na\0me";
|
||||
Action a = () => new ToolConfiguration(invalidCommandName, "my.dll");
|
||||
a.ShouldThrow<ArgumentException>()
|
||||
.And.Message.Should()
|
||||
.Contain(string.Format(CommonLocalizableStrings.ContainInvalidCharacters, string.Empty));
|
||||
.Contain(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsInvalidCommandName,
|
||||
invalidCommandName,
|
||||
string.Join(", ", Path.GetInvalidFileNameChars().Select(c => $"'{c}'"))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ using FluentAssertions;
|
|||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using Microsoft.DotNet.Cli;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.DotNet.Tools.Install.Tool;
|
||||
using Xunit;
|
||||
|
@ -21,6 +22,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
[Fact]
|
||||
public void GivenNoFeedItThrows()
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
ToolPackageObtainer packageObtainer =
|
||||
|
@ -29,7 +31,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
new DirectoryPath("no such path"),
|
||||
GetUniqueTempProjectPathEachTest,
|
||||
new Lazy<string>(),
|
||||
new ProjectRestorer());
|
||||
new ProjectRestorer(reporter));
|
||||
|
||||
Action a = () => packageObtainer.ObtainAndReturnExecutablePath(
|
||||
packageId: TestPackageId,
|
||||
|
@ -37,11 +39,15 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
targetframework: _testTargetframework);
|
||||
|
||||
a.ShouldThrow<PackageObtainException>();
|
||||
|
||||
reporter.Lines.Count.Should().Be(1);
|
||||
reporter.Lines[0].Should().Contain(TestPackageId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenOfflineFeedWhenCallItCanDownloadThePackage()
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
ToolPackageObtainer packageObtainer =
|
||||
|
@ -50,7 +56,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
offlineFeedPath: new DirectoryPath(GetTestLocalFeedPath()),
|
||||
getTempProjectPath: GetUniqueTempProjectPathEachTest,
|
||||
bundledTargetFrameworkMoniker: new Lazy<string>(),
|
||||
projectRestorer: new ProjectRestorer());
|
||||
projectRestorer: new ProjectRestorer(reporter));
|
||||
|
||||
ToolConfigurationAndExecutablePath toolConfigurationAndExecutablePath =
|
||||
packageObtainer.ObtainAndReturnExecutablePath(
|
||||
|
@ -58,6 +64,8 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
packageVersion: TestPackageVersion,
|
||||
targetframework: _testTargetframework);
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
var executable = toolConfigurationAndExecutablePath
|
||||
.Executable;
|
||||
|
||||
|
@ -77,11 +85,12 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
public void GivenNugetConfigAndPackageNameAndVersionAndTargetFrameworkWhenCallItCanDownloadThePackage(
|
||||
bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
FilePath nugetConfigPath = WriteNugetConfigFileToPointToTheFeed();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
var packageObtainer =
|
||||
ConstructDefaultPackageObtainer(toolsPath, testMockBehaviorIsInSync, nugetConfigPath.Value);
|
||||
ConstructDefaultPackageObtainer(toolsPath, reporter, testMockBehaviorIsInSync, nugetConfigPath.Value);
|
||||
|
||||
ToolConfigurationAndExecutablePath toolConfigurationAndExecutablePath
|
||||
= packageObtainer.ObtainAndReturnExecutablePath(
|
||||
|
@ -90,6 +99,8 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
nugetconfig: nugetConfigPath,
|
||||
targetframework: _testTargetframework);
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
FilePath executable = toolConfigurationAndExecutablePath.Executable;
|
||||
File.Exists(executable.Value)
|
||||
.Should()
|
||||
|
@ -104,11 +115,12 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
public void GivenNugetConfigAndPackageNameAndVersionAndTargetFrameworkWhenCallItCreateAssetFile(
|
||||
bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var nugetConfigPath = WriteNugetConfigFileToPointToTheFeed();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
var packageObtainer =
|
||||
ConstructDefaultPackageObtainer(toolsPath, testMockBehaviorIsInSync, nugetConfigPath.Value);
|
||||
ConstructDefaultPackageObtainer(toolsPath, reporter, testMockBehaviorIsInSync, nugetConfigPath.Value);
|
||||
|
||||
ToolConfigurationAndExecutablePath toolConfigurationAndExecutableDirectory =
|
||||
packageObtainer.ObtainAndReturnExecutablePath(
|
||||
|
@ -117,6 +129,8 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
nugetconfig: nugetConfigPath,
|
||||
targetframework: _testTargetframework);
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
/*
|
||||
From mytool.dll to project.assets.json
|
||||
.dotnet/.tools/packageid/version/packageid/version/mytool.dll
|
||||
|
@ -146,6 +160,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
[InlineData(true)]
|
||||
public void GivenAllButNoNugetConfigFilePathItCanDownloadThePackage(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var uniqueTempProjectPath = GetUniqueTempProjectPathEachTest();
|
||||
var tempProjectDirectory = uniqueTempProjectPath.GetDirectoryPath();
|
||||
var nugetConfigPath = WriteNugetConfigFileToPointToTheFeed();
|
||||
|
@ -171,7 +186,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
new DirectoryPath("no such path"),
|
||||
() => uniqueTempProjectPath,
|
||||
new Lazy<string>(),
|
||||
new ProjectRestorer());
|
||||
new ProjectRestorer(reporter));
|
||||
}
|
||||
|
||||
ToolConfigurationAndExecutablePath toolConfigurationAndExecutablePath =
|
||||
|
@ -180,6 +195,8 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
packageVersion: TestPackageVersion,
|
||||
targetframework: _testTargetframework);
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
var executable = toolConfigurationAndExecutablePath.Executable;
|
||||
|
||||
File.Exists(executable.Value)
|
||||
|
@ -194,11 +211,12 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
[InlineData(true)]
|
||||
public void GivenAllButNoPackageVersionItCanDownloadThePackage(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var nugetConfigPath = WriteNugetConfigFileToPointToTheFeed();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
var packageObtainer =
|
||||
ConstructDefaultPackageObtainer(toolsPath, testMockBehaviorIsInSync, nugetConfigPath.Value);
|
||||
ConstructDefaultPackageObtainer(toolsPath, reporter, testMockBehaviorIsInSync, nugetConfigPath.Value);
|
||||
|
||||
ToolConfigurationAndExecutablePath toolConfigurationAndExecutablePath =
|
||||
packageObtainer.ObtainAndReturnExecutablePath(
|
||||
|
@ -206,6 +224,8 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
nugetconfig: nugetConfigPath,
|
||||
targetframework: _testTargetframework);
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
var executable = toolConfigurationAndExecutablePath.Executable;
|
||||
|
||||
File.Exists(executable.Value)
|
||||
|
@ -220,22 +240,27 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
[InlineData(true)]
|
||||
public void GivenAllButNoPackageVersionAndInvokeTwiceItShouldNotThrow(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var nugetConfigPath = WriteNugetConfigFileToPointToTheFeed();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
var packageObtainer =
|
||||
ConstructDefaultPackageObtainer(toolsPath, testMockBehaviorIsInSync, nugetConfigPath.Value);
|
||||
ConstructDefaultPackageObtainer(toolsPath, reporter, testMockBehaviorIsInSync, nugetConfigPath.Value);
|
||||
|
||||
packageObtainer.ObtainAndReturnExecutablePath(
|
||||
packageId: TestPackageId,
|
||||
nugetconfig: nugetConfigPath,
|
||||
targetframework: _testTargetframework);
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
Action secondCall = () => packageObtainer.ObtainAndReturnExecutablePath(
|
||||
packageId: TestPackageId,
|
||||
nugetconfig: nugetConfigPath,
|
||||
targetframework: _testTargetframework);
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
secondCall.ShouldNotThrow();
|
||||
}
|
||||
|
||||
|
@ -244,6 +269,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
[InlineData(true)]
|
||||
public void GivenAllButNoTargetFrameworkItCanDownloadThePackage(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var nugetConfigPath = WriteNugetConfigFileToPointToTheFeed();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
|
@ -261,7 +287,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
{
|
||||
new MockFeedPackage
|
||||
{
|
||||
PackageId = "global.tool.console.demo",
|
||||
PackageId = TestPackageId,
|
||||
Version = "1.0.4"
|
||||
}
|
||||
}
|
||||
|
@ -275,7 +301,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
new DirectoryPath("no such path"),
|
||||
GetUniqueTempProjectPathEachTest,
|
||||
new Lazy<string>(() => BundledTargetFramework.GetTargetFrameworkMoniker()),
|
||||
new ProjectRestorer());
|
||||
new ProjectRestorer(reporter));
|
||||
}
|
||||
ToolConfigurationAndExecutablePath toolConfigurationAndExecutablePath =
|
||||
packageObtainer.ObtainAndReturnExecutablePath(
|
||||
|
@ -283,6 +309,8 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
packageVersion: TestPackageVersion,
|
||||
nugetconfig: nugetConfigPath);
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
var executable = toolConfigurationAndExecutablePath.Executable;
|
||||
|
||||
File.Exists(executable.Value)
|
||||
|
@ -297,10 +325,11 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
[InlineData(true)]
|
||||
public void GivenNonExistentNugetConfigFileItThrows(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
var packageObtainer =
|
||||
ConstructDefaultPackageObtainer(toolsPath, testMockBehaviorIsInSync);
|
||||
ConstructDefaultPackageObtainer(toolsPath, reporter, testMockBehaviorIsInSync);
|
||||
|
||||
var nonExistNugetConfigFile = new FilePath("NonExistent.file");
|
||||
Action a = () =>
|
||||
|
@ -317,6 +346,8 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
.Message.Should().Contain(string.Format(
|
||||
CommonLocalizableStrings.NuGetConfigurationFileDoesNotExist,
|
||||
Path.GetFullPath(nonExistNugetConfigFile.Value)));
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
|
@ -324,15 +355,18 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
[InlineData(true)]
|
||||
public void GivenASourceItCanObtainThePackageFromThatSource(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var reporter = new BufferedReporter();
|
||||
var toolsPath = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());
|
||||
|
||||
var packageObtainer = ConstructDefaultPackageObtainer(toolsPath);
|
||||
var packageObtainer = ConstructDefaultPackageObtainer(toolsPath, reporter);
|
||||
var toolConfigurationAndExecutableDirectory = packageObtainer.ObtainAndReturnExecutablePath(
|
||||
packageId: TestPackageId,
|
||||
packageVersion: TestPackageVersion,
|
||||
targetframework: _testTargetframework,
|
||||
source:GetTestLocalFeedPath());
|
||||
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
|
||||
var executable = toolConfigurationAndExecutableDirectory.Executable;
|
||||
|
||||
File.Exists(executable.Value)
|
||||
|
@ -353,6 +387,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
|
||||
private static IToolPackageObtainer ConstructDefaultPackageObtainer(
|
||||
string toolsPath,
|
||||
IReporter reporter,
|
||||
bool testMockBehaviorIsInSync = false,
|
||||
string addNugetConfigFeedWithFilePath = null,
|
||||
string addSourceFeedWithFilePath = null)
|
||||
|
@ -372,7 +407,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
{
|
||||
new MockFeedPackage
|
||||
{
|
||||
PackageId = "global.tool.console.demo",
|
||||
PackageId = TestPackageId,
|
||||
Version = "1.0.4"
|
||||
}
|
||||
}
|
||||
|
@ -393,7 +428,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
{
|
||||
new MockFeedPackage
|
||||
{
|
||||
PackageId = "global.tool.console.demo",
|
||||
PackageId = TestPackageId,
|
||||
Version = "1.0.4"
|
||||
}
|
||||
}
|
||||
|
@ -409,7 +444,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
new DirectoryPath("no such path"),
|
||||
GetUniqueTempProjectPathEachTest,
|
||||
new Lazy<string>(),
|
||||
new ProjectRestorer());
|
||||
new ProjectRestorer(reporter));
|
||||
}
|
||||
|
||||
private static FilePath WriteNugetConfigFileToPointToTheFeed()
|
||||
|
|
|
@ -56,7 +56,8 @@ namespace Microsoft.DotNet.Tools.Tests.ComponentMocks
|
|||
string packageVersion = null,
|
||||
FilePath? nugetconfig = null,
|
||||
string targetframework = null,
|
||||
string source = null)
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
_beforeRunObtain();
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
|
||||
namespace Microsoft.DotNet.Tools.Test.Utilities
|
||||
{
|
||||
public class BufferedReporter : IReporter
|
||||
{
|
||||
public List<string> Lines { get; private set; } = new List<string>();
|
||||
|
||||
public void WriteLine(string message)
|
||||
{
|
||||
Lines.Add(message);
|
||||
}
|
||||
|
||||
public void WriteLine()
|
||||
{
|
||||
Lines.Add("");
|
||||
}
|
||||
|
||||
public void Write(string message)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
// 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 Microsoft.DotNet.Cli.Utils;
|
||||
|
||||
namespace Microsoft.DotNet.Tools.Test.Utilities
|
||||
{
|
||||
public sealed class InstallCommand : DotnetCommand
|
||||
{
|
||||
public override CommandResult Execute(string args = "")
|
||||
{
|
||||
return base.Execute($"install {args}");
|
||||
}
|
||||
|
||||
public override CommandResult ExecuteWithCapturedOutput(string args = "")
|
||||
{
|
||||
return base.ExecuteWithCapturedOutput($"install {args}");
|
||||
}
|
||||
}
|
||||
}
|
42
test/dotnet-install-tool.Tests/GivenDotnetInstallTool.cs
Normal file
42
test/dotnet-install-tool.Tests/GivenDotnetInstallTool.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
// 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;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Install.Tests
|
||||
{
|
||||
public class GivenDotnetInstallTool : TestBase
|
||||
{
|
||||
[Fact]
|
||||
public void ItRunsWithQuietVerbosityByDefault()
|
||||
{
|
||||
var result = new InstallCommand()
|
||||
.ExecuteWithCapturedOutput("tool -g nonexistent_tool_package");
|
||||
|
||||
result
|
||||
.Should()
|
||||
.Fail()
|
||||
.And
|
||||
.NotHaveStdOutContaining("Restoring");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ItRunsWithTheSpecifiedVerbosity()
|
||||
{
|
||||
var result = new InstallCommand()
|
||||
.ExecuteWithCapturedOutput("tool -g -v:m nonexistent_tool_package");
|
||||
|
||||
result
|
||||
.Should()
|
||||
.Fail();
|
||||
|
||||
result
|
||||
.StdOut
|
||||
.Should()
|
||||
.ContainVisuallySameFragmentIfNotLocalized("Restoring");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(CliTargetFramework)</TargetFramework>
|
||||
<RuntimeFrameworkVersion>$(MicrosoftNETCoreAppPackageVersion)</RuntimeFrameworkVersion>
|
||||
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
|
||||
<AssemblyName>dotnet-install-tool.Tests</AssemblyName>
|
||||
<AssetTargetFallback>$(AssetTargetFallback);dotnet5.4;portable-net451+win8</AssetTargetFallback>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Microsoft.DotNet.Tools.Tests.Utilities\Microsoft.DotNet.Tools.Tests.Utilities.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
||||
<PackageReference Include="xunit" Version="2.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -12,6 +12,7 @@ using Microsoft.DotNet.Cli.Utils;
|
|||
using Microsoft.DotNet.ToolPackage;
|
||||
using Microsoft.DotNet.Tools.Install.Tool;
|
||||
using Microsoft.DotNet.Tools.Tests.ComponentMocks;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Microsoft.Extensions.DependencyModel.Tests;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using Newtonsoft.Json;
|
||||
|
@ -29,7 +30,7 @@ namespace Microsoft.DotNet.Tests.InstallToolCommandTests
|
|||
private readonly EnvironmentPathInstructionMock _environmentPathInstructionMock;
|
||||
private readonly AppliedOption _appliedCommand;
|
||||
private readonly ParseResult _parseResult;
|
||||
private readonly FakeReporter _fakeReporter;
|
||||
private readonly BufferedReporter _reporter;
|
||||
private const string PathToPlaceShim = "pathToPlace";
|
||||
|
||||
public InstallToolCommandTests()
|
||||
|
@ -37,9 +38,9 @@ namespace Microsoft.DotNet.Tests.InstallToolCommandTests
|
|||
_fileSystemWrapper = new FileSystemMockBuilder().Build();
|
||||
_toolPackageObtainerMock = new ToolPackageObtainerMock(_fileSystemWrapper);
|
||||
_shellShimMakerMock = new ShellShimMakerMock(PathToPlaceShim, _fileSystemWrapper);
|
||||
_fakeReporter = new FakeReporter();
|
||||
_reporter = new BufferedReporter();
|
||||
_environmentPathInstructionMock =
|
||||
new EnvironmentPathInstructionMock(_fakeReporter, PathToPlaceShim);
|
||||
new EnvironmentPathInstructionMock(_reporter, PathToPlaceShim);
|
||||
|
||||
ParseResult result = Parser.Instance.Parse("dotnet install tool -g global.tool.console.demo");
|
||||
_appliedCommand = result["dotnet"]["install"]["tool"];
|
||||
|
@ -56,7 +57,7 @@ namespace Microsoft.DotNet.Tests.InstallToolCommandTests
|
|||
_shellShimMakerMock,
|
||||
_environmentPathInstructionMock);
|
||||
|
||||
installToolCommand.Execute();
|
||||
installToolCommand.Execute().Should().Be(0);
|
||||
|
||||
// It is hard to simulate shell behavior. Only Assert shim can point to executable dll
|
||||
_fileSystemWrapper.File.Exists(Path.Combine("pathToPlace", ToolPackageObtainerMock.FakeCommandName))
|
||||
|
@ -99,7 +100,7 @@ namespace Microsoft.DotNet.Tests.InstallToolCommandTests
|
|||
_shellShimMakerMock,
|
||||
_environmentPathInstructionMock);
|
||||
|
||||
installToolCommand.Execute();
|
||||
installToolCommand.Execute().Should().Be(0);
|
||||
|
||||
// It is hard to simulate shell behavior. Only Assert shim can point to executable dll
|
||||
_fileSystemWrapper.File.Exists(Path.Combine("pathToPlace", ToolPackageObtainerMock.FakeCommandName))
|
||||
|
@ -121,13 +122,13 @@ namespace Microsoft.DotNet.Tests.InstallToolCommandTests
|
|||
_shellShimMakerMock,
|
||||
_environmentPathInstructionMock);
|
||||
|
||||
installToolCommand.Execute();
|
||||
installToolCommand.Execute().Should().Be(0);
|
||||
|
||||
_fakeReporter.Message.Single().Should().NotBeEmpty();
|
||||
_reporter.Lines.Single().Should().NotBeEmpty();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenFailedPackageObtainWhenRunWithPackageIdItShouldThrow()
|
||||
public void GivenFailedPackageObtainWhenRunWithPackageIdItShouldFail()
|
||||
{
|
||||
var toolPackageObtainerSimulatorThatThrows
|
||||
= new ToolPackageObtainerMock(
|
||||
|
@ -139,17 +140,25 @@ namespace Microsoft.DotNet.Tests.InstallToolCommandTests
|
|||
toolPackageObtainerSimulatorThatThrows,
|
||||
_shellShimMakerMock,
|
||||
_environmentPathInstructionMock,
|
||||
_fakeReporter);
|
||||
_reporter);
|
||||
|
||||
Action a = () => installToolCommand.Execute();
|
||||
installToolCommand.Execute().Should().Be(1);
|
||||
|
||||
a.ShouldThrow<GracefulException>()
|
||||
.And.Message.Should()
|
||||
.Contain(string.Format(LocalizableStrings.InstallFailedNuget, "Simulated error"));
|
||||
_reporter.Lines.Count.Should().Be(2);
|
||||
|
||||
_reporter
|
||||
.Lines[0]
|
||||
.Should()
|
||||
.Contain("Simulated error");
|
||||
|
||||
_reporter
|
||||
.Lines[1]
|
||||
.Should()
|
||||
.Contain(string.Format(LocalizableStrings.ToolInstallationFailed, "global.tool.console.demo"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenInCorrectToolConfigurationWhenRunWithPackageIdItShouldThrow()
|
||||
public void GivenInCorrectToolConfigurationWhenRunWithPackageIdItShouldFail()
|
||||
{
|
||||
var toolPackageObtainerSimulatorThatThrows
|
||||
= new ToolPackageObtainerMock(
|
||||
|
@ -161,12 +170,24 @@ namespace Microsoft.DotNet.Tests.InstallToolCommandTests
|
|||
toolPackageObtainerSimulatorThatThrows,
|
||||
_shellShimMakerMock,
|
||||
_environmentPathInstructionMock,
|
||||
_fakeReporter);
|
||||
_reporter);
|
||||
|
||||
Action a = () => installToolCommand.Execute();
|
||||
a.ShouldThrow<GracefulException>()
|
||||
.And.Message.Should()
|
||||
.Contain(string.Format(LocalizableStrings.InstallFailedPackage, "Simulated error"));
|
||||
installToolCommand.Execute().Should().Be(1);
|
||||
|
||||
_reporter.Lines.Count.Should().Be(2);
|
||||
|
||||
_reporter
|
||||
.Lines[0]
|
||||
.Should()
|
||||
.Contain(
|
||||
string.Format(
|
||||
LocalizableStrings.InvalidToolConfiguration,
|
||||
"Simulated error"));
|
||||
|
||||
_reporter
|
||||
.Lines[1]
|
||||
.Should()
|
||||
.Contain(string.Format(LocalizableStrings.ToolInstallationFailedContactAuthor, "global.tool.console.demo"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
@ -177,35 +198,15 @@ namespace Microsoft.DotNet.Tests.InstallToolCommandTests
|
|||
_parseResult,
|
||||
_toolPackageObtainerMock,
|
||||
_shellShimMakerMock,
|
||||
new EnvironmentPathInstructionMock(_fakeReporter, PathToPlaceShim, true),
|
||||
_fakeReporter);
|
||||
new EnvironmentPathInstructionMock(_reporter, PathToPlaceShim, true),
|
||||
_reporter);
|
||||
|
||||
installToolCommand.Execute();
|
||||
installToolCommand.Execute().Should().Be(0);
|
||||
|
||||
_fakeReporter
|
||||
.Message
|
||||
_reporter
|
||||
.Lines
|
||||
.Single().Should()
|
||||
.Contain(string.Format(LocalizableStrings.InstallationSucceeded, "SimulatorCommand"));
|
||||
}
|
||||
|
||||
internal class FakeReporter : IReporter
|
||||
{
|
||||
public List<string> Message { get; set; } = new List<string>();
|
||||
|
||||
public void WriteLine(string message)
|
||||
{
|
||||
Message.Add(message);
|
||||
}
|
||||
|
||||
public void WriteLine()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Write(string message)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -68,5 +68,16 @@ namespace Microsoft.DotNet.Tests.ParserTests
|
|||
var appliedOptions = result["dotnet"]["install"]["tool"];
|
||||
appliedOptions.ValueOrDefault<bool>("global").Should().Be(true);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void InstallToolParserCanParseVerbosityOption()
|
||||
{
|
||||
const string expectedVerbosityLevel = "diag";
|
||||
|
||||
var result = Parser.Instance.Parse($"dotnet install tool -g --verbosity:{expectedVerbosityLevel} console.test.app");
|
||||
|
||||
var appliedOptions = result["dotnet"]["install"]["tool"];
|
||||
appliedOptions.SingleArgumentOrDefault("verbosity").Should().Be(expectedVerbosityLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue