Merge pull request #8691 from peterhuene/list-command
Implement the `list tool` command.
This commit is contained in:
commit
0cdc4b8f19
130 changed files with 2538 additions and 1503 deletions
|
@ -610,13 +610,19 @@ setx PATH "%PATH%;{0}"
|
|||
<data name="FailedToUninstallToolPackage" xml:space="preserve">
|
||||
<value>Failed to uninstall tool package '{0}': {1}</value>
|
||||
</data>
|
||||
<data name="ToolPackageMissingEntryPointFile" xml:space="preserve">
|
||||
<value>Package '{0}' is missing entry point file {1}.</value>
|
||||
<data name="MissingToolEntryPointFile" xml:space="preserve">
|
||||
<value>Entry point file '{0}' for command '{1}' was not found in the package.</value>
|
||||
</data>
|
||||
<data name="ToolPackageMissingSettingsFile" xml:space="preserve">
|
||||
<value>Package '{0}' is missing tool settings file DotnetToolSettings.xml.</value>
|
||||
<data name="MissingToolSettingsFile" xml:space="preserve">
|
||||
<value>Settings file 'DotnetToolSettings.xml' was not found in the package.</value>
|
||||
</data>
|
||||
<data name="ToolPackageConflictPackageId" xml:space="preserve">
|
||||
<value>Tool '{0}' (version '{1}') is already installed.</value>
|
||||
</data>
|
||||
<data name="FailedToFindStagedToolPackage" xml:space="preserve">
|
||||
<value>Failed to find staged tool package '{0}'.</value>
|
||||
</data>
|
||||
<data name="ColumnMaxWidthMustBeGreaterThanZero" xml:space="preserve">
|
||||
<value>Column maximum width must be greater than zero.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
226
src/dotnet/PrintableTable.cs
Normal file
226
src/dotnet/PrintableTable.cs
Normal file
|
@ -0,0 +1,226 @@
|
|||
// 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 System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.DotNet.Tools;
|
||||
|
||||
namespace Microsoft.DotNet.Cli
|
||||
{
|
||||
// Represents a table (with rows of type T) that can be printed to a terminal.
|
||||
internal class PrintableTable<T>
|
||||
{
|
||||
private const string ColumnDelimiter = " ";
|
||||
private List<Column> _columns = new List<Column>();
|
||||
|
||||
private class Column
|
||||
{
|
||||
public string Header { get; set; }
|
||||
public Func<T, string> GetContent { get; set; }
|
||||
public int MaxWidth { get; set; }
|
||||
public override string ToString() { return Header; }
|
||||
}
|
||||
|
||||
public void AddColumn(string header, Func<T, string> getContent, int maxWidth = int.MaxValue)
|
||||
{
|
||||
if (getContent == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(getContent));
|
||||
}
|
||||
|
||||
if (maxWidth <= 0)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
CommonLocalizableStrings.ColumnMaxWidthMustBeGreaterThanZero,
|
||||
nameof(maxWidth));
|
||||
}
|
||||
|
||||
_columns.Add(
|
||||
new Column() {
|
||||
Header = header,
|
||||
GetContent = getContent,
|
||||
MaxWidth = maxWidth
|
||||
});
|
||||
}
|
||||
|
||||
public void PrintRows(IEnumerable<T> rows, Action<string> writeLine)
|
||||
{
|
||||
if (rows == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(rows));
|
||||
}
|
||||
|
||||
if (writeLine == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(writeLine));
|
||||
}
|
||||
|
||||
var widths = CalculateColumnWidths(rows);
|
||||
var totalWidth = CalculateTotalWidth(widths);
|
||||
if (totalWidth == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var line in EnumerateHeaderLines(widths))
|
||||
{
|
||||
writeLine(line);
|
||||
}
|
||||
|
||||
writeLine(new string('-', totalWidth));
|
||||
|
||||
foreach (var row in rows)
|
||||
{
|
||||
foreach (var line in EnumerateRowLines(row, widths))
|
||||
{
|
||||
writeLine(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int CalculateWidth(IEnumerable<T> rows)
|
||||
{
|
||||
if (rows == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(rows));
|
||||
}
|
||||
|
||||
return CalculateTotalWidth(CalculateColumnWidths(rows));
|
||||
}
|
||||
|
||||
private IEnumerable<string> EnumerateHeaderLines(int[] widths)
|
||||
{
|
||||
if (_columns.Count != widths.Length)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
return EnumerateLines(
|
||||
widths,
|
||||
_columns.Select(c => new StringInfo(c.Header ?? "")).ToArray());
|
||||
}
|
||||
|
||||
private IEnumerable<string> EnumerateRowLines(T row, int[] widths)
|
||||
{
|
||||
if (_columns.Count != widths.Length)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
return EnumerateLines(
|
||||
widths,
|
||||
_columns.Select(c => new StringInfo(c.GetContent(row) ?? "")).ToArray());
|
||||
}
|
||||
|
||||
private static IEnumerable<string> EnumerateLines(int[] widths, StringInfo[] contents)
|
||||
{
|
||||
if (widths.Length != contents.Length)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
if (contents.Length == 0)
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
var builder = new StringBuilder();
|
||||
for (int line = 0; true; ++line)
|
||||
{
|
||||
builder.Clear();
|
||||
|
||||
bool emptyLine = true;
|
||||
bool appendDelimiter = false;
|
||||
for (int i = 0; i < contents.Length; ++i)
|
||||
{
|
||||
// Skip zero-width columns entirely
|
||||
if (widths[i] == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (appendDelimiter)
|
||||
{
|
||||
builder.Append(ColumnDelimiter);
|
||||
}
|
||||
|
||||
var startIndex = line * widths[i];
|
||||
var length = contents[i].LengthInTextElements;
|
||||
if (startIndex < length)
|
||||
{
|
||||
var endIndex = (line + 1) * widths[i];
|
||||
length = endIndex >= length ? length - startIndex : widths[i];
|
||||
builder.Append(contents[i].SubstringByTextElements(startIndex, length));
|
||||
builder.Append(' ', widths[i] - length);
|
||||
emptyLine = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// No more content for this column; append whitespace to fill remaining space
|
||||
builder.Append(' ', widths[i]);
|
||||
}
|
||||
|
||||
appendDelimiter = true;
|
||||
}
|
||||
|
||||
if (emptyLine)
|
||||
{
|
||||
// Yield an "empty" line on the first line only
|
||||
if (line == 0)
|
||||
{
|
||||
yield return builder.ToString();
|
||||
}
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return builder.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private int[] CalculateColumnWidths(IEnumerable<T> rows)
|
||||
{
|
||||
return _columns
|
||||
.Select(c => {
|
||||
var width = new StringInfo(c.Header ?? "").LengthInTextElements;
|
||||
|
||||
foreach (var row in rows)
|
||||
{
|
||||
width = Math.Max(
|
||||
width,
|
||||
new StringInfo(c.GetContent(row) ?? "").LengthInTextElements);
|
||||
}
|
||||
|
||||
return Math.Min(width, c.MaxWidth);
|
||||
})
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
private static int CalculateTotalWidth(int[] widths)
|
||||
{
|
||||
int sum = 0;
|
||||
int count = 0;
|
||||
|
||||
foreach (var width in widths)
|
||||
{
|
||||
if (width == 0)
|
||||
{
|
||||
// Skip zero-width columns
|
||||
continue;
|
||||
}
|
||||
|
||||
sum += width;
|
||||
++count;
|
||||
}
|
||||
|
||||
if (count == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return sum + (ColumnDelimiter.Length * (count - 1));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -21,3 +21,4 @@ using System.Runtime.CompilerServices;
|
|||
[assembly: InternalsVisibleTo("Microsoft.DotNet.Tools.Tests.ComponentMocks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.ToolPackage.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.ShellShim.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
|
||||
|
|
|
@ -4,14 +4,15 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal interface IToolPackage
|
||||
{
|
||||
string PackageId { get; }
|
||||
PackageId Id { get; }
|
||||
|
||||
string PackageVersion { get; }
|
||||
NuGetVersion Version { get; }
|
||||
|
||||
DirectoryPath PackageDirectory { get; }
|
||||
|
||||
|
|
|
@ -4,14 +4,15 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal interface IToolPackageInstaller
|
||||
{
|
||||
IToolPackage InstallPackage(
|
||||
string packageId,
|
||||
string packageVersion = null,
|
||||
PackageId packageId,
|
||||
VersionRange versionRange = null,
|
||||
string targetFramework = null,
|
||||
FilePath? nugetConfig = null,
|
||||
string source = null,
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
|
@ -11,6 +12,18 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
{
|
||||
DirectoryPath Root { get; }
|
||||
|
||||
IEnumerable<IToolPackage> GetInstalledPackages(string packageId);
|
||||
DirectoryPath GetRandomStagingDirectory();
|
||||
|
||||
NuGetVersion GetStagedPackageVersion(DirectoryPath stagingDirectory, PackageId packageId);
|
||||
|
||||
DirectoryPath GetRootPackageDirectory(PackageId packageId);
|
||||
|
||||
DirectoryPath GetPackageDirectory(PackageId packageId, NuGetVersion version);
|
||||
|
||||
IEnumerable<IToolPackage> EnumeratePackages();
|
||||
|
||||
IEnumerable<IToolPackage> EnumeratePackageVersions(PackageId packageId);
|
||||
|
||||
IToolPackage GetPackage(PackageId packageId, NuGetVersion version);
|
||||
}
|
||||
}
|
||||
|
|
43
src/dotnet/ToolPackage/PackageId.cs
Normal file
43
src/dotnet/ToolPackage/PackageId.cs
Normal file
|
@ -0,0 +1,43 @@
|
|||
// 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.InternalAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal struct PackageId : IEquatable<PackageId>, IComparable<PackageId>
|
||||
{
|
||||
private string _id;
|
||||
|
||||
public PackageId(string id)
|
||||
{
|
||||
_id = id?.ToLowerInvariant() ?? throw new ArgumentNullException(nameof(id));
|
||||
}
|
||||
|
||||
public bool Equals(PackageId other)
|
||||
{
|
||||
return ToString() == other.ToString();
|
||||
}
|
||||
|
||||
public int CompareTo(PackageId other)
|
||||
{
|
||||
return string.Compare(ToString(), other.ToString(), StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return obj is PackageId id && Equals(id);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return ToString().GetHashCode();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return _id ?? "";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,13 +7,12 @@ using Microsoft.DotNet.Cli;
|
|||
using Microsoft.DotNet.Configurer;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal class ToolPackageInstaller : IToolPackageInstaller
|
||||
{
|
||||
public const string StagingDirectory = ".stage";
|
||||
|
||||
private readonly IToolPackageStore _store;
|
||||
private readonly IProjectRestorer _projectRestorer;
|
||||
private readonly FilePath? _tempProject;
|
||||
|
@ -32,33 +31,27 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
}
|
||||
|
||||
public IToolPackage InstallPackage(
|
||||
string packageId,
|
||||
string packageVersion = null,
|
||||
PackageId packageId,
|
||||
VersionRange versionRange = null,
|
||||
string targetFramework = null,
|
||||
FilePath? nugetConfig = null,
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
if (packageId == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(packageId));
|
||||
}
|
||||
|
||||
var packageRootDirectory = _store.Root.WithSubDirectories(packageId);
|
||||
var packageRootDirectory = _store.GetRootPackageDirectory(packageId);
|
||||
string rollbackDirectory = null;
|
||||
|
||||
return TransactionalAction.Run<IToolPackage>(
|
||||
action: () => {
|
||||
try
|
||||
{
|
||||
|
||||
var stageDirectory = _store.Root.WithSubDirectories(StagingDirectory, Path.GetRandomFileName());
|
||||
var stageDirectory = _store.GetRandomStagingDirectory();
|
||||
Directory.CreateDirectory(stageDirectory.Value);
|
||||
rollbackDirectory = stageDirectory.Value;
|
||||
|
||||
var tempProject = CreateTempProject(
|
||||
packageId: packageId,
|
||||
packageVersion: packageVersion,
|
||||
versionRange: versionRange,
|
||||
targetFramework: targetFramework ?? BundledTargetFramework.GetTargetFrameworkMoniker(),
|
||||
restoreDirectory: stageDirectory);
|
||||
|
||||
|
@ -76,29 +69,22 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
File.Delete(tempProject.Value);
|
||||
}
|
||||
|
||||
packageVersion = Path.GetFileName(
|
||||
Directory.EnumerateDirectories(
|
||||
stageDirectory.WithSubDirectories(packageId).Value).Single());
|
||||
|
||||
var packageDirectory = packageRootDirectory.WithSubDirectories(packageVersion);
|
||||
var version = _store.GetStagedPackageVersion(stageDirectory, packageId);
|
||||
var packageDirectory = _store.GetPackageDirectory(packageId, version);
|
||||
if (Directory.Exists(packageDirectory.Value))
|
||||
{
|
||||
throw new ToolPackageException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolPackageConflictPackageId,
|
||||
packageId,
|
||||
packageVersion));
|
||||
version.ToNormalizedString()));
|
||||
}
|
||||
|
||||
Directory.CreateDirectory(packageRootDirectory.Value);
|
||||
Directory.Move(stageDirectory.Value, packageDirectory.Value);
|
||||
rollbackDirectory = packageDirectory.Value;
|
||||
|
||||
return new ToolPackageInstance(
|
||||
_store,
|
||||
packageId,
|
||||
packageVersion,
|
||||
packageDirectory);
|
||||
return new ToolPackageInstance(_store, packageId, version, packageDirectory);
|
||||
}
|
||||
catch (Exception ex) when (ex is UnauthorizedAccessException || ex is IOException)
|
||||
{
|
||||
|
@ -126,8 +112,8 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
}
|
||||
|
||||
private FilePath CreateTempProject(
|
||||
string packageId,
|
||||
string packageVersion,
|
||||
PackageId packageId,
|
||||
VersionRange versionRange,
|
||||
string targetFramework,
|
||||
DirectoryPath restoreDirectory)
|
||||
{
|
||||
|
@ -159,8 +145,9 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
new XElement("DisableImplicitNuGetFallbackFolder", "true")), // disable SDK side implicit NuGetFallbackFolder
|
||||
new XElement("ItemGroup",
|
||||
new XElement("PackageReference",
|
||||
new XAttribute("Include", packageId),
|
||||
new XAttribute("Version", packageVersion ?? "*") // nuget will restore * for latest
|
||||
new XAttribute("Include", packageId.ToString()),
|
||||
new XAttribute("Version",
|
||||
versionRange?.ToString("S", new VersionRangeFormatter()) ?? "*") // nuget will restore latest stable for *
|
||||
))
|
||||
));
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ using Microsoft.DotNet.Cli;
|
|||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.ProjectModel;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
|
@ -17,20 +18,21 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
|
||||
public ToolPackageInstance(
|
||||
IToolPackageStore store,
|
||||
string packageId,
|
||||
string packageVersion,
|
||||
PackageId id,
|
||||
NuGetVersion version,
|
||||
DirectoryPath packageDirectory)
|
||||
{
|
||||
_store = store ?? throw new ArgumentNullException(nameof(store));
|
||||
PackageId = packageId ?? throw new ArgumentNullException(nameof(packageId));
|
||||
PackageVersion = packageVersion ?? throw new ArgumentNullException(nameof(packageVersion));
|
||||
PackageDirectory = packageDirectory;
|
||||
_commands = new Lazy<IReadOnlyList<CommandSettings>>(GetCommands);
|
||||
|
||||
Id = id;
|
||||
Version = version ?? throw new ArgumentNullException(nameof(version));
|
||||
PackageDirectory = packageDirectory;
|
||||
}
|
||||
|
||||
public string PackageId { get; private set; }
|
||||
public PackageId Id { get; private set; }
|
||||
|
||||
public string PackageVersion { get; private set; }
|
||||
public NuGetVersion Version { get; private set; }
|
||||
|
||||
public DirectoryPath PackageDirectory { get; private set; }
|
||||
|
||||
|
@ -53,13 +55,9 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
{
|
||||
if (Directory.Exists(PackageDirectory.Value))
|
||||
{
|
||||
// Use the same staging directory for uninstall instead of temp
|
||||
// Use the staging directory for uninstall
|
||||
// This prevents cross-device moves when temp is mounted to a different device
|
||||
var tempPath = _store
|
||||
.Root
|
||||
.WithSubDirectories(ToolPackageInstaller.StagingDirectory)
|
||||
.WithFile(Path.GetRandomFileName())
|
||||
.Value;
|
||||
var tempPath = _store.GetRandomStagingDirectory().Value;
|
||||
Directory.Move(PackageDirectory.Value, tempPath);
|
||||
tempPackageDirectory = tempPath;
|
||||
}
|
||||
|
@ -75,7 +73,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
throw new ToolPackageException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.FailedToUninstallToolPackage,
|
||||
PackageId,
|
||||
Id,
|
||||
ex.Message),
|
||||
ex);
|
||||
}
|
||||
|
@ -109,16 +107,14 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
var dotnetToolSettings = FindItemInTargetLibrary(library, ToolSettingsFileName);
|
||||
if (dotnetToolSettings == null)
|
||||
{
|
||||
throw new ToolPackageException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolPackageMissingSettingsFile,
|
||||
PackageId));
|
||||
throw new ToolConfigurationException(
|
||||
CommonLocalizableStrings.MissingToolSettingsFile);
|
||||
}
|
||||
|
||||
var toolConfigurationPath =
|
||||
PackageDirectory
|
||||
.WithSubDirectories(
|
||||
PackageId,
|
||||
Id.ToString(),
|
||||
library.Version.ToNormalizedString())
|
||||
.WithFile(dotnetToolSettings.Path);
|
||||
|
||||
|
@ -127,11 +123,11 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
var entryPointFromLockFile = FindItemInTargetLibrary(library, configuration.ToolAssemblyEntryPoint);
|
||||
if (entryPointFromLockFile == null)
|
||||
{
|
||||
throw new ToolPackageException(
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolPackageMissingEntryPointFile,
|
||||
PackageId,
|
||||
configuration.ToolAssemblyEntryPoint));
|
||||
CommonLocalizableStrings.MissingToolEntryPointFile,
|
||||
configuration.ToolAssemblyEntryPoint,
|
||||
configuration.CommandName));
|
||||
}
|
||||
|
||||
// Currently only "dotnet" commands are supported
|
||||
|
@ -140,7 +136,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
"dotnet",
|
||||
PackageDirectory
|
||||
.WithSubDirectories(
|
||||
PackageId,
|
||||
Id.ToString(),
|
||||
library.Version.ToNormalizedString())
|
||||
.WithFile(entryPointFromLockFile.Path)));
|
||||
|
||||
|
@ -148,10 +144,9 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
}
|
||||
catch (Exception ex) when (ex is UnauthorizedAccessException || ex is IOException)
|
||||
{
|
||||
throw new ToolPackageException(
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.FailedToRetrieveToolConfiguration,
|
||||
PackageId,
|
||||
ex.Message),
|
||||
ex);
|
||||
}
|
||||
|
@ -161,7 +156,8 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
{
|
||||
return lockFile
|
||||
?.Targets?.SingleOrDefault(t => t.RuntimeIdentifier != null)
|
||||
?.Libraries?.SingleOrDefault(l => l.Name == PackageId);
|
||||
?.Libraries?.SingleOrDefault(l =>
|
||||
string.Compare(l.Name, Id.ToString(), StringComparison.CurrentCultureIgnoreCase) == 0);
|
||||
}
|
||||
|
||||
private static LockFileItem FindItemInTargetLibrary(LockFileTargetLibrary library, string targetRelativeFilePath)
|
||||
|
|
|
@ -2,12 +2,16 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal class ToolPackageStore : IToolPackageStore
|
||||
{
|
||||
public const string StagingDirectory = ".stage";
|
||||
|
||||
public ToolPackageStore(DirectoryPath root)
|
||||
{
|
||||
Root = root;
|
||||
|
@ -15,14 +19,72 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
|
||||
public DirectoryPath Root { get; private set; }
|
||||
|
||||
public IEnumerable<IToolPackage> GetInstalledPackages(string packageId)
|
||||
public DirectoryPath GetRandomStagingDirectory()
|
||||
{
|
||||
if (packageId == null)
|
||||
return Root.WithSubDirectories(StagingDirectory, Path.GetRandomFileName());
|
||||
}
|
||||
|
||||
public NuGetVersion GetStagedPackageVersion(DirectoryPath stagingDirectory, PackageId packageId)
|
||||
{
|
||||
if (NuGetVersion.TryParse(
|
||||
Path.GetFileName(
|
||||
Directory.EnumerateDirectories(
|
||||
stagingDirectory.WithSubDirectories(packageId.ToString()).Value).FirstOrDefault()),
|
||||
out var version))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(packageId));
|
||||
return version;
|
||||
}
|
||||
|
||||
var packageRootDirectory = Root.WithSubDirectories(packageId);
|
||||
throw new ToolPackageException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.FailedToFindStagedToolPackage,
|
||||
packageId));
|
||||
}
|
||||
|
||||
public DirectoryPath GetRootPackageDirectory(PackageId packageId)
|
||||
{
|
||||
return Root.WithSubDirectories(packageId.ToString());
|
||||
}
|
||||
|
||||
public DirectoryPath GetPackageDirectory(PackageId packageId, NuGetVersion version)
|
||||
{
|
||||
if (version == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(version));
|
||||
}
|
||||
|
||||
return GetRootPackageDirectory(packageId)
|
||||
.WithSubDirectories(version.ToNormalizedString().ToLowerInvariant());
|
||||
}
|
||||
|
||||
public IEnumerable<IToolPackage> EnumeratePackages()
|
||||
{
|
||||
if (!Directory.Exists(Root.Value))
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
foreach (var subdirectory in Directory.EnumerateDirectories(Root.Value))
|
||||
{
|
||||
var name = Path.GetFileName(subdirectory);
|
||||
var packageId = new PackageId(name);
|
||||
|
||||
// Ignore the staging directory and any directory that isn't the same as the package id
|
||||
if (name == StagingDirectory || name != packageId.ToString())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (var package in EnumeratePackageVersions(packageId))
|
||||
{
|
||||
yield return package;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<IToolPackage> EnumeratePackageVersions(PackageId packageId)
|
||||
{
|
||||
var packageRootDirectory = Root.WithSubDirectories(packageId.ToString());
|
||||
if (!Directory.Exists(packageRootDirectory.Value))
|
||||
{
|
||||
yield break;
|
||||
|
@ -30,13 +92,27 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
|
||||
foreach (var subdirectory in Directory.EnumerateDirectories(packageRootDirectory.Value))
|
||||
{
|
||||
var version = Path.GetFileName(subdirectory);
|
||||
yield return new ToolPackageInstance(
|
||||
this,
|
||||
packageId,
|
||||
version,
|
||||
packageRootDirectory.WithSubDirectories(version));
|
||||
NuGetVersion.Parse(Path.GetFileName(subdirectory)),
|
||||
new DirectoryPath(subdirectory));
|
||||
}
|
||||
}
|
||||
|
||||
public IToolPackage GetPackage(PackageId packageId, NuGetVersion version)
|
||||
{
|
||||
if (version == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(version));
|
||||
}
|
||||
|
||||
var directory = GetPackageDirectory(packageId, version);
|
||||
if (!Directory.Exists(directory.Value))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new ToolPackageInstance(this, packageId, version, directory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="cs" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">Příkaz rozhraní .NET pro přidání projektu do řešení</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Příkaz pro přidání projektu do řešení</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Projekty přidané do řešení</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="de" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">.NET-Befehl zum Hinzufügen eines Projekts zur Projektmappe</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Befehl zum Hinzufügen eines Projekts zur Projektmappe</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Zur Projektmappe hinzuzufügende Projekte</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="es" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">Comando de .NET Agregar proyecto a solución</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Comando para agregar un proyecto a una solución</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Proyectos que se agregarán a la solución</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="fr" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">Commande .NET d'ajout de projet à une solution</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Commande d'ajout de projet à une solution</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Projets à ajouter à la solution</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="it" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">Comando Aggiungi progetto a soluzione .NET</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Comando per aggiungere il progetto alla soluzione</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Progetti da aggiungere alla soluzione</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ja" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">.NET Add Project to Solution コマンド</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">ソリューションにプロジェクトを追加するコマンド</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">ソリューションに追加するプロジェクト</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ko" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">.NET 솔루션에 프로젝트 추가 명령</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">솔루션에 프로젝트를 추가하기 위한 명령입니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">솔루션에 추가할 프로젝트</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="pl" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">Polecenie dodawania projektu do rozwiązania dla platformy .NET</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Polecenie umożliwiające dodanie projektu do rozwiązania</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Projekty, które mają zostać dodane do rozwiązania</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="pt-BR" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">Comando Adicionar Projeto à Solução do .NET</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Comando para adicionar o projeto à solução</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Projetos a serem adicionados à solução</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ru" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">Команда .NET "Добавить проект в решение"</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Команда для добавления проекта в решение</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Проекты, добавляемые в решение</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="tr" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">.NET Çözüme Proje Ekleme Komutu</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">Çözüme proje ekleme komutu</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">Çözüme eklenecek projeler</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" original="src/dotnet/commands/dotnet-add/dotnet-add-proj/LocalizableStrings.resx">
|
||||
<body>
|
||||
<group id="src/dotnet/commands/dotnet-add/dotnet-add-proj/LocalizableStrings.resx" />
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="zh-Hans" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">.NET 将项目添加到解决方案命令</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">将项目添加到解决方案的命令</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">要添加到解决方案的项目</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="zh-Hant" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Add Project to Solution Command</source>
|
||||
<target state="translated">.NET 將專案新增至解決方案命令</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to add project to solution</source>
|
||||
<target state="translated">命令,將專案新增至解決方案</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to add to solution</source>
|
||||
<target state="translated">要新增至解決方案的專案</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -193,7 +193,7 @@
|
|||
<value>Remove reference from the project.</value>
|
||||
</data>
|
||||
<data name="ListDefinition" xml:space="preserve">
|
||||
<value>List reference in the project.</value>
|
||||
<value>List project references or installed tools.</value>
|
||||
</data>
|
||||
<data name="AdvancedCommands" xml:space="preserve">
|
||||
<value>Advanced Commands</value>
|
||||
|
@ -271,6 +271,6 @@
|
|||
<value>Installs an item into the development environment.</value>
|
||||
</data>
|
||||
<data name="UninstallDefinition" xml:space="preserve">
|
||||
<value>Uninstalls a tool from the development environment.</value>
|
||||
<value>Uninstalls an item from the development environment.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Vypíše odkaz v projektu.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Vypíše odkaz v projektu.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Verweis im Projekt auflisten.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Verweis im Projekt auflisten.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Muestra referencias en el proyecto.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Muestra referencias en el proyecto.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Listez une référence dans le projet.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Listez une référence dans le projet.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Elenca il riferimento nel progetto.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Elenca il riferimento nel progetto.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">プロジェクト内の参照を一覧表示します。</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">プロジェクト内の参照を一覧表示します。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">프로젝트의 참조를 나열합니다.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">프로젝트의 참조를 나열합니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Wyświetl odwołanie w projekcie.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Wyświetl odwołanie w projekcie.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Listar referência no projeto.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Listar referência no projeto.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Список ссылок в проекте.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Список ссылок в проекте.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">Projede başvuruyu listeleyin.</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">Projede başvuruyu listeleyin.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">列出项目中的引用。</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">列出项目中的引用。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -153,8 +153,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListDefinition">
|
||||
<source>List reference in the project.</source>
|
||||
<target state="translated">列出專案中的參考。</target>
|
||||
<source>List project references or installed tools.</source>
|
||||
<target state="needs-review-translation">列出專案中的參考。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandDoesNotExist">
|
||||
|
@ -258,8 +258,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="UninstallDefinition">
|
||||
<source>Uninstalls a tool from the development environment.</source>
|
||||
<target state="new">Uninstalls a tool from the development environment.</target>
|
||||
<source>Uninstalls an item from the development environment.</source>
|
||||
<target state="new">Uninstalls an item from the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -13,6 +13,7 @@ using Microsoft.DotNet.Configurer;
|
|||
using Microsoft.DotNet.ShellShim;
|
||||
using Microsoft.DotNet.ToolPackage;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace Microsoft.DotNet.Tools.Install.Tool
|
||||
{
|
||||
|
@ -25,7 +26,7 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
private readonly IReporter _reporter;
|
||||
private readonly IReporter _errorReporter;
|
||||
|
||||
private readonly string _packageId;
|
||||
private readonly PackageId _packageId;
|
||||
private readonly string _packageVersion;
|
||||
private readonly string _configFilePath;
|
||||
private readonly string _framework;
|
||||
|
@ -48,7 +49,7 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
throw new ArgumentNullException(nameof(appliedCommand));
|
||||
}
|
||||
|
||||
_packageId = appliedCommand.Arguments.Single();
|
||||
_packageId = new PackageId(appliedCommand.Arguments.Single());
|
||||
_packageVersion = appliedCommand.ValueOrDefault<string>("version");
|
||||
_configFilePath = appliedCommand.ValueOrDefault<string>("configfile");
|
||||
_framework = appliedCommand.ValueOrDefault<string>("framework");
|
||||
|
@ -91,8 +92,16 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
Path.GetFullPath(_configFilePath)));
|
||||
}
|
||||
|
||||
// Prevent installation if any version of the package is installed
|
||||
if (_toolPackageStore.GetInstalledPackages(_packageId).FirstOrDefault() != null)
|
||||
VersionRange versionRange = null;
|
||||
if (!string.IsNullOrEmpty(_packageVersion) && !VersionRange.TryParse(_packageVersion, out versionRange))
|
||||
{
|
||||
throw new GracefulException(
|
||||
string.Format(
|
||||
LocalizableStrings.InvalidNuGetVersionRange,
|
||||
_packageVersion));
|
||||
}
|
||||
|
||||
if (_toolPackageStore.EnumeratePackageVersions(_packageId).FirstOrDefault() != null)
|
||||
{
|
||||
_errorReporter.WriteLine(string.Format(LocalizableStrings.ToolAlreadyInstalled, _packageId).Red());
|
||||
return 1;
|
||||
|
@ -113,7 +122,7 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
{
|
||||
package = _toolPackageInstaller.InstallPackage(
|
||||
packageId: _packageId,
|
||||
packageVersion: _packageVersion,
|
||||
versionRange: versionRange,
|
||||
targetFramework: _framework,
|
||||
nugetConfig: configFile,
|
||||
source: _source,
|
||||
|
@ -133,8 +142,8 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
string.Format(
|
||||
LocalizableStrings.InstallationSucceeded,
|
||||
string.Join(", ", package.Commands.Select(c => c.Name)),
|
||||
package.PackageId,
|
||||
package.PackageVersion).Green());
|
||||
package.Id,
|
||||
package.Version.ToNormalizedString()).Green());
|
||||
return 0;
|
||||
}
|
||||
catch (ToolPackageException ex)
|
||||
|
|
|
@ -178,4 +178,7 @@ Tool '{1}' (version '{2}') was successfully installed.</value>
|
|||
<data name="FailedToCreateToolShim" xml:space="preserve">
|
||||
<value>Failed to create shell shim for tool '{0}': {1}</value>
|
||||
</data>
|
||||
<data name="InvalidNuGetVersionRange" xml:space="preserve">
|
||||
<value>Specified version '{0}' is not a valid NuGet version range.</value>
|
||||
</data>
|
||||
</root>
|
|
@ -104,6 +104,11 @@ Instalace byla úspěšná. Pokud nejsou další pokyny, můžete přímo do já
|
|||
<target state="translated">Balíček nástroje nebylo možné obnovit.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ Die Installation war erfolgreich. Sofern keine weiteren Anweisungen vorliegen, k
|
|||
<target state="translated">Das Toolpaket konnte nicht wiederhergestellt werden.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ La instalación se completó correctamente. Si no hay más instrucciones, puede
|
|||
<target state="translated">No se puede restaurar el paquete de la herramienta.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ L'installation a réussi. En l'absence d'instructions supplémentaires, vous pou
|
|||
<target state="translated">Impossible de restaurer le package de l'outil.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ L'installazione è riuscita. Se non ci sono altre istruzioni, è possibile digit
|
|||
<target state="translated">Non è stato possibile ripristinare il pacchetto dello strumento.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ Tool '{1}' (version '{2}') was successfully installed.</source>
|
|||
<target state="translated">ツール パッケージを復元できませんでした。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ Tool '{1}' (version '{2}') was successfully installed.</source>
|
|||
<target state="translated">도구 패키지를 복원할 수 없습니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ Instalacja powiodła się. Jeśli nie ma dodatkowych instrukcji, możesz wpisać
|
|||
<target state="translated">Nie można przywrócić pakietu narzędzia.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ A instalação foi bem-sucedida. Se não houver outras instruções, digite o se
|
|||
<target state="translated">O pacote da ferramenta não pôde ser restaurado.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ Tool '{1}' (version '{2}') was successfully installed.</source>
|
|||
<target state="translated">Не удалось восстановить пакет инструмента.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ Yükleme başarılı oldu. Daha fazla yönerge yoksa, çağırmak için şu komu
|
|||
<target state="translated">Araç paketi geri yüklenemedi.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ Tool '{1}' (version '{2}') was successfully installed.</source>
|
|||
<target state="translated">无法还原工具包。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -104,6 +104,11 @@ Tool '{1}' (version '{2}') was successfully installed.</source>
|
|||
<target state="translated">此工具套件無法還原。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidNuGetVersionRange">
|
||||
<source>Specified version '{0}' is not a valid NuGet version range.</source>
|
||||
<target state="new">Specified version '{0}' is not a valid NuGet version range.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -7,6 +7,7 @@ using Microsoft.DotNet.Cli;
|
|||
using Microsoft.DotNet.Cli.CommandLine;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools.List.ProjectToProjectReferences;
|
||||
using Microsoft.DotNet.Tools.List.Tool;
|
||||
|
||||
namespace Microsoft.DotNet.Tools.List
|
||||
{
|
||||
|
@ -22,16 +23,17 @@ namespace Microsoft.DotNet.Tools.List
|
|||
{
|
||||
{
|
||||
"reference",
|
||||
o => new ListProjectToProjectReferencesCommand(
|
||||
o,
|
||||
ParseResult)
|
||||
o => new ListProjectToProjectReferencesCommand(o, ParseResult)
|
||||
},
|
||||
{
|
||||
"tool",
|
||||
o => new ListToolCommand(o["tool"], ParseResult)
|
||||
}
|
||||
};
|
||||
|
||||
public static int Run(string[] args)
|
||||
{
|
||||
var command = new ListCommand();
|
||||
return command.RunCommand(args);
|
||||
return new ListCommand().RunCommand(args);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,24 +3,24 @@
|
|||
|
||||
using Microsoft.DotNet.Cli.CommandLine;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.DotNet.Tools.List.ProjectToProjectReferences;
|
||||
using Microsoft.DotNet.Tools.List.Tool;
|
||||
using LocalizableStrings = Microsoft.DotNet.Tools.List.LocalizableStrings;
|
||||
|
||||
namespace Microsoft.DotNet.Cli
|
||||
{
|
||||
internal static class ListCommandParser
|
||||
{
|
||||
public static Command List() =>
|
||||
Create.Command("list",
|
||||
LocalizableStrings.NetListCommand,
|
||||
Accept.ZeroOrOneArgument()
|
||||
.With(name: CommonLocalizableStrings.CmdProjectFile,
|
||||
description:
|
||||
CommonLocalizableStrings.ArgumentsProjectDescription)
|
||||
.DefaultToCurrentDirectory(),
|
||||
CommonOptions.HelpOption(),
|
||||
Create.Command("reference",
|
||||
Tools.List.ProjectToProjectReferences.LocalizableStrings.AppFullName,
|
||||
Accept.ZeroOrOneArgument(),
|
||||
CommonOptions.HelpOption()));
|
||||
public static Command List() => Create.Command(
|
||||
"list",
|
||||
LocalizableStrings.NetListCommand,
|
||||
Accept.ZeroOrOneArgument()
|
||||
.With(
|
||||
name: CommonLocalizableStrings.CmdProjectFile,
|
||||
description: CommonLocalizableStrings.ArgumentsProjectDescription)
|
||||
.DefaultToCurrentDirectory(),
|
||||
CommonOptions.HelpOption(),
|
||||
ListProjectToProjectReferencesCommandParser.ListProjectToProjectReferences(),
|
||||
ListToolCommandParser.ListTool());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,126 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AppFullName" xml:space="preserve">
|
||||
<value>.NET Projects in Solution viewer</value>
|
||||
</data>
|
||||
<data name="AppDescription" xml:space="preserve">
|
||||
<value>Command to list projects in a solution</value>
|
||||
</data>
|
||||
</root>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="cs" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">Projekty .NET v prohlížeči řešení</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Příkaz pro zobrazení seznamu projektů v řešení</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="de" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">.NET-Projekte in Projektmappenviewer</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Befehl zum Auflisten von Projekten in einer Projektmappe</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="es" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">Visor de proyectos de NET en la solución</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Comando para mostrar los proyectos de una solución</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="fr" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">Projets .NET dans la visionneuse de solutions</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Commande permettant de lister les projets d'une solution</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="it" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">Progetti .NET nel visualizzatore soluzioni</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Comando per elencare i progetti presenti in una soluzione</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ja" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">ソリューション ビューアー内の .NET プロジェクト</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">ソリューションのプロジェクトを一覧表示するコマンド</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ko" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">.NET 솔루션 뷰어의 프로젝트</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">솔루션의 프로젝트를 나열하기 위한 명령입니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="pl" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">Podgląd projektów w rozwiązaniu dla platformy .NET</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Polecenie umożliwiające wyświetlenie listy projektów w rozwiązaniu</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="pt-BR" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">Projetos .NET no visualizador da Solução</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Comando para listar os projetos em uma solução</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ru" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">Проекты .NET в средстве просмотра решений</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Команда для перечисления проектов в решении</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="tr" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">Çözüm görüntüleyicisinde .NET Projeleri</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">Bir çözümdeki projeleri listeleme komutu</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" original="src/dotnet/commands/dotnet-list/dotnet-list-proj/LocalizableStrings.resx">
|
||||
<body>
|
||||
<group id="src/dotnet/commands/dotnet-list/dotnet-list-proj/LocalizableStrings.resx" />
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="zh-Hans" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">解决方案查看器中的 .NET 项目</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">用于列出解决方案中项目的命令</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="zh-Hant" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Projects in Solution viewer</source>
|
||||
<target state="translated">解決方案檢視器中的 .NET 專案</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to list projects in a solution</source>
|
||||
<target state="translated">命令,用以列出解決方案中的專案</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -50,4 +50,4 @@ namespace Microsoft.DotNet.Tools.List.ProjectToProjectReferences
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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.CommandLine;
|
||||
using LocalizableStrings = Microsoft.DotNet.Tools.List.ProjectToProjectReferences.LocalizableStrings;
|
||||
|
||||
namespace Microsoft.DotNet.Cli
|
||||
{
|
||||
internal static class ListProjectToProjectReferencesCommandParser
|
||||
{
|
||||
public static Command ListProjectToProjectReferences()
|
||||
{
|
||||
return Create.Command(
|
||||
"reference",
|
||||
LocalizableStrings.AppFullName,
|
||||
Accept.ZeroOrOneArgument(),
|
||||
CommonOptions.HelpOption());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -127,4 +127,4 @@
|
|||
<value>There are no {0} references in project {1}.
|
||||
{0} is the type of the item being requested (project, package, p2p) and {1} is the object operated on (a project file or a solution file). </value>
|
||||
</data>
|
||||
</root>
|
||||
</root>
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
// 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 System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.DotNet.Cli;
|
||||
using Microsoft.DotNet.Cli.CommandLine;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Configurer;
|
||||
using Microsoft.DotNet.ToolPackage;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.Tools.List.Tool
|
||||
{
|
||||
internal class ListToolCommand : CommandBase
|
||||
{
|
||||
private const string CommandDelimiter = ", ";
|
||||
private readonly AppliedOption _options;
|
||||
private readonly IToolPackageStore _toolPackageStore;
|
||||
private readonly IReporter _reporter;
|
||||
private readonly IReporter _errorReporter;
|
||||
|
||||
public ListToolCommand(
|
||||
AppliedOption options,
|
||||
ParseResult result,
|
||||
IToolPackageStore toolPackageStore = null,
|
||||
IReporter reporter = null)
|
||||
: base(result)
|
||||
{
|
||||
_options = options ?? throw new ArgumentNullException(nameof(options));
|
||||
_toolPackageStore = toolPackageStore ?? new ToolPackageStore(
|
||||
new DirectoryPath(new CliFolderPathCalculator().ToolsPackagePath));
|
||||
_reporter = reporter ?? Reporter.Output;
|
||||
_errorReporter = reporter ?? Reporter.Error;
|
||||
}
|
||||
|
||||
public override int Execute()
|
||||
{
|
||||
if (!_options.ValueOrDefault<bool>("global"))
|
||||
{
|
||||
throw new GracefulException(LocalizableStrings.ListToolCommandOnlySupportsGlobal);
|
||||
}
|
||||
|
||||
var table = new PrintableTable<IToolPackage>();
|
||||
|
||||
table.AddColumn(
|
||||
LocalizableStrings.PackageIdColumn,
|
||||
p => p.Id.ToString());
|
||||
table.AddColumn(
|
||||
LocalizableStrings.VersionColumn,
|
||||
p => p.Version.ToNormalizedString());
|
||||
table.AddColumn(
|
||||
LocalizableStrings.CommandsColumn,
|
||||
p => string.Join(CommandDelimiter, p.Commands.Select(c => c.Name)));
|
||||
|
||||
table.PrintRows(GetPackages(), l => _reporter.WriteLine(l));
|
||||
return 0;
|
||||
}
|
||||
|
||||
private IEnumerable<IToolPackage> GetPackages()
|
||||
{
|
||||
return _toolPackageStore.EnumeratePackages()
|
||||
.Where(PackageHasCommands)
|
||||
.OrderBy(p => p.Id)
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
private bool PackageHasCommands(IToolPackage p)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Attempt to read the commands collection
|
||||
// If it fails, print a warning and treat as no commands
|
||||
return p.Commands.Count >= 0;
|
||||
}
|
||||
catch (Exception ex) when (ex is ToolConfigurationException)
|
||||
{
|
||||
_errorReporter.WriteLine(
|
||||
string.Format(
|
||||
LocalizableStrings.InvalidPackageWarning,
|
||||
p.Id,
|
||||
ex.Message).Yellow());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
// 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.CommandLine;
|
||||
using LocalizableStrings = Microsoft.DotNet.Tools.List.Tool.LocalizableStrings;
|
||||
|
||||
namespace Microsoft.DotNet.Cli
|
||||
{
|
||||
internal static class ListToolCommandParser
|
||||
{
|
||||
public static Command ListTool()
|
||||
{
|
||||
return Create.Command(
|
||||
"tool",
|
||||
LocalizableStrings.CommandDescription,
|
||||
Create.Option(
|
||||
"-g|--global",
|
||||
LocalizableStrings.GlobalOptionDescription,
|
||||
Accept.NoArguments()),
|
||||
CommonOptions.HelpOption());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -117,13 +117,25 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AppFullName" xml:space="preserve">
|
||||
<value>.NET Add Project to Solution Command</value>
|
||||
<data name="CommandDescription" xml:space="preserve">
|
||||
<value>Lists installed tools in the current development environment.</value>
|
||||
</data>
|
||||
<data name="AppDescription" xml:space="preserve">
|
||||
<value>Command to add project to solution</value>
|
||||
<data name="GlobalOptionDescription" xml:space="preserve">
|
||||
<value>List user wide tools.</value>
|
||||
</data>
|
||||
<data name="AppHelpText" xml:space="preserve">
|
||||
<value>Projects to add to solution</value>
|
||||
<data name="ListToolCommandOnlySupportsGlobal" xml:space="preserve">
|
||||
<value>The --global switch (-g) is currently required because only user wide tools are supported.</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="InvalidPackageWarning" xml:space="preserve">
|
||||
<value>Warning: tool package '{0}' is invalid: {1}</value>
|
||||
</data>
|
||||
<data name="PackageIdColumn" xml:space="preserve">
|
||||
<value>Package Id</value>
|
||||
</data>
|
||||
<data name="VersionColumn" xml:space="preserve">
|
||||
<value>Version</value>
|
||||
</data>
|
||||
<data name="CommandsColumn" xml:space="preserve">
|
||||
<value>Commands</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="cs" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="de" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="es" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="fr" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="it" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ja" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ko" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="pl" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="pt-BR" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ru" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="tr" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="zh-Hans" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="zh-Hant" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="CommandDescription">
|
||||
<source>Lists installed tools in the current development environment.</source>
|
||||
<target state="new">Lists installed tools in the current development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="GlobalOptionDescription">
|
||||
<source>List user wide tools.</source>
|
||||
<target state="new">List user wide tools.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ListToolCommandOnlySupportsGlobal">
|
||||
<source>The --global switch (-g) is currently required because only user wide tools are supported.</source>
|
||||
<target state="new">The --global switch (-g) is currently required because only user wide tools are supported.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="VersionColumn">
|
||||
<source>Version</source>
|
||||
<target state="new">Version</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CommandsColumn">
|
||||
<source>Commands</source>
|
||||
<target state="new">Commands</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdColumn">
|
||||
<source>Package Id</source>
|
||||
<target state="new">Package Id</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidPackageWarning">
|
||||
<source>Warning: tool package '{0}' is invalid: {1}</source>
|
||||
<target state="new">Warning: tool package '{0}' is invalid: {1}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,129 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AppFullName" xml:space="preserve">
|
||||
<value>.NET Remove Project from Solution Command</value>
|
||||
</data>
|
||||
<data name="AppDescription" xml:space="preserve">
|
||||
<value>Command to remove projects from a solution</value>
|
||||
</data>
|
||||
<data name="AppHelpText" xml:space="preserve">
|
||||
<value>Projects to remove from a solution</value>
|
||||
</data>
|
||||
</root>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="cs" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">Příkaz rozhraní .NET pro odebrání projektu z řešení</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">Příkaz pro odebrání projektů z řešení</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">Projekty odebírané z řešení</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="de" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">.NET-Befehl zum Entfernen des Projekts aus der Projektmappe</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">Befehl zum Entfernen von Projekten aus einer Projektmappe</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">Aus einer Projektmappe zu entfernende Projekte</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="es" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">Comando de .NET Quitar proyecto de la solución</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">Comando para quitar proyectos de una solución</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">Proyectos que se quitarán de una solución</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="fr" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">Commande .NET de suppression de projet d'une solution</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">Commande permettant de supprimer des projets d'une solution</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">Projets à supprimer d'une solution</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="it" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">Comando Rimuovi progetto da soluzione .NET</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">Comando per rimuovere il progetto da una soluzione</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">Progetti da rimuovere da una soluzione</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ja" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">.NET Remove Project from Solution コマンド</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">ソリューションからプロジェクトを削除するコマンド</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">ソリューションから削除するプロジェクト</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ko" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">.NET 솔루션에서 프로젝트 제거 명령</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">솔루션에서 프로젝트를 제거하기 위한 명령입니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">솔루션에서 제거할 프로젝트</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="pl" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">Polecenie usuwania projektu z rozwiązania dla platformy .NET</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">Polecenie służące do usuwania projektów z rozwiązania</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">Projekty do usunięcia z rozwiązania</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="pt-BR" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">Comando para Remover Projetos de uma Solução do .NET</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">Comando para remover projetos de uma solução</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">Projetos a serem removidos de uma solução</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
|
||||
<file datatype="xml" source-language="en" target-language="ru" original="../LocalizableStrings.resx">
|
||||
<body>
|
||||
<trans-unit id="AppFullName">
|
||||
<source>.NET Remove Project from Solution Command</source>
|
||||
<target state="translated">Команда .NET "Удалить проект из решения"</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppDescription">
|
||||
<source>Command to remove projects from a solution</source>
|
||||
<target state="translated">Команда для удаления проектов из решения</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="AppHelpText">
|
||||
<source>Projects to remove from a solution</source>
|
||||
<target state="translated">Проекты, удаляемые из решения</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue