Merge branch 'master' into loc_20180129_master
This commit is contained in:
commit
6677d8f0b6
118 changed files with 2252 additions and 1405 deletions
|
@ -1,4 +1,4 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.27130.2020
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
|
@ -236,6 +236,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Tools.Test
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_launcher", "src\tool_launcher\tool_launcher.csproj", "{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dotnet-install-tool.Tests", "test\dotnet-install-tool.Tests\dotnet-install-tool.Tests.csproj", "{8FE9D802-57F3-493B-9E14-72DF905E3838}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -1692,6 +1694,30 @@ Global
|
|||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x64.Build.0 = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x86.Build.0 = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x86.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x86.Build.0 = Debug|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -1767,6 +1793,7 @@ Global
|
|||
{91BFE800-1624-4A58-A1CE-339705A8FFD0} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {B526D2CE-EE2D-4AD4-93EF-1867D90FF1F5}
|
||||
|
|
|
@ -203,3 +203,4 @@ License
|
|||
-------
|
||||
|
||||
By downloading the .zip you are agreeing to the terms in the project [EULA](https://aka.ms/dotnet-core-eula).
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Product>Sdk</Product>
|
||||
<IsNotOrchestratedPublish>true</IsNotOrchestratedPublish>
|
||||
<IsNotOrchestratedPublish Condition="'$(PB_PublishBlobFeedUrl)' != ''">false</IsNotOrchestratedPublish>
|
||||
<BlobStoragePartialRelativePath>Sdk</BlobStoragePartialRelativePath>
|
||||
<BlobStoragePartialRelativePath Condition="'$(IsNotOrchestratedPublish)' == 'false'">assets/$(BlobStoragePartialRelativePath)</BlobStoragePartialRelativePath>
|
||||
<BlobStoragePartialRelativePath>$(Product)</BlobStoragePartialRelativePath>
|
||||
<BlobStoragePartialRelativePath Condition="'$(IsNotOrchestratedPublish)' == 'false'">assets/$(Product)</BlobStoragePartialRelativePath>
|
||||
|
||||
<!-- Values related to the download of assets from blob storage -->
|
||||
<DefaultCoreSetupBlobRootUrl>https://dotnetcli.azureedge.net/dotnet/</DefaultCoreSetupBlobRootUrl>
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
Condition="!Exists('$(AspNetCoreSharedFxArchiveFile)')">
|
||||
<Url>$(CoreSetupRootUrl)$(AspNetCoreVersion)/$(AspNetCoreSharedFxArchiveFileName)$(CoreSetupBlobAccessTokenParam)</Url>
|
||||
<DownloadFileName>$(AspNetCoreSharedFxArchiveFile)</DownloadFileName>
|
||||
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
|
||||
<ExtractDestination>$(AspNetCoreSharedFxPublishDirectory)</ExtractDestination>
|
||||
</_DownloadAndExtractItem>
|
||||
|
||||
<_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<ItemGroup>
|
||||
<BundledSdk Include="NuGet.Build.Tasks.Pack" Version="$(NuGetBuildTasksPackPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk" Version="$(MicrosoftNETSdkPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk.Razor" Version="$(MicrosoftNETSdkRazorPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk.Web" Version="$(MicrosoftNETSdkWebPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk.Publish" Version="$(MicrosoftNETSdkPublishPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk.Web.ProjectSystem" Version="$(MicrosoftNETSdkWebProjectSystemPackageVersion)" />
|
||||
|
|
30
build/CLI_Baseline.csv
Normal file
30
build/CLI_Baseline.csv
Normal file
|
@ -0,0 +1,30 @@
|
|||
sdk\*\microsoft.testplatform.vstestconsole.translationlayer.xml,unsigned,oss
|
||||
sdk\*\sdks\nuget.build.tasks.pack\*\nuget.build.tasks.pack.xml,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\bootstrap.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\bootstrap.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\glyphicons-halflings-regular.ttf,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.unobtrusive.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.unobtrusive.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\npm.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\site.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\site.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\app.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\app.test.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\configurestore.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\counter.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\fetchdata.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\home.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\index.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\karma.conf.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\layout.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\navmenu.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\protractor.conf.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\registerserviceworker.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\weatherforecasts.js,unsigned,oss
|
|
|
@ -1,22 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<MicrosoftAspNetCoreAllPackageVersion>2.1.0-preview1-28124</MicrosoftAspNetCoreAllPackageVersion>
|
||||
<MicrosoftNETCoreAppPackageVersion>2.1.0-preview1-26116-04</MicrosoftNETCoreAppPackageVersion>
|
||||
<MicrosoftAspNetCoreAllPackageVersion>2.1.0-preview2-30057</MicrosoftAspNetCoreAllPackageVersion>
|
||||
<MicrosoftNETCoreAppPackageVersion>2.1.0-preview2-26131-06</MicrosoftNETCoreAppPackageVersion>
|
||||
<MicrosoftNETCoreDotNetHostResolverPackageVersion>$(MicrosoftNETCoreAppPackageVersion)</MicrosoftNETCoreDotNetHostResolverPackageVersion>
|
||||
<MicrosoftBuildPackageVersion>15.6.0-preview-000054-1286830</MicrosoftBuildPackageVersion>
|
||||
<MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildFrameworkPackageVersion>
|
||||
<MicrosoftBuildRuntimePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildRuntimePackageVersion>
|
||||
<MicrosoftBuildLocalizationPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildLocalizationPackageVersion>
|
||||
<MicrosoftBuildUtilitiesCorePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildUtilitiesCorePackageVersion>
|
||||
<MicrosoftFSharpCompilerPackageVersion>4.2.0-rtm-171122-0</MicrosoftFSharpCompilerPackageVersion>
|
||||
<MicrosoftCodeAnalysisCSharpPackageVersion>2.7.0-beta3-62419-03</MicrosoftCodeAnalysisCSharpPackageVersion>
|
||||
<MicrosoftFSharpCompilerPackageVersion>10.1.2-rtm-180131-0</MicrosoftFSharpCompilerPackageVersion>
|
||||
<MicrosoftCodeAnalysisCSharpPackageVersion>2.8.0-beta1-62608-01</MicrosoftCodeAnalysisCSharpPackageVersion>
|
||||
<MicrosoftNETCoreCompilersPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNETCoreCompilersPackageVersion>
|
||||
<MicrosoftCodeAnalysisBuildTasksPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftCodeAnalysisBuildTasksPackageVersion>
|
||||
<MicrosoftNetCompilersNetcorePackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNetCompilersNetcorePackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>2.1.0-preview1-62516-03</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>2.1.300-preview2-62607-04</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
|
||||
<MicrosoftNETSdkWebPackageVersion>2.0.0-rel-20171110-671</MicrosoftNETSdkWebPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>2.1.0-preview2-30028</MicrosoftNETSdkRazorPackageVersion>
|
||||
<MicrosoftNETSdkWebPackageVersion>2.1.0-release21-20180126-1326543</MicrosoftNETSdkWebPackageVersion>
|
||||
<MicrosoftNETSdkPublishPackageVersion>$(MicrosoftNETSdkWebPackageVersion)</MicrosoftNETSdkPublishPackageVersion>
|
||||
<MicrosoftNETSdkWebProjectSystemPackageVersion>$(MicrosoftNETSdkWebPackageVersion)</MicrosoftNETSdkWebProjectSystemPackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>1.0.1-beta3-20180104-1263555</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
|
@ -27,12 +28,12 @@
|
|||
<MicrosoftTemplateEngineCliLocalizationPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineCliLocalizationPackageVersion>
|
||||
<MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>
|
||||
<MicrosoftTemplateEngineUtilsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineUtilsPackageVersion>
|
||||
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0-preview1-26116-04</MicrosoftDotNetPlatformAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>2.1.0-preview1-26116-04</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0-preview2-26131-06</MicrosoftDotNetPlatformAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>2.1.0-preview2-26131-06</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftDotNetCliCommandLinePackageVersion>0.1.1-alpha-174</MicrosoftDotNetCliCommandLinePackageVersion>
|
||||
<MicrosoftDotNetProjectJsonMigrationPackageVersion>1.2.1-alpha-002133</MicrosoftDotNetProjectJsonMigrationPackageVersion>
|
||||
<MicrosoftDotNetToolsMigrateCommandPackageVersion>$(MicrosoftDotNetProjectJsonMigrationPackageVersion)</MicrosoftDotNetToolsMigrateCommandPackageVersion>
|
||||
<MicrosoftDotNetArchivePackageVersion>0.2.0-beta-000059</MicrosoftDotNetArchivePackageVersion>
|
||||
<MicrosoftDotNetArchivePackageVersion>0.2.0-beta-62606-02</MicrosoftDotNetArchivePackageVersion>
|
||||
<MicrosoftDiaSymReaderNativePackageVersion>1.6.0-beta2-25304</MicrosoftDiaSymReaderNativePackageVersion>
|
||||
<NuGetBuildTasksPackageVersion>4.7.0-preview1-4846</NuGetBuildTasksPackageVersion>
|
||||
<NuGetBuildTasksPackPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetBuildTasksPackPackageVersion>
|
||||
|
@ -43,21 +44,19 @@
|
|||
<NuGetPackagingPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetPackagingPackageVersion>
|
||||
<NuGetProjectModelPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetProjectModelPackageVersion>
|
||||
<NuGetVersioningPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetVersioningPackageVersion>
|
||||
<MicrosoftNETTestSdkPackageVersion>15.6.0-preview-20171211-02</MicrosoftNETTestSdkPackageVersion>
|
||||
<MicrosoftNETTestSdkPackageVersion>15.6.0-preview-20180109-01</MicrosoftNETTestSdkPackageVersion>
|
||||
<MicrosoftTestPlatformCLIPackageVersion>$(MicrosoftNETTestSdkPackageVersion)</MicrosoftTestPlatformCLIPackageVersion>
|
||||
<MicrosoftTestPlatformBuildPackageVersion>$(MicrosoftNETTestSdkPackageVersion)</MicrosoftTestPlatformBuildPackageVersion>
|
||||
<XliffTasksPackageVersion>0.2.0-beta-000042</XliffTasksPackageVersion>
|
||||
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
|
||||
<CLI_Deps_Satellites_Build>pre-20171122-1</CLI_Deps_Satellites_Build>
|
||||
<CliDepsSatellitesRoslynPackageVersion>2.6.0-$(CLI_Deps_Satellites_Build)</CliDepsSatellitesRoslynPackageVersion>
|
||||
<CliDepsSatellitesFSharpPackageVersion>4.4.1-$(CLI_Deps_Satellites_Build)</CliDepsSatellitesFSharpPackageVersion>
|
||||
<CliDepsSatellitesRoslynPackageVersion>2.6.0-pre-20171122-1</CliDepsSatellitesRoslynPackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- NOTE: The property group above is in alignment with orchestrated build version naming conventions. -->
|
||||
<Import Condition=" Exists('$(OrchestratedPackageVersionsProps)') " Project="$(OrchestratedPackageVersionsProps)" />
|
||||
|
||||
<PropertyGroup>
|
||||
<CLI_NETStandardLibraryNETFrameworkVersion>2.0.1-servicing-25908-02</CLI_NETStandardLibraryNETFrameworkVersion>
|
||||
<CLI_NETStandardLibraryNETFrameworkVersion>2.0.1-servicing-26011-01</CLI_NETStandardLibraryNETFrameworkVersion>
|
||||
|
||||
<SharedHostVersion>$(MicrosoftNETCoreAppPackageVersion)</SharedHostVersion>
|
||||
<HostFxrVersion>$(MicrosoftNETCoreAppPackageVersion)</HostFxrVersion>
|
||||
|
@ -66,9 +65,9 @@
|
|||
|
||||
<!-- infrastructure and test only dependencies -->
|
||||
<PropertyGroup>
|
||||
<VersionToolsVersion>2.1.0-prerelease-02411-04</VersionToolsVersion>
|
||||
<BuildTasksFeedToolVersion>2.1.0-prerelease-02430-04</BuildTasksFeedToolVersion>
|
||||
<VersionToolsVersion>$(BuildTasksFeedToolVersion)</VersionToolsVersion>
|
||||
<DotnetDebToolVersion>2.0.0-preview2-25331-01</DotnetDebToolVersion>
|
||||
<BuildTasksFeedToolVersion>2.1.0-prerelease-02411-04</BuildTasksFeedToolVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -97,23 +97,25 @@
|
|||
of our build against Microsoft.NETCore.App to find the correct NETStandard.Library version
|
||||
-->
|
||||
<ItemGroup>
|
||||
<_NETStandardLibraryVersions Include="@(PackageDefinitions->'%(Version)')"
|
||||
<_NETStandardLibraryPackageVersions Include="@(PackageDefinitions->'%(Version)')"
|
||||
Condition="%(PackageDefinitions.Name) == 'NetStandard.Library'" />
|
||||
<_NETCorePlatformsImplicitPackageVersion Include="@(PackageDefinitions->'%(Version)')"
|
||||
<_NETCorePlatformsPackageVersions Include="@(PackageDefinitions->'%(Version)')"
|
||||
Condition="%(PackageDefinitions.Name) == 'Microsoft.NETCore.Platforms'" />
|
||||
</ItemGroup>
|
||||
|
||||
<Error Condition="@(_NETStandardLibraryVersions->Distinct()->Count()) != 1"
|
||||
<Error Condition="@(_NETStandardLibraryPackageVersions->Distinct()->Count()) != 1"
|
||||
Text="Failed to determine the NETStandard.Library version pulled in Microsoft.NETCore.App" />
|
||||
<Error Condition="@(_NETCorePlatformsPackageVersions->Distinct()->Count()) != 1"
|
||||
Text="Failed to determine the Microsoft.NETCore.Platforms version pulled in Microsoft.NETCore.App" />
|
||||
|
||||
<PropertyGroup>
|
||||
<_NETCoreAppPackageVersion>$(MicrosoftNETCoreAppPackageVersion)</_NETCoreAppPackageVersion>
|
||||
<_NETStandardPackageVersion>@(_NETStandardLibraryVersions->Distinct())</_NETStandardPackageVersion>
|
||||
<_NETCorePlatformsImplicitPackageVersion>@(_NETCorePlatformsImplicitPackageVersion->Distinct())</_NETCorePlatformsImplicitPackageVersion>
|
||||
<_NETStandardLibraryPackageVersion>@(_NETStandardLibraryPackageVersions->Distinct())</_NETStandardLibraryPackageVersion>
|
||||
<_NETCorePlatformsPackageVersion>@(_NETCorePlatformsPackageVersions->Distinct())</_NETCorePlatformsPackageVersion>
|
||||
|
||||
<!-- Use only major and minor in target framework version -->
|
||||
<_NETCoreAppTargetFrameworkVersion>$(_NETCoreAppPackageVersion.Split('.')[0]).$(_NETCoreAppPackageVersion.Split('.')[1])</_NETCoreAppTargetFrameworkVersion>
|
||||
<_NETStandardTargetFrameworkVersion>$(_NETStandardPackageVersion.Split('.')[0]).$(_NETStandardPackageVersion.Split('.')[1])</_NETStandardTargetFrameworkVersion>
|
||||
<_NETStandardTargetFrameworkVersion>$(_NETStandardLibraryPackageVersion.Split('.')[0]).$(_NETStandardLibraryPackageVersion.Split('.')[1])</_NETStandardTargetFrameworkVersion>
|
||||
|
||||
<BundledVersionsPropsContent>
|
||||
<![CDATA[
|
||||
|
@ -133,8 +135,8 @@ Copyright (c) .NET Foundation. All rights reserved.
|
|||
<BundledNETCoreAppTargetFrameworkVersion>$(_NETCoreAppTargetFrameworkVersion)</BundledNETCoreAppTargetFrameworkVersion>
|
||||
<BundledNETCoreAppPackageVersion>$(_NETCoreAppPackageVersion)</BundledNETCoreAppPackageVersion>
|
||||
<BundledNETStandardTargetFrameworkVersion>$(_NETStandardTargetFrameworkVersion)</BundledNETStandardTargetFrameworkVersion>
|
||||
<BundledNETStandardPackageVersion>$(_NETStandardPackageVersion)</BundledNETStandardPackageVersion>
|
||||
<NETCorePlatformsImplicitPackageVersion>$(_NETCorePlatformsImplicitPackageVersion)</NETCorePlatformsImplicitPackageVersion>
|
||||
<BundledNETStandardPackageVersion>$(_NETStandardLibraryPackageVersion)</BundledNETStandardPackageVersion>
|
||||
<BundledNETCorePlatformsPackageVersion>$(_NETCorePlatformsPackageVersion)</BundledNETCorePlatformsPackageVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
]]>
|
||||
|
|
|
@ -28,9 +28,8 @@
|
|||
<add key="xunit" value="https://www.myget.org/F/xunit/api/v3/index.json" />
|
||||
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||
<add key="vstest" value="https://dotnet.myget.org/F/vstest/api/v3/index.json" />
|
||||
<add key="web-api" value="https://dotnet.myget.org/F/dotnet-web/api/v3/index.json" />
|
||||
<add key="symreader-native" value="https://dotnet.myget.org/F/symreader-native/api/v3/index.json" />
|
||||
<add key="nuget-build" value="https://dotnet.myget.org/F/nuget-build/api/v3/index.json" />
|
||||
<add key="dotnet-corefxlab" value="https://dotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json" />
|
||||
]]>
|
||||
</NugetConfigCLIFeeds>
|
||||
|
||||
|
|
|
@ -20,8 +20,7 @@
|
|||
<IntermediateDirectory>$(BaseOutputDirectory)/intermediate</IntermediateDirectory>
|
||||
<PackagesDirectory>$(BaseOutputDirectory)/packages</PackagesDirectory>
|
||||
<SharedFrameworkPublishDirectory>$(IntermediateDirectory)/sharedFrameworkPublish</SharedFrameworkPublishDirectory>
|
||||
<!-- The 'AspNetRuntimePackageStorePublishDirectory' needs to be very short due to path length constraints on Win8.1 -->
|
||||
<AspNetRuntimePackageStorePublishDirectory>$(BaseOutputDirectory)/AspRT</AspNetRuntimePackageStorePublishDirectory>
|
||||
<AspNetCoreSharedFxPublishDirectory>$(IntermediateDirectory)/aspnetSharedFxPublish</AspNetCoreSharedFxPublishDirectory>
|
||||
<BackwardsCompatibleSharedFrameworksPublishDirectory>$(IntermediateDirectory)/backwardsCompatibleSharedFrameworksPublish</BackwardsCompatibleSharedFrameworksPublishDirectory>
|
||||
<TestOutputDir>$(BaseOutputDirectory)/test/</TestOutputDir>
|
||||
<DotnetInOutputDirectory>$(OutputDirectory)/dotnet$(ExeExtension)</DotnetInOutputDirectory>
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
ManifestBuildId="$(FullNugetVersion)"
|
||||
ManifestCommit="$(CommitHash)"
|
||||
ManifestName="$(BuildName)"
|
||||
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
|
||||
Overwrite="false"
|
||||
PublishFlatContainer="true"
|
||||
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
<!-- Built binaries -->
|
||||
<FilesToSign Include="$(OutputDirectory)/sdk/**/csc.exe;
|
||||
$(OutputDirectory)/sdk/**/csc.dll;
|
||||
$(OutputDirectory)/sdk/**/VBCSCompiler.dll;
|
||||
$(OutputDirectory)/sdk/**/vbc.exe;
|
||||
$(OutputDirectory)/sdk/**/vbc.dll;
|
||||
$(OutputDirectory)/sdk/**/fsc.exe;
|
||||
|
|
|
@ -120,5 +120,4 @@
|
|||
<GeneratedInstallers Include="$(SdkInstallerFile)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- AcquireWix Properties -->
|
||||
<PropertyGroup>
|
||||
<WixVersion>3.10.2</WixVersion>
|
||||
<WixVersion>3.10.4</WixVersion>
|
||||
<WixDownloadUrl>https://dotnetcli.azureedge.net/build/wix/wix.$(WixVersion).zip</WixDownloadUrl>
|
||||
<WixRoot>$(IntermediateDirectory)/WixTools/$(WixVersion)</WixRoot>
|
||||
<WixDestinationPath>$(WixRoot)/WixTools.$(WixVersion).zip</WixDestinationPath>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<CombinedHostHostFxrFrameworkSdkInput Include="$(OutputDirectory)/**/*" />
|
||||
<SdkLanguagePackInput Include="$(OutputDirectory)/sdk/**/$(SatelliteAssemblies)" />
|
||||
|
||||
<AspNetRuntimeFilesInput Include="$(AspNetRuntimePackageStorePublishDirectory)/**/*" />
|
||||
<AspNetRuntimeFilesInput Include="$(AspNetCoreSharedFxPublishDirectory)/**/*" />
|
||||
|
||||
<MSBuildExtensionsInput Include="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions/**/*" />
|
||||
<MSBuildExtensionsVerInput Include="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions-ver/**/*" />
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
ManifestBuildId="$(FullNugetVersion)"
|
||||
ManifestCommit="$(CommitHash)"
|
||||
ManifestName="$(BuildName)"
|
||||
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
|
||||
Overwrite="$(OverwriteOnPublish)"
|
||||
PublishFlatContainer="true"
|
||||
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
|
||||
|
@ -51,6 +52,7 @@
|
|||
ManifestBuildId="$(FullNugetVersion)"
|
||||
ManifestCommit="$(CommitHash)"
|
||||
ManifestName="$(BuildName)"
|
||||
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
|
||||
Overwrite="$(OverwriteOnPublish)"
|
||||
PublishFlatContainer="true"
|
||||
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
ManifestBuildId="$(FullNugetVersion)"
|
||||
ManifestCommit="$(CommitHash)"
|
||||
ManifestName="$(BuildName)"
|
||||
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
|
||||
Overwrite="true"
|
||||
PublishFlatContainer="false"
|
||||
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="$(DependencyPackageName)" Version="$(DependencyPackageVersion)" />
|
||||
<PackageReference Condition="'$(DependencyPackageName)' == 'Microsoft.NET.Sdk.Web'" Include="Microsoft.NET.Sdk" Version="$(MicrosoftNETSdkPackageVersion)" />
|
||||
<PackageReference Condition="'$(DependencyPackageName)' == 'Microsoft.NET.Sdk.Web'" Include="Microsoft.NET.Sdk.Razor" Version="$(MicrosoftNETSdkRazorPackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<PackageReference Include="NETStandard.Library" Version="1.6.0" />
|
||||
<PackageReference Include="System.Diagnostics.Process" Version="4.1.0" />
|
||||
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="1.0.1-beta-000933" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="1.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -19,11 +19,12 @@
|
|||
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="15.4.8" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.0.1" />
|
||||
<PackageReference Include="System.Dynamic.Runtime" Version="4.0.11" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="1.4.1-beta-24410-02" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="1.4.2" />
|
||||
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="4.1.1" />
|
||||
<PackageReference Include="System.Xml.XmlSerializer" Version="4.0.11" />
|
||||
<PackageReference Include="WindowsAzure.Storage" Version="7.2.1" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="2.0.0" />
|
||||
|
||||
<PackageReference Include="Microsoft.DotNet.VersionTools" Version="$(VersionToolsVersion)" />
|
||||
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="$(BuildTasksFeedToolVersion)" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.0" />
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
<PackageReference Include="NETStandard.Library" Version="1.6.0" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.0.1" />
|
||||
<PackageReference Include="System.Dynamic.Runtime" Version="4.0.11" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="1.4.1-beta-24410-02" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="1.4.2" />
|
||||
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="4.1.1" />
|
||||
<PackageReference Include="System.Threading.Thread" Version="4.0.0" />
|
||||
<PackageReference Include="System.Xml.XmlSerializer" Version="4.0.11" />
|
||||
<PackageReference Include="WindowsAzure.Storage" Version="7.2.1" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="1.0.1-beta-000933" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="1.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -39,12 +39,15 @@ namespace Microsoft.DotNet.Scripts
|
|||
|
||||
private Lazy<string> _dotNetVersionUrl = new Lazy<string>(() => GetEnvironmentVariable("DOTNET_VERSION_URL", "https://raw.githubusercontent.com/dotnet/versions/master/build-info"));
|
||||
private Lazy<string> _coreSetupVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("CORESETUP_VERSION_FRAGMENT", GetDefaultCoreSetupVersionFragment()));
|
||||
|
||||
private Lazy<string> _roslynVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("ROSLYN_VERSION_FRAGMENT"));
|
||||
private Lazy<string> _gitHubUpstreamOwner = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_OWNER", "dotnet"));
|
||||
private Lazy<string> _gitHubProject = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PROJECT", "cli"));
|
||||
private Lazy<string> _gitHubUpstreamBranch = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_BRANCH", GetDefaultUpstreamBranch()));
|
||||
private Lazy<string[]> _gitHubPullRequestNotifications = new Lazy<string[]>(() =>
|
||||
GetEnvironmentVariable("GITHUB_PULL_REQUEST_NOTIFICATIONS", "")
|
||||
.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
|
||||
|
||||
private Config()
|
||||
{
|
||||
}
|
||||
|
@ -54,6 +57,8 @@ namespace Microsoft.DotNet.Scripts
|
|||
public string Password => _password.Value;
|
||||
public string DotNetVersionUrl => _dotNetVersionUrl.Value;
|
||||
public string CoreSetupVersionFragment => _coreSetupVersionFragment.Value;
|
||||
public string RoslynVersionFragment => _roslynVersionFragment.Value;
|
||||
public bool HasRoslynVersionFragment => !string.IsNullOrEmpty(RoslynVersionFragment);
|
||||
public string GitHubUpstreamOwner => _gitHubUpstreamOwner.Value;
|
||||
public string GitHubProject => _gitHubProject.Value;
|
||||
public string GitHubUpstreamBranch => _gitHubUpstreamBranch.Value;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
using Microsoft.DotNet.VersionTools;
|
||||
using Microsoft.DotNet.VersionTools.Automation;
|
||||
using Microsoft.DotNet.VersionTools.Dependencies;
|
||||
using Microsoft.DotNet.VersionTools.Dependencies.BuildOutput;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
|
@ -27,9 +28,14 @@ namespace Microsoft.DotNet.Scripts
|
|||
|
||||
buildInfos.Add(GetBuildInfo("CoreSetup", s_config.CoreSetupVersionFragment, fetchLatestReleaseFile: false));
|
||||
|
||||
if (s_config.HasRoslynVersionFragment)
|
||||
{
|
||||
buildInfos.Add(GetBuildInfo("Roslyn", s_config.RoslynVersionFragment, fetchLatestReleaseFile: false));
|
||||
}
|
||||
|
||||
IEnumerable<IDependencyUpdater> updaters = GetUpdaters();
|
||||
var dependencyBuildInfos = buildInfos.Select(buildInfo =>
|
||||
new DependencyBuildInfo(
|
||||
new BuildDependencyInfo(
|
||||
buildInfo,
|
||||
upgradeStableVersions: true,
|
||||
disabledPackages: Enumerable.Empty<string>()));
|
||||
|
@ -50,11 +56,14 @@ namespace Microsoft.DotNet.Scripts
|
|||
body += PullRequestCreator.NotificationString(s_config.GitHubPullRequestNotifications);
|
||||
}
|
||||
|
||||
new PullRequestCreator(gitHubAuth, origin, upstreamBranch)
|
||||
new PullRequestCreator(gitHubAuth)
|
||||
.CreateOrUpdateAsync(
|
||||
suggestedMessage,
|
||||
suggestedMessage + $" ({upstreamBranch.Name})",
|
||||
body)
|
||||
body,
|
||||
upstreamBranch,
|
||||
origin,
|
||||
new PullRequestOptions())
|
||||
.Wait();
|
||||
}
|
||||
}
|
||||
|
@ -84,6 +93,11 @@ namespace Microsoft.DotNet.Scripts
|
|||
yield return CreateRegexUpdater(dependencyVersionsPath, "MicrosoftNETCoreAppPackageVersion", "Microsoft.NETCore.App");
|
||||
yield return CreateRegexUpdater(dependencyVersionsPath, "MicrosoftDotNetPlatformAbstractionsPackageVersion", "Microsoft.DotNet.PlatformAbstractions");
|
||||
yield return CreateRegexUpdater(dependencyVersionsPath, "MicrosoftExtensionsDependencyModelPackageVersion", "Microsoft.Extensions.DependencyModel");
|
||||
|
||||
if (s_config.HasRoslynVersionFragment)
|
||||
{
|
||||
yield return CreateRegexUpdater(dependencyVersionsPath, "MicrosoftCodeAnalysisCSharpPackageVersion", "Microsoft.CodeAnalysis.CSharp");
|
||||
}
|
||||
}
|
||||
|
||||
private static IDependencyUpdater CreateRegexUpdater(string repoRelativePath, string propertyName, string packageId)
|
||||
|
|
|
@ -24,14 +24,15 @@
|
|||
|
||||
<Text X="155" Y="80" Width="-11" Height="-70" TabStop="no" FontId="2" HexStyle="0x800000" DisablePrefix="yes" />
|
||||
<Text Name="WelcomeHeaderMessage" X="160" Y="81" Width="300" Height="30" TabStop="yes" FontId="2">#(loc.WelcomeHeaderMessage)</Text>
|
||||
<Text Name="WelcomeDescription" X="160" Y="125" Width="460" Height="65" TabStop="yes" FontId="3">#(loc.WelcomeDescription)</Text>
|
||||
<Text Name="LearnMoreTitle" X="160" Y="179" Width="460" Height="30" TabStop="yes" FontId="2">#(loc.LearnMoreTitle)</Text>
|
||||
<Hypertext Name="CoreDocumentationLink" X="185" Y="223" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.CoreDocumentationLink)</Hypertext>
|
||||
<Hypertext Name="SDKDocumentation" X="185" Y="243" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SDKDocumentation)</Hypertext>
|
||||
<Hypertext Name="PrivacyStatementLink" X="185" Y="263" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.PrivacyStatementLink)</Hypertext>
|
||||
<Hypertext Name="MITLicenseLink" X="185" Y="283" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.MITLicenseLink)</Hypertext>
|
||||
<Text Name="InstallationNoteTitle" X="160" Y="308" Width="460" Height="30" TabStop="yes" FontId="2">#(loc.InstallationNoteTitle)</Text>
|
||||
<Text Name="InstallationNote" X="160" Y="352" Width="460" Height="30" TabStop="yes" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.InstallationNote)</Text>
|
||||
<Text Name="WelcomeDescription" X="160" Y="115" Width="460" Height="65" TabStop="yes" FontId="3">#(loc.WelcomeDescription)</Text>
|
||||
<Text Name="LearnMoreTitle" X="160" Y="164" Width="460" Height="30" TabStop="yes" FontId="2">#(loc.LearnMoreTitle)</Text>
|
||||
<Hypertext Name="CoreDocumentationLink" X="185" Y="198" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.CoreDocumentationLink)</Hypertext>
|
||||
<Hypertext Name="SDKDocumentation" X="185" Y="218" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SDKDocumentation)</Hypertext>
|
||||
<Hypertext Name="PrivacyStatementLink" X="185" Y="238" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.PrivacyStatementLink)</Hypertext>
|
||||
<Hypertext Name="MITLicenseLink" X="185" Y="258" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.MITLicenseLink)</Hypertext>
|
||||
<Text Name="InstallationNoteTitle" X="160" Y="278" Width="460" Height="30" TabStop="yes" FontId="2">#(loc.InstallationNoteTitle)</Text>
|
||||
<Text Name="InstallationNote" X="160" Y="312" Width="460" Height="30" TabStop="yes" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.InstallationNote)</Text>
|
||||
<Hypertext Name="VisualStudioWarning" X="160" Y="350" Width="460" Height="30" TabStop="yes" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.VisualStudioWarning)</Hypertext>
|
||||
<Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallInstallButton)</Button>
|
||||
<Button Name="WelcomeCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallCloseButton)</Button>
|
||||
</Page>
|
||||
|
|
|
@ -74,4 +74,6 @@ Resources
|
|||
<String Id="InstallationNoteTitle">Installation note</String>
|
||||
<String Id="InstallationNote">A command will be run during the install process that will improve project restore speed and enable offline access. It will take up to a minute to complete.
|
||||
</String>
|
||||
<String Id="VisualStudioWarning">If you plan to use .NET Core 2.1 with Visual Studio, Visual Studio 2017 15.7 or newer is recommended. <A HREF="https://go.microsoft.com/fwlink/?linkid=866799">Learn More</A>.
|
||||
</String>
|
||||
</WixLocalization>
|
||||
|
|
|
@ -29,12 +29,15 @@ if($Help)
|
|||
|
||||
# The first 'pass' call to "dotnet msbuild build.proj" has a hard-coded "WriteDynamicPropsToStaticPropsFiles" target
|
||||
# therefore, this call should not have other targets defined. Remove all targets passed in as 'extra parameters'.
|
||||
$ExtraParametersNoTargets = ""
|
||||
foreach ($param in $ExtraParameters.split())
|
||||
if ($ExtraParameters)
|
||||
{
|
||||
if((-not $param.StartsWith("/t")) -and (-not $param.StartsWith("/T")))
|
||||
$ExtraParametersNoTargets = $ExtraParameters.GetRange(0,$ExtraParameters.Count)
|
||||
foreach ($param in $ExtraParameters)
|
||||
{
|
||||
$ExtraParametersNoTargets += "{0} " -f $param
|
||||
if(($param.StartsWith("/t:", [StringComparison]::OrdinalIgnoreCase)) -or ($param.StartsWith("/target:", [StringComparison]::OrdinalIgnoreCase)))
|
||||
{
|
||||
$ExtraParametersNoTargets.Remove("$param") | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -130,7 +130,8 @@ done
|
|||
argsnotargets=( )
|
||||
for arg in ${args[@]}
|
||||
do
|
||||
if [[ $arg != '/t'* ]] && [[ $arg != '/T'* ]]; then
|
||||
arglower="$(echo $arg | awk '{print tolower($0)}')"
|
||||
if [[ $arglower != '/t:'* ]] && [[ $arglower != '/target:'* ]]; then
|
||||
argsnotargets+=($arg)
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -12,20 +12,23 @@ namespace Microsoft.DotNet.Configurer
|
|||
{
|
||||
public class CliFolderPathCalculator
|
||||
{
|
||||
private const string ToolsFolderName = "tools";
|
||||
// ToolsShimFolderName ToolPackageFolderName cannot be the same
|
||||
// or if the PackageId is the same as CommandName, they will conflict on unix.
|
||||
private const string ToolsShimFolderName = "tools";
|
||||
private const string ToolPackageFolderName = "toolspkgs";
|
||||
private const string DotnetProfileDirectoryName = ".dotnet";
|
||||
|
||||
public string CliFallbackFolderPath => Environment.GetEnvironmentVariable("DOTNET_CLI_TEST_FALLBACKFOLDER") ??
|
||||
Path.Combine(new DirectoryInfo(AppContext.BaseDirectory).Parent.FullName, "NuGetFallbackFolder");
|
||||
|
||||
public string ExecutablePackagesPath => Path.Combine(DotnetUserProfileFolderPath, ToolsFolderName);
|
||||
|
||||
public BashPathUnderHomeDirectory ExecutablePackagesPathInUnix
|
||||
public string ToolsShimPath => Path.Combine(DotnetUserProfileFolderPath, ToolsShimFolderName);
|
||||
public string ToolsPackagePath => Path.Combine(DotnetUserProfileFolderPath, ToolPackageFolderName);
|
||||
public BashPathUnderHomeDirectory ToolsShimPathInUnix
|
||||
{
|
||||
get
|
||||
{
|
||||
return new BashPathUnderHomeDirectory(Environment.GetEnvironmentVariable("HOME"),
|
||||
Path.Combine(DotnetProfileDirectoryName, ToolsFolderName));
|
||||
Path.Combine(DotnetProfileDirectoryName, ToolsShimFolderName));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -150,6 +150,8 @@ Here are some options to fix this error:
|
|||
<data name="AspNetCertificateInstalled" xml:space="preserve">
|
||||
<value>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</value>
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</value>
|
||||
</data>
|
||||
</root>
|
|
@ -61,8 +61,10 @@ Tuto chybu můžete opravit pomocí některé z těchto možností:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Nainstaloval se vývojový certifikát ASP.NET Core HTTPS. Další informace najdete na https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Im Folgenden finden Sie einige Optionen, um diesen Fehler zu beheben:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Installiertes ASP.NET Core-HTTPS-Entwicklungszertifikat. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -60,8 +60,10 @@ Estas son algunas opciones para corregir este error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Se instaló el certificado de desarrollo HTTPS de ASP.NET Core. Para más información, vaya a https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Voici quelques options pour corriger cette erreur :
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Certificat de développement HTTPS ASP.NET Core installé. Pour plus d’informations, accédez à https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Ecco alcune opzioni per correggere questo errore:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Il certificato di sviluppo HTTPS di ASP.NET Core è stato installato. Per altre informazioni, vedere https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
ASP.NET Core HTTPS 開発証明書をインストールしました。詳しくは、https://go.microsoft.com/fwlink/?linkid=84805 をご覧ください</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
설치된 ASP.NET Core HTTPS 개발 인증서. 자세한 내용은 https://go.microsoft.com/fwlink/?linkid=84805을(를) 참조하세요.</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Oto kilka opcji naprawiania tego błędu:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Zainstalowany certyfikat programistyczny HTTPS ASP.NET Core. Aby uzyskać więcej informacji, przejdź na adres https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Aqui estão algumas opções para corrigir este erro:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Certificado de desenvolvimento de HTTPS do ASP.NET Core instalado. Para obter mais informações, vá para https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Установлен сертификат для HTTPS-разработки на ASP.NET Core. Дополнительные сведения: https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Bu hatayı düzeltmek için bazı seçenekler:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
ASP.NET Core HTTPS geliştirme sertifikası yüklendi. Daha fazla bilgi için bkz. https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
安装 ASP.NET Core HTTPS 开发证书。有关详细信息,请转到 https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
已安裝 ASP.NET Core HTTPS 開發憑證。如需詳細資訊,請前往 https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -47,5 +47,10 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
|
|||
{
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
|
||||
public void Delete(string path, bool recursive)
|
||||
{
|
||||
Directory.Delete(path, recursive);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,5 +45,10 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
|
|||
{
|
||||
File.WriteAllText(path, content);
|
||||
}
|
||||
|
||||
public void Delete(string path)
|
||||
{
|
||||
File.Delete(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,5 +16,7 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
|
|||
string GetDirectoryFullName(string path);
|
||||
|
||||
void CreateDirectory(string path);
|
||||
|
||||
void Delete(string path, bool recursive);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,5 +24,7 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
|
|||
void CreateEmptyFile(string path);
|
||||
|
||||
void WriteAllText(string path, string content);
|
||||
|
||||
void Delete(string path);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -520,28 +520,26 @@
|
|||
<data name="NoRestoreDescription" xml:space="preserve">
|
||||
<value>Does not do an implicit restore when executing the command.</value>
|
||||
</data>
|
||||
<data name="CannotBeNullOrWhitespace" xml:space="preserve">
|
||||
<value>Cannot be null or whitespace.</value>
|
||||
</data>
|
||||
<data name="ContainInvalidCharacters" xml:space="preserve">
|
||||
<value>Contains one or more invalid characters: {0}</value>
|
||||
</data>
|
||||
<data name="NuGetConfigurationFileDoesNotExist" xml:space="preserve">
|
||||
<value>NuGet configuration file {0} does not exist.</value>
|
||||
</data>
|
||||
<data name="ToolSettingInvalidRunner" xml:space="preserve">
|
||||
<value>The tool's settings file has non "dotnet" as runner.</value>
|
||||
</data>
|
||||
<data name="ToolSettingMoreThanOneCommand" xml:space="preserve">
|
||||
<value>The tool's settings file has more than one command defined.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsContainError" xml:space="preserve">
|
||||
<value>The tool's settings file contains error.
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="ToolSettingsInvalidXml" xml:space="preserve">
|
||||
<value>The tool's settings file is invalid xml.
|
||||
{0}</value>
|
||||
<value>Invalid XML: {0}</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMissingCommandName" xml:space="preserve">
|
||||
<value>Tool defines a command with a missing name setting.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMissingEntryPoint" xml:space="preserve">
|
||||
<value>Command '{0}' is missing an entry point setting.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsInvalidCommandName" xml:space="preserve">
|
||||
<value>Command '{0}' contains one or more of the following invalid characters: {1}.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMoreThanOneCommand" xml:space="preserve">
|
||||
<value>More than one command is defined for the tool.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsUnsupportedRunner" xml:space="preserve">
|
||||
<value>Command '{0}' uses unsupported runner '{1}'."</value>
|
||||
</data>
|
||||
<data name="EnvironmentPathLinuxManualInstruction" xml:space="preserve">
|
||||
<value>Cannot find the tools executable path. Please ensure {0} is added to your PATH.
|
||||
|
@ -590,4 +588,7 @@ Output: {1}</value>
|
|||
<data name="ToolPackageMissingSettingsFile" xml:space="preserve">
|
||||
<value>Package '{0}' is missing tool settings file DotnetToolSettings.xml.</value>
|
||||
</data>
|
||||
<data name="ToolPackageConflictPackageId" xml:space="preserve">
|
||||
<value>Tool '{0}' is already installed.</value>
|
||||
</data>
|
||||
</root>
|
52
src/dotnet/ShellShim/CreateShimTransaction.cs
Normal file
52
src/dotnet/ShellShim/CreateShimTransaction.cs
Normal file
|
@ -0,0 +1,52 @@
|
|||
// 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.Transactions;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ShellShim
|
||||
{
|
||||
internal class CreateShimTransaction : IEnlistmentNotification
|
||||
{
|
||||
private readonly Action<List<FilePath>> _createShim;
|
||||
private readonly Action<List<FilePath>> _rollback;
|
||||
private List<FilePath> _locationOfShimDuringTransaction = new List<FilePath>();
|
||||
|
||||
public CreateShimTransaction(
|
||||
Action<List<FilePath>> createShim,
|
||||
Action<List<FilePath>> rollback)
|
||||
{
|
||||
_createShim = createShim ?? throw new ArgumentNullException(nameof(createShim));
|
||||
_rollback = rollback ?? throw new ArgumentNullException(nameof(rollback));
|
||||
}
|
||||
|
||||
public void CreateShim()
|
||||
{
|
||||
_createShim(_locationOfShimDuringTransaction);
|
||||
}
|
||||
|
||||
public void Commit(Enlistment enlistment)
|
||||
{
|
||||
enlistment.Done();
|
||||
}
|
||||
|
||||
public void InDoubt(Enlistment enlistment)
|
||||
{
|
||||
Rollback(enlistment);
|
||||
}
|
||||
|
||||
public void Prepare(PreparingEnlistment preparingEnlistment)
|
||||
{
|
||||
preparingEnlistment.Done();
|
||||
}
|
||||
|
||||
public void Rollback(Enlistment enlistment)
|
||||
{
|
||||
_rollback(_locationOfShimDuringTransaction);
|
||||
|
||||
enlistment.Done();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -32,20 +32,20 @@ namespace Microsoft.DotNet.ShellShim
|
|||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
environmentPath = new WindowsEnvironmentPath(
|
||||
cliFolderPathCalculator.ExecutablePackagesPath,
|
||||
cliFolderPathCalculator.ToolsShimPath,
|
||||
Reporter.Output);
|
||||
}
|
||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && hasSuperUserAccess)
|
||||
{
|
||||
environmentPath = new LinuxEnvironmentPath(
|
||||
cliFolderPathCalculator.ExecutablePackagesPathInUnix,
|
||||
cliFolderPathCalculator.ToolsShimPathInUnix,
|
||||
Reporter.Output,
|
||||
environmentProvider, new FileWrapper());
|
||||
}
|
||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && hasSuperUserAccess)
|
||||
{
|
||||
environmentPath = new OSXEnvironmentPath(
|
||||
executablePath: cliFolderPathCalculator.ExecutablePackagesPathInUnix,
|
||||
executablePath: cliFolderPathCalculator.ToolsShimPathInUnix,
|
||||
reporter: Reporter.Output,
|
||||
environmentProvider: environmentProvider,
|
||||
fileSystem: new FileWrapper());
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
namespace Microsoft.DotNet.ShellShim
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ShellShim
|
||||
{
|
||||
public interface IShellShimMaker
|
||||
{
|
||||
void CreateShim(string packageExecutablePath, string shellCommandName);
|
||||
void CreateShim(FilePath packageExecutable, string shellCommandName);
|
||||
void EnsureCommandNameUniqueness(string shellCommandName);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,12 @@
|
|||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Transactions;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools;
|
||||
|
@ -22,32 +24,71 @@ namespace Microsoft.DotNet.ShellShim
|
|||
|
||||
public ShellShimMaker(string pathToPlaceShim)
|
||||
{
|
||||
_pathToPlaceShim =
|
||||
pathToPlaceShim ?? throw new ArgumentNullException(nameof(pathToPlaceShim));
|
||||
_pathToPlaceShim = pathToPlaceShim ?? throw new ArgumentNullException(nameof(pathToPlaceShim));
|
||||
}
|
||||
|
||||
public void CreateShim(string packageExecutablePath, string shellCommandName)
|
||||
public void CreateShim(FilePath packageExecutable, string shellCommandName)
|
||||
{
|
||||
var createShimTransaction = new CreateShimTransaction(
|
||||
createShim: locationOfShimDuringTransaction =>
|
||||
{
|
||||
EnsureCommandNameUniqueness(shellCommandName);
|
||||
PlaceShim(packageExecutable, shellCommandName, locationOfShimDuringTransaction);
|
||||
},
|
||||
rollback: locationOfShimDuringTransaction =>
|
||||
{
|
||||
foreach (FilePath f in locationOfShimDuringTransaction)
|
||||
{
|
||||
if (File.Exists(f.Value))
|
||||
{
|
||||
File.Delete(f.Value);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
using (var transactionScope = new TransactionScope())
|
||||
{
|
||||
Transaction.Current.EnlistVolatile(createShimTransaction, EnlistmentOptions.None);
|
||||
createShimTransaction.CreateShim();
|
||||
|
||||
transactionScope.Complete();
|
||||
}
|
||||
}
|
||||
|
||||
private void PlaceShim(FilePath packageExecutable, string shellCommandName, List<FilePath> locationOfShimDuringTransaction)
|
||||
{
|
||||
FilePath shimPath = GetShimPath(shellCommandName);
|
||||
|
||||
if (!Directory.Exists(shimPath.GetDirectoryPath().Value))
|
||||
{
|
||||
Directory.CreateDirectory(shimPath.GetDirectoryPath().Value);
|
||||
}
|
||||
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
CreateConfigFile(shimPath.Value + ".config", entryPoint: packageExecutablePath, runner: "dotnet");
|
||||
FilePath windowsConfig = GetWindowsConfigPath(shellCommandName);
|
||||
CreateConfigFile(
|
||||
windowsConfig,
|
||||
entryPoint: packageExecutable,
|
||||
runner: "dotnet");
|
||||
|
||||
locationOfShimDuringTransaction.Add(windowsConfig);
|
||||
|
||||
using (var shim = File.Create(shimPath.Value))
|
||||
using (var exe = typeof(ShellShimMaker).Assembly.GetManifestResourceStream(LauncherExeResourceName))
|
||||
{
|
||||
exe.CopyTo(shim);
|
||||
}
|
||||
locationOfShimDuringTransaction.Add(shimPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
var packageExecutable = new FilePath(packageExecutablePath);
|
||||
|
||||
var script = new StringBuilder();
|
||||
script.AppendLine("#!/bin/sh");
|
||||
script.AppendLine($"dotnet {packageExecutable.ToQuotedString()} \"$@\"");
|
||||
|
||||
File.WriteAllText(shimPath.Value, script.ToString());
|
||||
locationOfShimDuringTransaction.Add(shimPath);
|
||||
|
||||
SetUserExecutionPermissionToShimFile(shimPath);
|
||||
}
|
||||
|
@ -55,7 +96,7 @@ namespace Microsoft.DotNet.ShellShim
|
|||
|
||||
public void EnsureCommandNameUniqueness(string shellCommandName)
|
||||
{
|
||||
if (File.Exists(Path.Combine(_pathToPlaceShim, shellCommandName)))
|
||||
if (File.Exists(GetShimPath(shellCommandName).Value))
|
||||
{
|
||||
throw new GracefulException(
|
||||
string.Format(CommonLocalizableStrings.FailInstallToolSameName,
|
||||
|
@ -63,22 +104,27 @@ namespace Microsoft.DotNet.ShellShim
|
|||
}
|
||||
}
|
||||
|
||||
internal void CreateConfigFile(string outputPath, string entryPoint, string runner)
|
||||
internal void CreateConfigFile(FilePath outputPath, FilePath entryPoint, string runner)
|
||||
{
|
||||
XDocument config;
|
||||
using (var resource = typeof(ShellShimMaker).Assembly.GetManifestResourceStream(LauncherConfigResourceName))
|
||||
using(var resource = typeof(ShellShimMaker).Assembly.GetManifestResourceStream(LauncherConfigResourceName))
|
||||
{
|
||||
config = XDocument.Load(resource);
|
||||
}
|
||||
|
||||
var appSettings = config.Descendants("appSettings").First();
|
||||
appSettings.Add(new XElement("add", new XAttribute("key", "entryPoint"), new XAttribute("value", entryPoint)));
|
||||
appSettings.Add(new XElement("add", new XAttribute("key", "entryPoint"), new XAttribute("value", entryPoint.Value)));
|
||||
appSettings.Add(new XElement("add", new XAttribute("key", "runner"), new XAttribute("value", runner ?? string.Empty)));
|
||||
config.Save(outputPath);
|
||||
config.Save(outputPath.Value);
|
||||
}
|
||||
|
||||
public void Remove(string shellCommandName)
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
File.Delete(GetWindowsConfigPath(shellCommandName).Value);
|
||||
}
|
||||
|
||||
File.Delete(GetShimPath(shellCommandName).Value);
|
||||
}
|
||||
|
||||
|
@ -93,6 +139,11 @@ namespace Microsoft.DotNet.ShellShim
|
|||
return new FilePath(scriptPath);
|
||||
}
|
||||
|
||||
private FilePath GetWindowsConfigPath(string shellCommandName)
|
||||
{
|
||||
return new FilePath(GetShimPath(shellCommandName).Value + ".config");
|
||||
}
|
||||
|
||||
private static void SetUserExecutionPermissionToShimFile(FilePath scriptPath)
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
|
@ -11,6 +12,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
FilePath projectPath,
|
||||
DirectoryPath assetJsonOutput,
|
||||
FilePath? nugetconfig,
|
||||
string source);
|
||||
string source,
|
||||
string verbosity);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
|
@ -12,6 +13,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
string packageVersion = null,
|
||||
FilePath? nugetconfig = null,
|
||||
string targetframework = null,
|
||||
string source = null);
|
||||
string source = null,
|
||||
string verbosity = null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Microsoft.DotNet.Tools;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
|
@ -15,33 +16,36 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
{
|
||||
if (string.IsNullOrWhiteSpace(commandName))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(commandName), CommonLocalizableStrings.CannotBeNullOrWhitespace);
|
||||
throw new ToolConfigurationException(CommonLocalizableStrings.ToolSettingsMissingCommandName);
|
||||
}
|
||||
|
||||
EnsureNoInvalidFilenameCharacters(commandName, nameof(toolAssemblyEntryPoint));
|
||||
|
||||
if (string.IsNullOrWhiteSpace(toolAssemblyEntryPoint))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(toolAssemblyEntryPoint), CommonLocalizableStrings.CannotBeNullOrWhitespace);
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsMissingEntryPoint,
|
||||
commandName));
|
||||
}
|
||||
|
||||
EnsureNoInvalidFilenameCharacters(commandName);
|
||||
|
||||
CommandName = commandName;
|
||||
ToolAssemblyEntryPoint = toolAssemblyEntryPoint;
|
||||
}
|
||||
|
||||
private void EnsureNoInvalidFilenameCharacters(string commandName, string nameOfParam)
|
||||
private void EnsureNoInvalidFilenameCharacters(string commandName)
|
||||
{
|
||||
char[] invalidCharactors = Path.GetInvalidFileNameChars();
|
||||
if (commandName.IndexOfAny(invalidCharactors) != -1)
|
||||
var invalidCharacters = Path.GetInvalidFileNameChars();
|
||||
if (commandName.IndexOfAny(invalidCharacters) != -1)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
paramName: nameof(nameOfParam),
|
||||
message: string.Format(CommonLocalizableStrings.ContainInvalidCharacters,
|
||||
new string(invalidCharactors)));
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsInvalidCommandName,
|
||||
commandName,
|
||||
string.Join(", ", invalidCharacters.Select(c => $"'{c}'"))));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public string CommandName { get; }
|
||||
public string ToolAssemblyEntryPoint { get; }
|
||||
}
|
||||
|
|
|
@ -29,35 +29,29 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
catch (InvalidOperationException e) when (e.InnerException is XmlException)
|
||||
{
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(CommonLocalizableStrings.ToolSettingsInvalidXml, e.InnerException.Message));
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsInvalidXml,
|
||||
e.InnerException.Message));
|
||||
}
|
||||
}
|
||||
|
||||
if (dotNetCliTool.Commands.Length != 1)
|
||||
{
|
||||
throw new ToolConfigurationException(
|
||||
CommonLocalizableStrings.ToolSettingMoreThanOneCommand);
|
||||
throw new ToolConfigurationException(CommonLocalizableStrings.ToolSettingsMoreThanOneCommand);
|
||||
}
|
||||
|
||||
if (dotNetCliTool.Commands[0].Runner != "dotnet")
|
||||
{
|
||||
throw new ToolConfigurationException(
|
||||
CommonLocalizableStrings.ToolSettingInvalidRunner);
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsUnsupportedRunner,
|
||||
dotNetCliTool.Commands[0].Name,
|
||||
dotNetCliTool.Commands[0].Runner));
|
||||
}
|
||||
|
||||
var commandName = dotNetCliTool.Commands[0].Name;
|
||||
var toolAssemblyEntryPoint = dotNetCliTool.Commands[0].EntryPoint;
|
||||
|
||||
try
|
||||
{
|
||||
return new ToolConfiguration(commandName, toolAssemblyEntryPoint);
|
||||
}
|
||||
catch (ArgumentException e)
|
||||
{
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(CommonLocalizableStrings.ToolSettingsContainError,
|
||||
e.Message));
|
||||
}
|
||||
return new ToolConfiguration(
|
||||
dotNetCliTool.Commands[0].Name,
|
||||
dotNetCliTool.Commands[0].EntryPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
52
src/dotnet/ToolPackage/ToolPackageObtainTransaction.cs
Normal file
52
src/dotnet/ToolPackage/ToolPackageObtainTransaction.cs
Normal file
|
@ -0,0 +1,52 @@
|
|||
// 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.Transactions;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal class ToolPackageObtainTransaction : IEnlistmentNotification
|
||||
{
|
||||
private readonly Func<List<DirectoryPath>, ToolConfigurationAndExecutablePath> _obtainAndReturnExecutablePath;
|
||||
private readonly Action<List<DirectoryPath>> _rollback;
|
||||
private List<DirectoryPath> _locationOfPackageDuringTransaction = new List<DirectoryPath>();
|
||||
|
||||
public ToolPackageObtainTransaction(
|
||||
Func<List<DirectoryPath>, ToolConfigurationAndExecutablePath> obtainAndReturnExecutablePath,
|
||||
Action<List<DirectoryPath>> rollback)
|
||||
{
|
||||
_obtainAndReturnExecutablePath = obtainAndReturnExecutablePath ?? throw new ArgumentNullException(nameof(obtainAndReturnExecutablePath));
|
||||
_rollback = rollback ?? throw new ArgumentNullException(nameof(rollback));
|
||||
}
|
||||
|
||||
public ToolConfigurationAndExecutablePath ObtainAndReturnExecutablePath()
|
||||
{
|
||||
return _obtainAndReturnExecutablePath(_locationOfPackageDuringTransaction);
|
||||
}
|
||||
|
||||
public void Commit(Enlistment enlistment)
|
||||
{
|
||||
enlistment.Done();
|
||||
}
|
||||
|
||||
public void InDoubt(Enlistment enlistment)
|
||||
{
|
||||
Rollback(enlistment);
|
||||
}
|
||||
|
||||
public void Prepare(PreparingEnlistment preparingEnlistment)
|
||||
{
|
||||
preparingEnlistment.Done();
|
||||
}
|
||||
|
||||
public void Rollback(Enlistment enlistment)
|
||||
{
|
||||
_rollback(_locationOfPackageDuringTransaction);
|
||||
|
||||
enlistment.Done();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,10 +1,11 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Transactions;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.DotNet.Cli;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Configurer;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.ProjectModel;
|
||||
|
||||
|
@ -38,7 +39,71 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
string packageVersion = null,
|
||||
FilePath? nugetconfig = null,
|
||||
string targetframework = null,
|
||||
string source = null)
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
var stageDirectory = _toolsPath.WithSubDirectories(".stage", Path.GetRandomFileName());
|
||||
|
||||
var toolPackageObtainTransaction = new ToolPackageObtainTransaction(
|
||||
obtainAndReturnExecutablePath: (locationOfPackageDuringTransaction) =>
|
||||
{
|
||||
if (Directory.Exists(_toolsPath.WithSubDirectories(packageId).Value))
|
||||
{
|
||||
throw new PackageObtainException(
|
||||
string.Format(CommonLocalizableStrings.ToolPackageConflictPackageId, packageId));
|
||||
}
|
||||
|
||||
locationOfPackageDuringTransaction.Add(stageDirectory);
|
||||
var toolConfigurationAndExecutablePath = ObtainAndReturnExecutablePathInStageFolder(
|
||||
packageId,
|
||||
stageDirectory,
|
||||
packageVersion,
|
||||
nugetconfig,
|
||||
targetframework,
|
||||
source,
|
||||
verbosity);
|
||||
|
||||
DirectoryPath destinationDirectory = _toolsPath.WithSubDirectories(packageId);
|
||||
|
||||
Directory.Move(
|
||||
stageDirectory.Value,
|
||||
destinationDirectory.Value);
|
||||
|
||||
locationOfPackageDuringTransaction.Clear();
|
||||
locationOfPackageDuringTransaction.Add(destinationDirectory);
|
||||
|
||||
return toolConfigurationAndExecutablePath;
|
||||
},
|
||||
rollback: (locationOfPackageDuringTransaction) =>
|
||||
{
|
||||
foreach (DirectoryPath l in locationOfPackageDuringTransaction)
|
||||
{
|
||||
if (Directory.Exists(l.Value))
|
||||
{
|
||||
Directory.Delete(l.Value, recursive: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
using (var transactionScope = new TransactionScope())
|
||||
{
|
||||
Transaction.Current.EnlistVolatile(toolPackageObtainTransaction, EnlistmentOptions.None);
|
||||
var toolConfigurationAndExecutablePath = toolPackageObtainTransaction.ObtainAndReturnExecutablePath();
|
||||
|
||||
transactionScope.Complete();
|
||||
return toolConfigurationAndExecutablePath;
|
||||
}
|
||||
}
|
||||
|
||||
private ToolConfigurationAndExecutablePath ObtainAndReturnExecutablePathInStageFolder(
|
||||
string packageId,
|
||||
DirectoryPath stageDirectory,
|
||||
string packageVersion = null,
|
||||
FilePath? nugetconfig = null,
|
||||
string targetframework = null,
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
if (packageId == null)
|
||||
{
|
||||
|
@ -62,34 +127,34 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
|
||||
var packageVersionOrPlaceHolder = new PackageVersion(packageVersion);
|
||||
|
||||
DirectoryPath toolDirectory =
|
||||
CreateIndividualToolVersionDirectory(packageId, packageVersionOrPlaceHolder);
|
||||
DirectoryPath nugetSandboxDirectory =
|
||||
CreateNugetSandboxDirectory(packageVersionOrPlaceHolder, stageDirectory);
|
||||
|
||||
FilePath tempProjectPath = CreateTempProject(
|
||||
packageId,
|
||||
packageVersionOrPlaceHolder,
|
||||
targetframework,
|
||||
toolDirectory);
|
||||
nugetSandboxDirectory);
|
||||
|
||||
_projectRestorer.Restore(tempProjectPath, toolDirectory, nugetconfig, source);
|
||||
_projectRestorer.Restore(tempProjectPath, nugetSandboxDirectory, nugetconfig, source, verbosity);
|
||||
|
||||
if (packageVersionOrPlaceHolder.IsPlaceholder)
|
||||
{
|
||||
var concreteVersion =
|
||||
new DirectoryInfo(
|
||||
Directory.GetDirectories(
|
||||
toolDirectory.WithSubDirectories(packageId).Value).Single()).Name;
|
||||
nugetSandboxDirectory.WithSubDirectories(packageId).Value).Single()).Name;
|
||||
DirectoryPath versioned =
|
||||
toolDirectory.GetParentPath().WithSubDirectories(concreteVersion);
|
||||
nugetSandboxDirectory.GetParentPath().WithSubDirectories(concreteVersion);
|
||||
|
||||
MoveToVersionedDirectory(versioned, toolDirectory);
|
||||
MoveToVersionedDirectory(versioned, nugetSandboxDirectory);
|
||||
|
||||
toolDirectory = versioned;
|
||||
nugetSandboxDirectory = versioned;
|
||||
packageVersion = concreteVersion;
|
||||
}
|
||||
|
||||
LockFile lockFile = new LockFileFormat()
|
||||
.ReadWithLock(toolDirectory.WithFile("project.assets.json").Value)
|
||||
.ReadWithLock(nugetSandboxDirectory.WithFile("project.assets.json").Value)
|
||||
.Result;
|
||||
|
||||
LockFileItem dotnetToolSettings = FindAssetInLockFile(lockFile, "DotnetToolSettings.xml", packageId);
|
||||
|
@ -101,7 +166,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
}
|
||||
|
||||
FilePath toolConfigurationPath =
|
||||
toolDirectory
|
||||
nugetSandboxDirectory
|
||||
.WithSubDirectories(packageId, packageVersion)
|
||||
.WithFile(dotnetToolSettings.Path);
|
||||
|
||||
|
@ -119,7 +184,9 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
|
||||
return new ToolConfigurationAndExecutablePath(
|
||||
toolConfiguration,
|
||||
toolDirectory.WithSubDirectories(
|
||||
_toolsPath.WithSubDirectories(
|
||||
packageId,
|
||||
packageVersion,
|
||||
packageId,
|
||||
packageVersion)
|
||||
.WithFile(entryPointFromLockFile.Path));
|
||||
|
@ -176,12 +243,13 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
new XElement("RestoreAdditionalProjectFallbackFolders", string.Empty), // block other
|
||||
new XElement("RestoreAdditionalProjectFallbackFoldersExcludes", string.Empty), // block other
|
||||
new XElement("DisableImplicitNuGetFallbackFolder", "true")), // disable SDK side implicit NuGetFallbackFolder
|
||||
new XElement("ItemGroup",
|
||||
new XElement("ItemGroup",
|
||||
new XElement("PackageReference",
|
||||
new XAttribute("Include", packageId),
|
||||
new XAttribute("Version", packageVersion.IsConcreteValue ? packageVersion.Value : "*") // nuget will restore * for latest
|
||||
))
|
||||
));
|
||||
))
|
||||
));
|
||||
|
||||
|
||||
File.WriteAllText(tempProjectPath.Value,
|
||||
tempProjectContent.ToString());
|
||||
|
@ -189,12 +257,12 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
return tempProjectPath;
|
||||
}
|
||||
|
||||
private DirectoryPath CreateIndividualToolVersionDirectory(
|
||||
string packageId,
|
||||
PackageVersion packageVersion)
|
||||
private DirectoryPath CreateNugetSandboxDirectory(
|
||||
PackageVersion packageVersion,
|
||||
DirectoryPath stageDirectory
|
||||
)
|
||||
{
|
||||
DirectoryPath individualTool = _toolsPath.WithSubDirectories(packageId);
|
||||
DirectoryPath individualToolVersion = individualTool.WithSubDirectories(packageVersion.Value);
|
||||
DirectoryPath individualToolVersion = stageDirectory.WithSubDirectories(packageVersion.Value);
|
||||
EnsureDirectoryExists(individualToolVersion);
|
||||
return individualToolVersion;
|
||||
}
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Transactions;
|
||||
using Microsoft.DotNet.Cli;
|
||||
using Microsoft.DotNet.Cli.CommandLine;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
|
@ -20,6 +22,7 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
private readonly IEnvironmentPathInstruction _environmentPathInstruction;
|
||||
private readonly IShellShimMaker _shellShimMaker;
|
||||
private readonly IReporter _reporter;
|
||||
private readonly IReporter _errorReporter;
|
||||
|
||||
private readonly string _packageId;
|
||||
private readonly string _packageVersion;
|
||||
|
@ -27,6 +30,7 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
private readonly string _framework;
|
||||
private readonly string _source;
|
||||
private readonly bool _global;
|
||||
private readonly string _verbosity;
|
||||
|
||||
public InstallToolCommand(
|
||||
AppliedOption appliedCommand,
|
||||
|
@ -48,26 +52,27 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
_framework = appliedCommand.ValueOrDefault<string>("framework");
|
||||
_source = appliedCommand.ValueOrDefault<string>("source");
|
||||
_global = appliedCommand.ValueOrDefault<bool>("global");
|
||||
_verbosity = appliedCommand.SingleArgumentOrDefault("verbosity");
|
||||
|
||||
var cliFolderPathCalculator = new CliFolderPathCalculator();
|
||||
var executablePackagePath = new DirectoryPath(cliFolderPathCalculator.ExecutablePackagesPath);
|
||||
var offlineFeedPath = new DirectoryPath(cliFolderPathCalculator.CliFallbackFolderPath);
|
||||
_toolPackageObtainer = toolPackageObtainer ?? new ToolPackageObtainer(
|
||||
executablePackagePath,
|
||||
new DirectoryPath(cliFolderPathCalculator.ToolsPackagePath),
|
||||
offlineFeedPath,
|
||||
() => new DirectoryPath(Path.GetTempPath())
|
||||
.WithSubDirectories(Path.GetRandomFileName())
|
||||
.WithFile(Path.GetRandomFileName() + ".csproj"),
|
||||
new Lazy<string>(BundledTargetFramework.GetTargetFrameworkMoniker),
|
||||
new ProjectRestorer());
|
||||
new ProjectRestorer(reporter));
|
||||
|
||||
_environmentPathInstruction = environmentPathInstruction
|
||||
?? EnvironmentPathFactory
|
||||
.CreateEnvironmentPathInstruction();
|
||||
|
||||
_shellShimMaker = shellShimMaker ?? new ShellShimMaker(executablePackagePath.Value);
|
||||
_shellShimMaker = shellShimMaker ?? new ShellShimMaker(cliFolderPathCalculator.ToolsShimPath);
|
||||
|
||||
_reporter = reporter ?? Reporter.Output;
|
||||
_reporter = (reporter ?? Reporter.Output);
|
||||
_errorReporter = (reporter ?? Reporter.Error);
|
||||
}
|
||||
|
||||
public override int Execute()
|
||||
|
@ -77,26 +82,6 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
throw new GracefulException(LocalizableStrings.InstallToolCommandOnlySupportGlobal);
|
||||
}
|
||||
|
||||
var toolConfigurationAndExecutablePath = ObtainPackage();
|
||||
|
||||
var commandName = toolConfigurationAndExecutablePath.Configuration.CommandName;
|
||||
_shellShimMaker.EnsureCommandNameUniqueness(commandName);
|
||||
|
||||
_shellShimMaker.CreateShim(
|
||||
toolConfigurationAndExecutablePath.Executable.Value,
|
||||
commandName);
|
||||
|
||||
_environmentPathInstruction
|
||||
.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
_reporter.WriteLine(
|
||||
string.Format(LocalizableStrings.InstallationSucceeded, commandName));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private ToolConfigurationAndExecutablePath ObtainPackage()
|
||||
{
|
||||
try
|
||||
{
|
||||
FilePath? configFile = null;
|
||||
|
@ -105,31 +90,47 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
configFile = new FilePath(_configFilePath);
|
||||
}
|
||||
|
||||
return _toolPackageObtainer.ObtainAndReturnExecutablePath(
|
||||
packageId: _packageId,
|
||||
packageVersion: _packageVersion,
|
||||
nugetconfig: configFile,
|
||||
targetframework: _framework,
|
||||
source: _source);
|
||||
}
|
||||
using (var transactionScope = new TransactionScope())
|
||||
{
|
||||
var toolConfigurationAndExecutablePath = _toolPackageObtainer.ObtainAndReturnExecutablePath(
|
||||
packageId: _packageId,
|
||||
packageVersion: _packageVersion,
|
||||
nugetconfig: configFile,
|
||||
targetframework: _framework,
|
||||
source: _source,
|
||||
verbosity: _verbosity);
|
||||
|
||||
var commandName = toolConfigurationAndExecutablePath.Configuration.CommandName;
|
||||
|
||||
_shellShimMaker.CreateShim(
|
||||
toolConfigurationAndExecutablePath.Executable,
|
||||
commandName);
|
||||
|
||||
_environmentPathInstruction
|
||||
.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
_reporter.WriteLine(
|
||||
string.Format(LocalizableStrings.InstallationSucceeded, commandName));
|
||||
transactionScope.Complete();
|
||||
}
|
||||
}
|
||||
catch (PackageObtainException ex)
|
||||
{
|
||||
throw new GracefulException(
|
||||
message:
|
||||
string.Format(LocalizableStrings.InstallFailedNuget,
|
||||
ex.Message),
|
||||
innerException: ex);
|
||||
_errorReporter.WriteLine(ex.Message.Red());
|
||||
_errorReporter.WriteLine(string.Format(LocalizableStrings.ToolInstallationFailed, _packageId).Red());
|
||||
return 1;
|
||||
}
|
||||
catch (ToolConfigurationException ex)
|
||||
{
|
||||
throw new GracefulException(
|
||||
message:
|
||||
_errorReporter.WriteLine(
|
||||
string.Format(
|
||||
LocalizableStrings.InstallFailedPackage,
|
||||
ex.Message),
|
||||
innerException: ex);
|
||||
LocalizableStrings.InvalidToolConfiguration,
|
||||
ex.Message).Red());
|
||||
_errorReporter.WriteLine(string.Format(LocalizableStrings.ToolInstallationFailedContactAuthor, _packageId).Red());
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,8 @@ namespace Microsoft.DotNet.Cli
|
|||
"-f|--framework",
|
||||
LocalizableStrings.FrameworkOptionDescription,
|
||||
Accept.ExactlyOneArgument()),
|
||||
CommonOptions.HelpOption());
|
||||
CommonOptions.HelpOption(),
|
||||
CommonOptions.VerbosityOption());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -149,24 +149,6 @@
|
|||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</value>
|
||||
</data>
|
||||
<data name="FailedToRestorePackage" xml:space="preserve">
|
||||
<value>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</value>
|
||||
</data>
|
||||
<data name="InstallFailedNuget" xml:space="preserve">
|
||||
<value>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="InstallFailedPackage" xml:space="preserve">
|
||||
<value>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="InstallationSucceeded" xml:space="preserve">
|
||||
<value>
|
||||
|
@ -181,4 +163,16 @@ The installation succeeded. If there are no further instructions, you can type t
|
|||
<data name="InstallToolCommandOnlySupportGlobal" xml:space="preserve">
|
||||
<value>The --global switch (-g) is currently required because only user wide tools are supported.</value>
|
||||
</data>
|
||||
<data name="InvalidToolConfiguration" xml:space="preserve">
|
||||
<value>The settings file in the tool's NuGet package is invalid: {0}</value>
|
||||
</data>
|
||||
<data name="ToolInstallationFailed" xml:space="preserve">
|
||||
<value>Tool '{0}' failed to install.</value>
|
||||
</data>
|
||||
<data name="ToolInstallationFailedContactAuthor" xml:space="preserve">
|
||||
<value>Tool '{0}' failed to install. Please contact the tool author for assistance.</value>
|
||||
</data>
|
||||
<data name="ToolInstallationRestoreFailed" xml:space="preserve">
|
||||
<value>The tool package could not be restored.</value>
|
||||
</data>
|
||||
</root>
|
|
@ -14,11 +14,19 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
{
|
||||
internal class ProjectRestorer : IProjectRestorer
|
||||
{
|
||||
private IReporter _reporter;
|
||||
|
||||
public ProjectRestorer(IReporter reporter)
|
||||
{
|
||||
_reporter = reporter;
|
||||
}
|
||||
|
||||
public void Restore(
|
||||
FilePath projectPath,
|
||||
DirectoryPath assetJsonOutput,
|
||||
FilePath? nugetconfig,
|
||||
string source = null)
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
var argsToPassToRestore = new List<string>();
|
||||
|
||||
|
@ -42,18 +50,22 @@ namespace Microsoft.DotNet.Tools.Install.Tool
|
|||
$"/p:BaseIntermediateOutputPath={assetJsonOutput.ToQuotedString()}"
|
||||
});
|
||||
|
||||
argsToPassToRestore.Add($"/verbosity:{verbosity ?? "quiet"}");
|
||||
|
||||
var command = new DotNetCommandFactory(alwaysRunOutOfProc: true)
|
||||
.Create("restore", argsToPassToRestore)
|
||||
.CaptureStdOut()
|
||||
.CaptureStdErr();
|
||||
.Create("restore", argsToPassToRestore);
|
||||
|
||||
if (_reporter != null)
|
||||
{
|
||||
command = command
|
||||
.OnOutputLine((line) => _reporter.WriteLine(line))
|
||||
.OnErrorLine((line) => _reporter.WriteLine(line));
|
||||
}
|
||||
|
||||
var result = command.Execute();
|
||||
if (result.ExitCode != 0)
|
||||
{
|
||||
throw new PackageObtainException(
|
||||
string.Format(
|
||||
LocalizableStrings.FailedToRestorePackage,
|
||||
result.StartInfo.WorkingDirectory, result.StartInfo.Arguments, result.StdErr, result.StdOut));
|
||||
throw new PackageObtainException(LocalizableStrings.ToolInstallationRestoreFailed);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,39 +30,6 @@ Argumenty: {1}
|
|||
Výstup: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">Nepovedlo se obnovit balíček.
|
||||
WorkingDirectory: {0}
|
||||
Argumenty: {1}
|
||||
Výstup: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Instalace byla neúspěšná. Nepovedlo se stáhnout balíček:
|
||||
Vrácený NuGet:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Instalace byla neúspěšná. Soubor s nastavením v balíčku NuGet nástroje není platný. Kontaktujte prosím vlastníka balíčku NuGet.
|
||||
Chyba byla následující:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">ID balíčku NuGet nástroje, který se má nainstalovat</target>
|
||||
|
@ -113,6 +80,26 @@ Chyba byla následující:
|
|||
<target state="translated">Přepínač --global (-g) se aktuálně vyžaduje, protože se podporují jenom nástroje pro všechny uživatele.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Argumente: {1}
|
|||
Ausgabe: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">Fehler beim Wiederherstellen des Pakets.
|
||||
WorkingDirectory: {0}
|
||||
Argumente: {1}
|
||||
Ausgabe: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Fehler bei der Installation. Fehler beim Herunterladen des Pakets:
|
||||
NuGet hat Folgendes zurückgegeben:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Fehler bei der Installation. Die Einstellungsdatei im NuGet-Paket des Tools ist ungültig. Wenden Sie sich an den Besitzer des NuGet-Pakets.
|
||||
Folgender Fehler wurde gemeldet:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">NuGet-Paket-ID des zu installierenden Tools.</target>
|
||||
|
@ -113,6 +80,26 @@ Folgender Fehler wurde gemeldet:
|
|||
<target state="translated">Die Option --global (-g) ist aktuell erforderlich, weil nur benutzerweite Tools unterstützt werden.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Argumentos: {1}
|
|||
Salida: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">No se pudo restaurar el paquete.
|
||||
Directorio de trabajo: {0}
|
||||
Argumentos: {1}
|
||||
Salida: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Error en la instalación. No se pudo completar el paquete:
|
||||
NuGet devuelto:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Error en la instalación. El archivo de configuración del paquete NuGet de la herramienta no es válido. Póngase en contacto con el propietario del paquete NuGet.
|
||||
El error fue:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">Id. del paquete de NuGet que se instalará.</target>
|
||||
|
@ -113,6 +80,26 @@ El error fue:
|
|||
<target state="translated">El conmutador --global (g) se requiere actualmente porque solo se admiten herramientas para todos los usuarios.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments : {1}
|
|||
Sortie : {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">Échec de la restauration du package.
|
||||
WorkingDirectory : {0}
|
||||
Arguments : {1}
|
||||
Sortie : {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Échec de l'installation. Échec du téléchargement du package :
|
||||
NuGet a retourné :
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Échec de l'installation. Le fichier de paramètres du package NuGet de l'outil est non valide. Contactez le propriétaire du package NuGet.
|
||||
Erreur :
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">ID de package NuGet de l'outil à installer.</target>
|
||||
|
@ -113,6 +80,26 @@ Erreur :
|
|||
<target state="translated">Le commutateur --global (-g) est obligatoire, car seuls les outils à l'échelle des utilisateurs sont pris en charge.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Argomenti: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">Non è stato possibile ripristinare il pacchetto.
|
||||
Directory di lavoro: {0}
|
||||
Argomenti: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">L'installazione non è riuscita. Non è stato possibile caricare il pacchetto:
|
||||
NuGet ha restituito:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">L'installazione non è riuscita. Il file di impostazioni nel pacchetto NuGet dello strumento non è valido. Contattare il proprietario del pacchetto NuGet.
|
||||
Errore:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">ID pacchetto NuGet dello strumento da installare.</target>
|
||||
|
@ -113,6 +80,26 @@ Errore:
|
|||
<target state="translated">L'opzione --global (-g) è attualmente obbligatoria perché sono supportati solo gli strumenti a livello di utente.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Output: {2}{3}</source>
|
|||
出力: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">パッケージを復元できませんでした。
|
||||
作業ディレクトリ: {0}
|
||||
引数: {1}
|
||||
出力: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">インストールに失敗しました。パッケージをダウンロードできませんでした:
|
||||
NuGet によって次のものが返されました:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">インストールできませんでした。ツールの NuGet パッケージの設定ファイルが無効です。NuGet パッケージの所有者に問い合わせてください。
|
||||
エラーの内容:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">インストールするツールの NuGet パッケージ ID。</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="translated">サポートされているのはユーザー全体のツールだけなので、現在 --global スイッチ (-g) が必要です。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Output: {2}{3}</source>
|
|||
출력: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">패키지를 복원하지 못했습니다.
|
||||
작업 디렉터리: {0}
|
||||
인수: {1}
|
||||
출력: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">설치하지 못했습니다. 패키지를 다운로드하지 못했습니다.
|
||||
반환된 NuGet:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">설치하지 못했습니다. 도구의 NuGet 패키지에 있는 설정 파일이 잘못되었습니다. NuGet 패키지의 소유자에게 문의하세요.
|
||||
오류:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">설치할 도구의 NuGet 패키지 ID입니다.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="translated">사용자 전체 도구만 지원되므로 -global 스위치(-g)가 필요합니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Argumenty: {1}
|
|||
Dane wyjściowe: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">Nie można przywrócić pakietu.
|
||||
Katalog roboczy: {0}
|
||||
Argumenty: {1}
|
||||
Dane wyjściowe: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Instalacja nie powiodła się. Nie można pobrać pakietu:
|
||||
Zwrócony pakiet NuGet:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Instalacja nie powiodła się. Plik ustawień w pakiecie NuGet narzędzia jest nieprawidłowy. Skontaktuj się z właścicielem pakietu NuGet.
|
||||
Błąd:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">Identyfikator pakietu NuGet narzędzia do zainstalowania.</target>
|
||||
|
@ -113,6 +80,26 @@ Błąd:
|
|||
<target state="translated">Obecnie jest wymagany przełącznik --global (-g), ponieważ obsługiwane są tylko narzędzia użytkownika.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Arguments: {1}
|
|||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">Falha ao restaurar pacote.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Falha na instalação. Falha ao baixar o pacote:
|
||||
o NuGet retornou:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Falha na instalação. O arquivo de configuração no pacote NuGet da ferramenta não é válido. Contate o proprietário do pacote NuGet.
|
||||
O erro foi o seguinte:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">A ID do pacote NuGet da ferramenta a ser instalada.</target>
|
||||
|
@ -113,6 +80,26 @@ O erro foi o seguinte:
|
|||
<target state="translated">A opção --global (-g) é obrigatória, pois somente ferramentas para todo o usuário são compatíveis.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Output: {2}{3}</source>
|
|||
Выходные данные: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">Не удалось восстановить пакет.
|
||||
Рабочий каталог: {0}
|
||||
Аргументы: {1}
|
||||
Выходные данные: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Выполнить установку не удалось. Не удалось скачать пакет.
|
||||
Возвращаемые данные NuGet:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Выполнить установку не удалось. Файл параметров в пакете NuGet инструмента недопустим. Обратитесь к владельцу пакета NuGet.
|
||||
Ошибка:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">Идентификатор пакета NuGet устанавливаемого инструмента.</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="translated">Параметр "--global switch (-g)" сейчас обязателен, так как поддерживаются только инструменты уровня пользователя.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ Bağımsız değişkenler: {1}
|
|||
Çıkış: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">Paket geri yüklenemedi.
|
||||
WorkingDirectory: {0}
|
||||
Bağımsız değişkenler: {1}
|
||||
Çıkış: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Yükleme başarısız oldu. Paket indirilemedi:
|
||||
NuGet şunu döndürdü:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">Yükleme başarısız oldu. Aracın NuGet paketindeki ayarlar dosyası geçerli değil. Lütfen NuGet paketinin sahibine başvurun.
|
||||
Hata:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">Yüklenecek aracın NuGet Paket Kimliği.</target>
|
||||
|
@ -113,6 +80,26 @@ Hata:
|
|||
<target state="translated">Yalnızca kullanıcı için araçlar desteklendiğinden --global anahtarı (-g) şu anda gereklidir.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ WorkingDirectory: {0}
|
|||
输出: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">未能还原包。
|
||||
WorkingDirectory: {0}
|
||||
参数: {1}
|
||||
输出: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">安装失败。未能下载包:
|
||||
NuGet 已返回:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">安装失败。工具的 NuGet 包中的设置文件无效。请联系 NuGet 包的所有者。
|
||||
错误:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">要安装的工具的 NuGet 包 ID。</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="translated">目前需要 --global 开关 (-g),因为仅支持用户范围工具。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -30,39 +30,6 @@ WorkingDirectory: {0}
|
|||
輸出: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="FailedToRestorePackage">
|
||||
<source>Failed to restore package.
|
||||
WorkingDirectory: {0}
|
||||
Arguments: {1}
|
||||
Output: {2}{3}</source>
|
||||
<target state="translated">無法還原套件。
|
||||
WorkingDirectory: {0}
|
||||
引數: {1}
|
||||
輸出: {2}{3}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedNuget">
|
||||
<source>Install failed. Failed to download package:
|
||||
NuGet returned:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">安裝失敗。無法下載套件:
|
||||
傳回的 NuGet:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallFailedPackage">
|
||||
<source>Install failed. The settings file in the tool's NuGet package is not valid. Please contact the owner of the NuGet package.
|
||||
The error was:
|
||||
|
||||
{0}</source>
|
||||
<target state="translated">安裝失敗。工具 NuGet 套件中的設定檔無效。請連絡 NuGet 套件的擁有者。
|
||||
錯誤為:
|
||||
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="PackageIdArgumentDescription">
|
||||
<source>NuGet Package Id of the tool to install.</source>
|
||||
<target state="translated">要安裝之工具的 NuGet 套件識別碼。</target>
|
||||
|
@ -113,6 +80,26 @@ The error was:
|
|||
<target state="translated">因為只支援適用於全體使用者的工具,所以目前必須有 --global 參數 (-g)。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InvalidToolConfiguration">
|
||||
<source>The settings file in the tool's NuGet package is invalid: {0}</source>
|
||||
<target state="new">The settings file in the tool's NuGet package is invalid: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailed">
|
||||
<source>Tool '{0}' failed to install.</source>
|
||||
<target state="new">Tool '{0}' failed to install.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationFailedContactAuthor">
|
||||
<source>Tool '{0}' failed to install. Please contact the tool author for assistance.</source>
|
||||
<target state="new">Tool '{0}' failed to install. Please contact the tool author for assistance.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolInstallationRestoreFailed">
|
||||
<source>The tool package could not be restored.</source>
|
||||
<target state="new">The tool package could not be restored.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">Projekt {0} byl z řešení odebrán.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">Nemůže být null nebo prázdný znak.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Obsahuje nejméně jeden neplatný znak: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">Soubor nastavení nástroje je neplatný soubor xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">Soubor nastavení nástroje má jiný spouštěč než dotnet.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">Soubor nastavení nástroje má definovaný více než jeden příkaz.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">Soubor nastavení nástroje obsahuje chybu.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">Soubor nastavení nástroje je neplatný soubor xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">V balíčku {0} chybí soubor nastavení nástroje DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">Das Projekt "{0}" wurde aus der Projektmappe entfernt.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">Darf nicht NULL sein oder Leerraum enthalten.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Enthält mindestens ein ungültiges Zeichen: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">Die Datei mit den Tooleinstellungen ist eine ungültige XML.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">Die Datei mit den Tooleinstellungen verwendet nicht "dotnet" als Runner.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">In der Datei mit den Tooleinstellungen ist mehr als ein Befehl definiert.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">Die Datei mit den Tooleinstellungen enthält einen Fehler.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">Die Datei mit den Tooleinstellungen ist eine ungültige XML.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">Im Paket "{0}" fehlt die Datei mit den Tooleinstellungen "DotnetToolSettings.xml".</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">Se ha quitado el proyecto "{0}" de la solución.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">No puede ser nulo ni un espacio en blanco.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Contiene uno o varios caracteres no válidos: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">El archivo de configuración de la herramienta es un xml no válido.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">El archivo de configuración de la herramienta tiene un ejecutor diferente de "dotnet".</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">El archivo de configuración de la herramienta tiene más de un comando definido.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">El archivo de configuración de la herramienta contiene un error.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">El archivo de configuración de la herramienta es un xml no válido.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">Al paquete "{0}" le falta el archivo de configuración de herramientas DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">Projet '{0}' retiré de la solution.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">Ne peut pas avoir une valeur null ou être un espace blanc</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Contient un ou plusieurs caractères non valides : {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">Le fichier de paramètres de l'outil est un fichier xml non valide.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">Le fichier de paramètres de l'outil n'a pas "dotnet" comme exécuteur.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">Plusieurs commandes sont définies pour le fichier de paramètres de l'outil.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">Le fichier de paramètres de l'outil contient une erreur.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">Le fichier de paramètres de l'outil est un fichier xml non valide.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">Le package '{0}' ne contient pas le fichier de paramètres d'outils DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">Il progetto `{0}` è stato rimosso dalla soluzione.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">Non può essere Null o costituito da spazi vuoti.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Contiene uno o più caratteri non validi: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">Il file di impostazioni dello strumento è costituito da codice XML non valido.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">Lo strumento di esecuzione del file di impostazioni dello strumento non è "dotnet".</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">Per il file di impostazioni dello strumento è definito più di un comando.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">Il file di impostazioni dello strumento contiene un errore.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">Il file di impostazioni dello strumento è costituito da codice XML non valido.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">Nel pacchetto '{0}' manca il file di impostazioni dello strumento DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">プロジェクト `{0}` がソリューションから削除されました。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">null または空白文字にすることはできません。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">1 つ以上の無効な文字が含まれています: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">ツールの設定ファイルは無効な xml です。
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">ツールの設定ファイルにはランナーとしての非 "dotnet" があります。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">ツールの設定ファイルで複数のコマンドが定義されています。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">ツールの設定ファイルにエラーが含まれています。
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">ツールの設定ファイルは無効な xml です。
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">パッケージ '{0}' にツール設定ファイル DotnetToolSettings.xml がありません。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">'{0}' 프로젝트가 솔루션에서 제거되었습니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">null 또는 공백일 수 없습니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">잘못된 문자가 하나 이상 포함되어 있습니다. {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">도구의 설정 파일이 잘못된 xml입니다.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">도구의 설정 파일에 실행기로서 “dotnet”이 없습니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">도구의 설정 파일에 정의된 명령이 하나 이상 있습니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">도구의 설정 파일에 오류가 있습니다.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">도구의 설정 파일이 잘못된 xml입니다.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">패키지 '{0}'이(가) 누락된 도구 설정 파일 DotnetToolSettings.xml입니다.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">Projekt „{0}” został skasowany z rozwiązania.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">Nie może być wartością null ani białym znakiem.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Zawiera co najmniej jeden niedozwolony znak: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">Plik ustawień narzędzia nie jest prawidłowym plikiem xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">Plik ustawień narzędzia zawiera wartość modułu uruchamiającego inną niż „dotnet”.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">Plik ustawień narzędzia zawiera więcej niż jedno zdefiniowane polecenie.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">Plik ustawień narzędzia zawiera błąd.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">Plik ustawień narzędzia nie jest prawidłowym plikiem xml.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">Brak pliku ustawień narzędzia DotnetToolSettings.xml w pakiecie „{0}”.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">O projeto `{0}` foi removido da solução.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">Não pode ser nulo nem espaço em branco.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Contém um ou mais caracteres inválidos: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">O arquivo de configuração da ferramenta é um XML inválido.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">O arquivo de configuração da ferramenta contém um executor não "dotnet".</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">O arquivo de configuração da ferramenta contém mais de um comando definido.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">O arquivo de configuração da ferramenta contém um erro.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">O arquivo de configuração da ferramenta é um XML inválido.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">O arquivo de configuração DotnetToolSettings.xml da ferramenta está ausente do pacote '{0}'.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">Проект "{0}" удален из решения.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">Не может быть пустым или равным NULL.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Содержит недопустимые символы: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">Файл параметров инструмента является недопустимым XML.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">Средство запуска в файле параметров инструмента не является "dotnet".</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">В файле параметров инструмента задано больше одной команды.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">Файл параметров инструмента содержит ошибку.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">Файл параметров инструмента является недопустимым XML.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">В пакете "{0}" отсутствует файл параметров инструмента DotnetToolSettings.xml.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">`{0}` projesi çözümden kaldırıldı.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">Null veya boşluk olamaz.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">Bir veya daha fazla geçersiz karakter içeriyor: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">Aracın ayarlar dosyası geçersiz xml içeriyor.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">Aracın ayarlar dosyası çalıştırıcı olarak "dotnet" dışında bir öğe içeriyor.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">Aracın ayarlar dosyasında birden çok komut tanımlanmış.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">Aracın ayarlar dosyası hata içeriyor.
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">Aracın ayarlar dosyası geçersiz xml içeriyor.
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">'{0}' paketinde DotnetToolSettings.xml araç ayarları dosyası eksik.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">已从解决方案中移除项目“{0}”。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">不能为 NULL 或空白。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">包含一个或多个无效字符: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">工具的设置文件为无效 xml。
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">工具的设置文件不具有作为运行程序的 "dotnet"。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">工具的设置文件已定义多个命令。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">工具的设置文件包含错误。
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">工具的设置文件为无效 xml。
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">包“{0}”缺少工具设置文件 DotnetToolSettings.xml。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -674,37 +674,9 @@
|
|||
<target state="translated">專案 `{0}` 已從解決方案移除。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CannotBeNullOrWhitespace">
|
||||
<source>Cannot be null or whitespace.</source>
|
||||
<target state="translated">不得為 null 或空白字元。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ContainInvalidCharacters">
|
||||
<source>Contains one or more invalid characters: {0}</source>
|
||||
<target state="translated">內含一或多個無效字元: {0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidXml">
|
||||
<source>The tool's settings file is invalid xml.
|
||||
{0}</source>
|
||||
<target state="translated">工具設定檔為無效的 XML。
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingInvalidRunner">
|
||||
<source>The tool's settings file has non "dotnet" as runner.</source>
|
||||
<target state="translated">工具設定檔的執行器並非 "dotnet"。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingMoreThanOneCommand">
|
||||
<source>The tool's settings file has more than one command defined.</source>
|
||||
<target state="translated">工具設定檔定義了超過一個的命令。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsContainError">
|
||||
<source>The tool's settings file contains error.
|
||||
{0}</source>
|
||||
<target state="translated">工具設定檔內含錯誤。
|
||||
<source>Invalid XML: {0}</source>
|
||||
<target state="needs-review-translation">工具設定檔為無效的 XML。
|
||||
{0}</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
|
@ -797,6 +769,36 @@ setx PATH "%PATH%;{1}"</target>
|
|||
<target state="translated">套件 '{0}' 缺少工具設定檔 DotnetToolSettings.xml。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingCommandName">
|
||||
<source>Tool defines a command with a missing name setting.</source>
|
||||
<target state="new">Tool defines a command with a missing name setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMissingEntryPoint">
|
||||
<source>Command '{0}' is missing an entry point setting.</source>
|
||||
<target state="new">Command '{0}' is missing an entry point setting.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsInvalidCommandName">
|
||||
<source>Command '{0}' contains one or more of the following invalid characters: {1}.</source>
|
||||
<target state="new">Command '{0}' contains one or more of the following invalid characters: {1}.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsMoreThanOneCommand">
|
||||
<source>More than one command is defined for the tool.</source>
|
||||
<target state="new">More than one command is defined for the tool.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolSettingsUnsupportedRunner">
|
||||
<source>Command '{0}' uses unsupported runner '{1}'."</source>
|
||||
<target state="new">Command '{0}' uses unsupported runner '{1}'."</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="ToolPackageConflictPackageId">
|
||||
<source>Tool '{0}' is already installed.</source>
|
||||
<target state="new">Tool '{0}' is already installed.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
|
@ -37,15 +37,15 @@
|
|||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="PublishAspNetRuntimePackageStore"
|
||||
<Target Name="PublishAspNetSharedFramework"
|
||||
AfterTargets="CrossgenPublishDir">
|
||||
<ItemGroup>
|
||||
<AspNetRuntimePackageStore Remove="*" />
|
||||
<AspNetRuntimePackageStore Include="$(AspNetRuntimePackageStorePublishDirectory)/**/*" />
|
||||
<AspNetSharedFramework Remove="*" />
|
||||
<AspNetSharedFramework Include="$(AspNetCoreSharedFxPublishDirectory)/**/*" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(AspNetRuntimePackageStore)"
|
||||
DestinationFiles="@(AspNetRuntimePackageStore->'$(OutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
<Copy SourceFiles="@(AspNetSharedFramework)"
|
||||
DestinationFiles="@(AspNetSharedFramework->'$(OutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PublishSharedFramework"
|
||||
|
@ -83,6 +83,7 @@
|
|||
<RoslynDeps Include="$(RoslynDirectory)/bincore/vbc.deps.json" />
|
||||
<RoslynDeps Include="$(RoslynDirectory)/bincore/VBCSCompiler.deps.json" />
|
||||
<RoslynSatelliteDeps Include="$(RoslynDirectory)/bincore/tool_roslyn_satellites.deps.json" />
|
||||
<RoslynFrameworkAssemblies Include="$(RoslynDirectory)/System.*.dll;$(RoslynDirectory)/runtimes/**/System.*.dll" Exclude="$(RoslynDirectory)/runtimes/**/System.IO.Pipes.AccessControl.dll"/>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<ReplacementPattern>"version": ".*"</ReplacementPattern>
|
||||
|
@ -98,7 +99,7 @@
|
|||
Configuration="$(Configuration)"
|
||||
ProjectPath="$(SrcDirectory)/tool_roslyn_satellites/tool_roslyn_satellites.csproj" />
|
||||
<AddToDeps TargetDeps="@(RoslynDeps)" AdditionalDeps="@(RoslynSatelliteDeps)" />
|
||||
<Delete Files="@(RoslynSatelliteDeps)" />
|
||||
<Delete Files="@(RoslynSatelliteDeps);@(RoslynFrameworkAssemblies)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PublishFSharp"
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NetCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" />
|
||||
<PackageReference Include="Microsoft.FSharp.Compiler" Version="$(MicrosoftFSharpCompilerPackageVersion)" />
|
||||
<PackageReference Include="CliDeps.Satellites.FSharp" Version="$(CliDepsSatellitesFSharpPackageVersion)" />
|
||||
<PackageReference Include="System.Runtime.InteropServices" Version="4.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
@ -25,4 +25,8 @@
|
|||
<Reference Include="System" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.27004.2008
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
|
@ -88,6 +88,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.ToolPackag
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Tools.Tests.ComponentMocks", "Microsoft.DotNet.Tools.Tests.ComponentMocks\Microsoft.DotNet.Tools.Tests.ComponentMocks.csproj", "{A3DE5654-7755-45C8-8AE5-5B5B00BEB248}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-install-tool.Tests", "dotnet-install-tool.Tests\dotnet-install-tool.Tests.csproj", "{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -578,6 +580,18 @@ Global
|
|||
{A3DE5654-7755-45C8-8AE5-5B5B00BEB248}.Release|x64.Build.0 = Release|Any CPU
|
||||
{A3DE5654-7755-45C8-8AE5-5B5B00BEB248}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A3DE5654-7755-45C8-8AE5-5B5B00BEB248}.Release|x86.Build.0 = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|x64.Build.0 = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E2F5F115-0DE4-4CC0-920C-EF6F89D15EAB}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
|
@ -170,6 +170,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
|||
_directories.Add(path);
|
||||
CreateDirectoryInvoked = true;
|
||||
}
|
||||
|
||||
public void Delete(string path, bool recursive)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -124,6 +124,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
|||
{
|
||||
throw new UnauthorizedAccessException();
|
||||
}
|
||||
|
||||
public void Delete(string path)
|
||||
{
|
||||
throw new UnauthorizedAccessException();
|
||||
}
|
||||
}
|
||||
|
||||
private class NoPermissionDirectoryFake : IDirectory
|
||||
|
@ -153,6 +158,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
|||
{
|
||||
throw new UnauthorizedAccessException();
|
||||
}
|
||||
|
||||
public void Delete(string path, bool recursive)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
private class Counter
|
||||
|
|
|
@ -197,6 +197,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
|||
{
|
||||
throw new UnauthorizedAccessException();
|
||||
}
|
||||
|
||||
public void Delete(string path, bool recursive)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
private class FileMock : IFile
|
||||
|
@ -256,6 +261,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
|||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Delete(string path)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
private class MockStream : MemoryStream
|
||||
|
|
|
@ -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 System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using FluentAssertions;
|
||||
|
||||
namespace Microsoft.DotNet.Configurer.UnitTests
|
||||
{
|
||||
public class GivenAPathCalculator
|
||||
{
|
||||
[NonWindowsOnlyFact]
|
||||
public void It_does_not_return_same_path_for_tools_package_and_tool_shim()
|
||||
{
|
||||
// shim name will conflict with the folder that is PackageId, if commandName and packageId are the same.
|
||||
var cliFolderPathCalculator = new CliFolderPathCalculator();
|
||||
cliFolderPathCalculator.ToolsPackagePath.Should().NotBe(cliFolderPathCalculator.ToolsShimPath);
|
||||
cliFolderPathCalculator.ToolsPackagePath.Should().NotBe(cliFolderPathCalculator.ToolsShimPathInUnix.Path);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -50,6 +50,11 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
_files[path] = content;
|
||||
}
|
||||
|
||||
public void Delete(string path)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public static FakeFile Empty => new FakeFile(new Dictionary<string, string>());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
|
||||
namespace Microsoft.DotNet.ShellShim.Tests
|
||||
{
|
||||
internal class FakeReporter : IReporter
|
||||
{
|
||||
public string Message { get; private set; } = "";
|
||||
|
||||
public void WriteLine(string message)
|
||||
{
|
||||
Message = message;
|
||||
}
|
||||
|
||||
public void WriteLine()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Write(string message)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -19,10 +19,10 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[Fact]
|
||||
public void GivenEnvironmentAndReporterItCanPrintOutInstructionToAddPath()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var linuxEnvironmentPath = new LinuxEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
linuxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
// similar to https://code.visualstudio.com/docs/setup/mac
|
||||
fakeReporter.Message.Should().Be(
|
||||
reporter.Lines.Should().Equal(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.EnvironmentPathLinuxManualInstruction,
|
||||
"/myhome/executable/path", "/myhome/executable/path"));
|
||||
|
@ -42,10 +42,10 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[Fact]
|
||||
public void GivenEnvironmentAndReporterItPrintsNothingWhenenvironmentExists()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var linuxEnvironmentPath = new LinuxEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -55,16 +55,16 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
linuxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
fakeReporter.Message.Should().BeEmpty();
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenAddPackageExecutablePathToUserPathJustRunItPrintsInstructionToLogout()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var linuxEnvironmentPath = new LinuxEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -75,8 +75,8 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
linuxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
fakeReporter.Message.Should()
|
||||
.Be(CommonLocalizableStrings.EnvironmentPathLinuxNeedLogout);
|
||||
reporter.Lines.Should()
|
||||
.Equal(CommonLocalizableStrings.EnvironmentPathLinuxNeedLogout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,10 +19,10 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[Fact]
|
||||
public void GivenEnvironmentAndReporterItCanPrintOutInstructionToAddPath()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var osxEnvironmentPath = new OSXEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
osxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
// similar to https://code.visualstudio.com/docs/setup/mac
|
||||
fakeReporter.Message.Should().Be(
|
||||
reporter.Lines.Should().Equal(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.EnvironmentPathOSXManualInstruction,
|
||||
"/myhome/executable/path", "/myhome/executable/path"));
|
||||
|
@ -44,10 +44,10 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[InlineData("~/executable/path")]
|
||||
public void GivenEnvironmentAndReporterItPrintsNothingWhenenvironmentExists(string existingPath)
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var osxEnvironmentPath = new OSXEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -57,16 +57,16 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
osxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
fakeReporter.Message.Should().BeEmpty();
|
||||
reporter.Lines.Should().BeEmpty();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenAddPackageExecutablePathToUserPathJustRunItPrintsInstructionToLogout()
|
||||
{
|
||||
var fakeReporter = new FakeReporter();
|
||||
var reporter = new BufferedReporter();
|
||||
var osxEnvironmentPath = new OSXEnvironmentPath(
|
||||
new BashPathUnderHomeDirectory("/myhome", "executable/path"),
|
||||
fakeReporter,
|
||||
reporter,
|
||||
new FakeEnvironmentProvider(
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
|
@ -77,7 +77,7 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
osxEnvironmentPath.PrintAddPathInstructionIfPathDoesNotExist();
|
||||
|
||||
fakeReporter.Message.Should().Be(CommonLocalizableStrings.EnvironmentPathOSXNeedReopen);
|
||||
reporter.Lines.Should().Equal(CommonLocalizableStrings.EnvironmentPathOSXNeedReopen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,14 +6,16 @@ using System.Diagnostics;
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Transactions;
|
||||
using System.Xml.Linq;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.TestFramework;
|
||||
using Microsoft.DotNet.ToolPackage;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities.Mock;
|
||||
using Microsoft.DotNet.Tools.Tests.ComponentMocks;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
|
||||
|
@ -32,27 +34,29 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[InlineData("my_native_app.exe", null)]
|
||||
[InlineData("./my_native_app.js", "nodejs")]
|
||||
[InlineData(@"C:\tools\my_native_app.dll", "dotnet")]
|
||||
public void GivenAnRunnerOrEntryPointItCanCreateConfig(string entryPoint, string runner)
|
||||
public void GivenAnRunnerOrEntryPointItCanCreateConfig(string entryPointPath, string runner)
|
||||
{
|
||||
var entryPoint = new FilePath(entryPointPath);
|
||||
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
return;
|
||||
|
||||
var shellShimMaker = new ShellShimMaker(TempRoot.Root);
|
||||
var cleanFolderUnderTempRoot = GetNewCleanFolderUnderTempRoot();
|
||||
var shellShimMaker = new ShellShimMaker(cleanFolderUnderTempRoot);
|
||||
|
||||
var tmpFile = Path.Combine(TempRoot.Root, Path.GetRandomFileName());
|
||||
var tmpFile = new FilePath(Path.Combine(cleanFolderUnderTempRoot, Path.GetRandomFileName()));
|
||||
|
||||
shellShimMaker.CreateConfigFile(tmpFile, entryPoint, runner);
|
||||
|
||||
new FileInfo(tmpFile).Should().Exist();
|
||||
new FileInfo(tmpFile.Value).Should().Exist();
|
||||
|
||||
var generated = XDocument.Load(tmpFile);
|
||||
var generated = XDocument.Load(tmpFile.Value);
|
||||
|
||||
generated.Descendants("appSettings")
|
||||
.Descendants("add")
|
||||
.Should()
|
||||
.Contain(e => e.Attribute("key").Value == "runner" && e.Attribute("value").Value == (runner ?? string.Empty))
|
||||
.And
|
||||
.Contain(e => e.Attribute("key").Value == "entryPoint" && e.Attribute("value").Value == entryPoint);
|
||||
.Contain(e => e.Attribute("key").Value == "entryPoint" && e.Attribute("value").Value == entryPoint.Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
@ -60,17 +64,50 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
{
|
||||
var outputDll = MakeHelloWorldExecutableDll();
|
||||
|
||||
var shellShimMaker = new ShellShimMaker(TempRoot.Root);
|
||||
var cleanFolderUnderTempRoot = GetNewCleanFolderUnderTempRoot();
|
||||
var shellShimMaker = new ShellShimMaker(cleanFolderUnderTempRoot);
|
||||
var shellCommandName = nameof(ShellShimMakerTests) + Path.GetRandomFileName();
|
||||
|
||||
shellShimMaker.CreateShim(
|
||||
outputDll.FullName,
|
||||
shellCommandName);
|
||||
var stdOut = ExecuteInShell(shellCommandName);
|
||||
shellShimMaker.CreateShim(outputDll, shellCommandName);
|
||||
|
||||
var stdOut = ExecuteInShell(shellCommandName, cleanFolderUnderTempRoot);
|
||||
|
||||
stdOut.Should().Contain("Hello World");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenAnExecutablePathItCanGenerateShimFileInTransaction()
|
||||
{
|
||||
var outputDll = MakeHelloWorldExecutableDll();
|
||||
|
||||
var cleanFolderUnderTempRoot = GetNewCleanFolderUnderTempRoot();
|
||||
var shellShimMaker = new ShellShimMaker(cleanFolderUnderTempRoot);
|
||||
var shellCommandName = nameof(ShellShimMakerTests) + Path.GetRandomFileName();
|
||||
|
||||
using (var transactionScope = new TransactionScope())
|
||||
{
|
||||
shellShimMaker.CreateShim(outputDll, shellCommandName);
|
||||
transactionScope.Complete();
|
||||
}
|
||||
|
||||
var stdOut = ExecuteInShell(shellCommandName, cleanFolderUnderTempRoot);
|
||||
|
||||
stdOut.Should().Contain("Hello World");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenAnExecutablePathDirectoryThatDoesNotExistItCanGenerateShimFile()
|
||||
{
|
||||
var outputDll = MakeHelloWorldExecutableDll();
|
||||
var extraNonExistDirectory = Path.GetRandomFileName();
|
||||
var shellShimMaker = new ShellShimMaker(Path.Combine(TempRoot.Root, extraNonExistDirectory));
|
||||
var shellCommandName = nameof(ShellShimMakerTests) + Path.GetRandomFileName();
|
||||
|
||||
Action a = () => shellShimMaker.CreateShim(outputDll, shellCommandName);
|
||||
|
||||
a.ShouldNotThrow<DirectoryNotFoundException>();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("arg1 arg2", new[] { "arg1", "arg2" })]
|
||||
[InlineData(" \"arg1 with space\" arg2", new[] { "arg1 with space", "arg2" })]
|
||||
|
@ -79,14 +116,13 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
{
|
||||
var outputDll = MakeHelloWorldExecutableDll();
|
||||
|
||||
var shellShimMaker = new ShellShimMaker(TempRoot.Root);
|
||||
var cleanFolderUnderTempRoot = GetNewCleanFolderUnderTempRoot();
|
||||
var shellShimMaker = new ShellShimMaker(cleanFolderUnderTempRoot);
|
||||
var shellCommandName = nameof(ShellShimMakerTests) + Path.GetRandomFileName();
|
||||
|
||||
shellShimMaker.CreateShim(
|
||||
outputDll.FullName,
|
||||
shellCommandName);
|
||||
shellShimMaker.CreateShim(outputDll, shellCommandName);
|
||||
|
||||
var stdOut = ExecuteInShell(shellCommandName, arguments);
|
||||
var stdOut = ExecuteInShell(shellCommandName, cleanFolderUnderTempRoot, arguments);
|
||||
|
||||
for (int i = 0; i < expectedPassThru.Length; i++)
|
||||
{
|
||||
|
@ -100,17 +136,17 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
public void GivenAnExecutablePathWithExistingSameNameShimItThrows(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var shellCommandName = nameof(ShellShimMakerTests) + Path.GetRandomFileName();
|
||||
|
||||
MakeNameConflictingCommand(TempRoot.Root, shellCommandName);
|
||||
var cleanFolderUnderTempRoot = GetNewCleanFolderUnderTempRoot();
|
||||
MakeNameConflictingCommand(cleanFolderUnderTempRoot, shellCommandName);
|
||||
|
||||
IShellShimMaker shellShimMaker;
|
||||
if (testMockBehaviorIsInSync)
|
||||
{
|
||||
shellShimMaker = new ShellShimMakerMock(TempRoot.Root);
|
||||
shellShimMaker = new ShellShimMakerMock(cleanFolderUnderTempRoot);
|
||||
}
|
||||
else
|
||||
{
|
||||
shellShimMaker = new ShellShimMaker(TempRoot.Root);
|
||||
shellShimMaker = new ShellShimMaker(cleanFolderUnderTempRoot);
|
||||
}
|
||||
|
||||
Action a = () => shellShimMaker.EnsureCommandNameUniqueness(shellCommandName);
|
||||
|
@ -123,18 +159,89 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
[Theory]
|
||||
[InlineData(false)]
|
||||
[InlineData(true)]
|
||||
public void GivenAnExecutablePathWithoutExistingSameNameShimItShouldNotThrow(bool testMockBehaviorIsInSync)
|
||||
public void GivenAnExecutablePathWithExistingSameNameShimItRollsBack(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var shellCommandName = nameof(ShellShimMakerTests) + Path.GetRandomFileName();
|
||||
|
||||
var pathToShim = GetNewCleanFolderUnderTempRoot();
|
||||
MakeNameConflictingCommand(pathToShim, shellCommandName);
|
||||
|
||||
IShellShimMaker shellShimMaker;
|
||||
if (testMockBehaviorIsInSync)
|
||||
{
|
||||
shellShimMaker = new ShellShimMakerMock(TempRoot.Root);
|
||||
shellShimMaker = new ShellShimMakerMock(pathToShim);
|
||||
}
|
||||
else
|
||||
{
|
||||
shellShimMaker = new ShellShimMaker(TempRoot.Root);
|
||||
shellShimMaker = new ShellShimMaker(pathToShim);
|
||||
}
|
||||
|
||||
Action a = () =>
|
||||
{
|
||||
using (var t = new TransactionScope())
|
||||
{
|
||||
shellShimMaker.CreateShim(new FilePath("dummy.dll"), shellCommandName);
|
||||
|
||||
t.Complete();
|
||||
}
|
||||
};
|
||||
a.ShouldThrow<GracefulException>();
|
||||
|
||||
Directory.GetFiles(pathToShim).Should().HaveCount(1, "there is only intent conflicted command");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(false)]
|
||||
[InlineData(true)]
|
||||
public void GivenAnExecutablePathErrorHappensItRollsBack(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var shellCommandName = nameof(ShellShimMakerTests) + Path.GetRandomFileName();
|
||||
|
||||
var pathToShim = GetNewCleanFolderUnderTempRoot();
|
||||
|
||||
IShellShimMaker shellShimMaker;
|
||||
if (testMockBehaviorIsInSync)
|
||||
{
|
||||
shellShimMaker = new ShellShimMakerMock(pathToShim);
|
||||
}
|
||||
else
|
||||
{
|
||||
shellShimMaker = new ShellShimMaker(pathToShim);
|
||||
}
|
||||
|
||||
Action intendedError = () => throw new PackageObtainException();
|
||||
|
||||
Action a = () =>
|
||||
{
|
||||
using (var t = new TransactionScope())
|
||||
{
|
||||
shellShimMaker.CreateShim(new FilePath("dummy.dll"), shellCommandName);
|
||||
|
||||
intendedError();
|
||||
t.Complete();
|
||||
}
|
||||
};
|
||||
a.ShouldThrow<PackageObtainException>();
|
||||
|
||||
Directory.GetFiles(pathToShim).Should().BeEmpty();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(false)]
|
||||
[InlineData(true)]
|
||||
public void GivenAnExecutablePathWithoutExistingSameNameShimItShouldNotThrow(bool testMockBehaviorIsInSync)
|
||||
{
|
||||
var shellCommandName = nameof(ShellShimMakerTests) + Path.GetRandomFileName();
|
||||
var cleanFolderUnderTempRoot = GetNewCleanFolderUnderTempRoot();
|
||||
|
||||
IShellShimMaker shellShimMaker;
|
||||
if (testMockBehaviorIsInSync)
|
||||
{
|
||||
shellShimMaker = new ShellShimMakerMock(cleanFolderUnderTempRoot);
|
||||
}
|
||||
else
|
||||
{
|
||||
shellShimMaker = new ShellShimMaker(cleanFolderUnderTempRoot);
|
||||
}
|
||||
|
||||
Action a = () => shellShimMaker.EnsureCommandNameUniqueness(shellCommandName);
|
||||
|
@ -143,16 +250,21 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
|
||||
private static void MakeNameConflictingCommand(string pathToPlaceShim, string shellCommandName)
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
shellCommandName = shellCommandName + ".exe";
|
||||
}
|
||||
|
||||
File.WriteAllText(Path.Combine(pathToPlaceShim, shellCommandName), string.Empty);
|
||||
}
|
||||
|
||||
private string ExecuteInShell(string shellCommandName, string arguments = "")
|
||||
private string ExecuteInShell(string shellCommandName, string cleanFolderUnderTempRoot, string arguments = "")
|
||||
{
|
||||
ProcessStartInfo processStartInfo;
|
||||
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
var file = Path.Combine(TempRoot.Root, shellCommandName + ".exe");
|
||||
var file = Path.Combine(cleanFolderUnderTempRoot, shellCommandName + ".exe");
|
||||
processStartInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = file,
|
||||
|
@ -171,7 +283,7 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
}
|
||||
|
||||
_output.WriteLine($"Launching '{processStartInfo.FileName} {processStartInfo.Arguments}'");
|
||||
processStartInfo.WorkingDirectory = TempRoot.Root;
|
||||
processStartInfo.WorkingDirectory = cleanFolderUnderTempRoot;
|
||||
processStartInfo.EnvironmentVariables["PATH"] = Path.GetDirectoryName(new Muxer().MuxerPath);
|
||||
|
||||
processStartInfo.ExecuteAndCaptureOutput(out var stdOut, out var stdErr);
|
||||
|
@ -181,7 +293,7 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
return stdOut ?? "";
|
||||
}
|
||||
|
||||
private static FileInfo MakeHelloWorldExecutableDll()
|
||||
private static FilePath MakeHelloWorldExecutableDll()
|
||||
{
|
||||
const string testAppName = "TestAppSimple";
|
||||
const string emptySpaceToTestSpaceInPath = " ";
|
||||
|
@ -197,7 +309,15 @@ namespace Microsoft.DotNet.ShellShim.Tests
|
|||
.GetDirectories().Single()
|
||||
.GetFile($"{testAppName}.dll");
|
||||
|
||||
return outputDll;
|
||||
return new FilePath(outputDll.FullName);
|
||||
}
|
||||
|
||||
private static string GetNewCleanFolderUnderTempRoot()
|
||||
{
|
||||
DirectoryInfo CleanFolderUnderTempRoot = new DirectoryInfo(Path.Combine(TempRoot.Root, "cleanfolder" + Path.GetRandomFileName()));
|
||||
CleanFolderUnderTempRoot.Create();
|
||||
|
||||
return CleanFolderUnderTempRoot.FullName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue