Merge remote-tracking branch 'dotnet/release/2.1.3xx' into merges/release/2.1.3xx-to-release/2.1.4xx

This commit is contained in:
Tanner Gooding 2018-05-07 08:20:23 -07:00
commit 6d6bf64f28
308 changed files with 3304 additions and 1627 deletions

View file

@ -23,9 +23,9 @@ This project has adopted the code of conduct defined by the [Contributor Covenan
Build Status
------------
|Windows x64|Windows x86|macOS|Linux x64 Archive|Linux arm Archive|Linux arm64 Archive|Linux Native Installers|RHEL 6 Archive|Alpine 3.6 Archive|
|Windows x64|Windows x86|macOS|Linux x64 Archive|Linux arm Archive|Linux arm64 Archive|Linux Native Installers|RHEL 6 Archive|Linux-musl Archive|
|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|
|[![][win-x64-build-badge]][win-x64-build]|[![][win-x86-build-badge]][win-x86-build]|[![][osx-build-badge]][osx-build]|[![][linux-build-badge]][linux-build]|[![][linux-arm-build-badge]][linux-arm-build]|[![][linux-arm64-build-badge]][linux-arm64-build]|[![][linuxnative-build-badge]][linuxnative-build]|[![][rhel6-build-badge]][rhel6-build]|[![][alpine3.6-build-badge]][alpine3.6-build]|
|[![][win-x64-build-badge]][win-x64-build]|[![][win-x86-build-badge]][win-x86-build]|[![][osx-build-badge]][osx-build]|[![][linux-build-badge]][linux-build]|[![][linux-arm-build-badge]][linux-arm-build]|[![][linux-arm64-build-badge]][linux-arm64-build]|[![][linuxnative-build-badge]][linuxnative-build]|[![][rhel6-build-badge]][rhel6-build]|[![][linux-musl-build-badge]][linux-musl-build]|
[win-x64-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6902/badge
[win-x64-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6902
@ -51,8 +51,8 @@ Build Status
[rhel6-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/7392/badge
[rhel6-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=7392
[alpine3.6-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/8168/badge
[alpine3.6-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=8168
[linux-musl-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/9036/badge
[linux-musl-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=9036
Installers and Binaries
-----------------------
@ -74,7 +74,7 @@ To download the .NET Core runtime **without** the SDK, visit https://github.com/
| **Linux arm** | [tar.gz][linux-arm-targz] - [Checksum][linux-arm-targz-checksum] |
| **Linux arm64** | [tar.gz][linux-arm64-targz] - [Checksum][linux-arm64-targz-checksum] |
| **RHEL 6** | [tar.gz][rhel-6-targz] - [Checksum][rhel-6-targz-checksum] |
| **Alpine 3.6** | [tar.gz][alpine-3.6-targz] - [Checksum][alpine-3.6-targz-checksum] |
| **Linux-musl** | [tar.gz][linux-musl-targz] - [Checksum][linux-musl-targz-checksum] |
| Latest Coherent Build<sup>2</sup><br>*release/2.1.4xx* |
|:------:|
@ -123,8 +123,8 @@ Reference notes:
[rhel-6-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-rhel.6-x64.tar.gz
[rhel-6-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
[alpine-3.6-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-alpine.3.6-x64.tar.gz
[alpine-3.6-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-alpine.3.6-x64.tar.gz.sha
[linux-musl-targz]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-linux-musl-x64.tar.gz
[linux-musl-targz-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.3xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha
# Debian daily feed

View file

@ -4,6 +4,6 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;alpine.3.6-x64</RuntimeIdentifiers>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers>
</PropertyGroup>
</Project>

View file

@ -4,6 +4,6 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;alpine.3.6-x64</RuntimeIdentifiers>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers>
</PropertyGroup>
</Project>

View file

@ -4,6 +4,6 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;alpine.3.6-x64</RuntimeIdentifiers>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers>
</PropertyGroup>
</Project>

View file

@ -4,7 +4,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;alpine.3.6-x64</RuntimeIdentifiers>
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;rhel.6-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64;linux-musl-x64</RuntimeIdentifiers>
<RestoreAdditionalProjectSources Condition="'$(TEST_PACKAGES)' != ''">$(TEST_PACKAGES)</RestoreAdditionalProjectSources>
</PropertyGroup>

View file

@ -0,0 +1,16 @@
@page
@model TestRazorApp.MyFeature.Pages.Page1Model
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Page1</title>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace TestRazorApp.MyFeature.Pages
{
public class Page1Model : PageModel
{
public void OnGet()
{
}
}
}

View file

@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace TestWebAppSimple
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
}

View file

@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
namespace TestWebAppSimple
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
}
}

View file

@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk.Web" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<Target Name="WriteVersionsFile" BeforeTargets="Restore">
<WriteLinesToFile
File="$(MSBuildThisFileDirectory)/.BundledAspNetCoreVersion"
Lines="$(MicrosoftAspNetCoreAppPackageVersion)"
Overwrite="true"/>
</Target>
</Project>

View file

@ -13,14 +13,14 @@
<ProductMonikerRid Condition=" '$(Rid)' == 'ubuntu.16.04-x64' OR
'$(Rid)' == 'fedora.24-x64' OR
'$(Rid)' == 'rhel.6-x64' OR
'$(Rid)' == 'alpine.3.6-x64' OR
'$(Rid)' == 'linux-musl-x64' OR
'$(Rid)' == 'opensuse.42.1-x64' ">$(Rid)</ProductMonikerRid>
<ProductMonikerRid Condition=" '$(ProductMonikerRid)' == '' ">$(OSName)-$(Architecture)</ProductMonikerRid>
<HostMonikerRid Condition=" '$(HostRid)' == 'ubuntu.16.04-x64' OR
'$(HostRid)' == 'fedora.24-x64' OR
'$(HostRid)' == 'rhel.6-x64' OR
'$(HostRid)' == 'alpine.3.6-x64' OR
'$(HostRid)' == 'linux-musl-x64' OR
'$(HostRid)' == 'opensuse.42.1-x64' ">$(HostRid)</HostMonikerRid>
<HostMonikerRid Condition=" '$(HostMonikerRid)' == '' ">$(HostOSName)-$(Architecture)</HostMonikerRid>
<HostMonikerRidForFileName>$(HostMonikerRid)</HostMonikerRidForFileName>

View file

@ -6,10 +6,10 @@
<!-- https://github.com/dotnet/cli/issues/8800 -->
<IncludeNuGetPackageArchive Condition=" $(Architecture.StartsWith('arm')) ">false</IncludeNuGetPackageArchive>
<IncludeNuGetPackageArchive Condition=" '$(IncludeNuGetPackageArchive)' == '' ">true</IncludeNuGetPackageArchive>
<SkipBuildingInstallers Condition=" '$(SkipBuildingInstallers)' == '' AND ($(Rid.StartsWith('rhel.6')) OR $(Rid.StartsWith('alpine.3.6')))">true</SkipBuildingInstallers>
<SkipBuildingInstallers Condition=" '$(SkipBuildingInstallers)' == '' AND ($(Rid.StartsWith('rhel.6')) OR $(Rid.StartsWith('linux-musl')))">true</SkipBuildingInstallers>
<SkipBuildingInstallers Condition=" '$(SkipBuildingInstallers)' == '' ">false</SkipBuildingInstallers>
<UsePortableLinuxSharedFramework Condition=" '$(UsePortableLinuxSharedFramework)' == '' AND '$(OSPlatform)' == 'linux' AND '$(Rid)' != 'rhel.6-x64' AND '$(Rid)' != 'alpine.3.6-x64' ">true</UsePortableLinuxSharedFramework>
<IncludeSharedFrameworksForBackwardsCompatibilityTests Condition=" $(IncludeSharedFrameworksForBackwardsCompatibilityTests) == '' AND '$(Rid)' != 'linux-x64' AND '$(Rid)' != 'rhel.6-x64' AND '$(Rid)' != 'alpine.3.6-x64'">true</IncludeSharedFrameworksForBackwardsCompatibilityTests>
<UsePortableLinuxSharedFramework Condition=" '$(UsePortableLinuxSharedFramework)' == '' AND '$(OSPlatform)' == 'linux' AND '$(Rid)' != 'rhel.6-x64' AND '$(Rid)' != 'linux-musl-x64' ">true</UsePortableLinuxSharedFramework>
<IncludeSharedFrameworksForBackwardsCompatibilityTests Condition=" $(IncludeSharedFrameworksForBackwardsCompatibilityTests) == '' AND '$(Rid)' != 'linux-x64' AND '$(Rid)' != 'rhel.6-x64' AND '$(Rid)' != 'linux-musl-x64'">true</IncludeSharedFrameworksForBackwardsCompatibilityTests>
<HighEntropyVA>true</HighEntropyVA>
<!-- Only use asset target fallback that we set (not implicit one to net461). -->

View file

@ -1,5 +1,5 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ItemGroup Condition=" '$(IncludeAspNetCoreRuntime)' != 'false' ">
<BundledDotnetTools Include="dotnet-dev-certs" Version="$(AspNetCoreVersion)" />
<BundledDotnetTools Include="dotnet-ef" Version="$(AspNetCoreVersion)" ObsoletesCliTool="Microsoft.EntityFrameworkCore.Tools.DotNet" />
<BundledDotnetTools Include="dotnet-sql-cache" Version="$(AspNetCoreVersion)" ObsoletesCliTool="Microsoft.Extensions.Caching.SqlConfig.Tools" />

View file

@ -25,6 +25,7 @@
<!-- Use the portable "linux-x64" Rid when downloading Linux shared framework compressed file. -->
<SharedFrameworkRid>$(CoreSetupRid)</SharedFrameworkRid>
<SharedFrameworkRid Condition=" '$(ProductMonikerRid)' == 'linux-musl-x64' ">$(ProductMonikerRid)</SharedFrameworkRid>
<SharedFrameworkRid Condition=" '$(UsePortableLinuxSharedFramework)' == 'true' ">linux-$(Architecture)</SharedFrameworkRid>
<CombinedFrameworkHostCompressedFileName>dotnet-runtime-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension)</CombinedFrameworkHostCompressedFileName>
@ -54,13 +55,6 @@
</PropertyGroup>
<ItemGroup>
<_DownloadAndExtractItem Include="AspNetCoreSharedFxArchiveFile"
Condition="!Exists('$(AspNetCoreSharedFxArchiveFile)') And !$(Architecture.StartsWith('arm'))">
<Url>$(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion)/$(AspNetCoreSharedFxArchiveFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(AspNetCoreSharedFxArchiveFile)</DownloadFileName>
<ExtractDestination>$(AspNetCoreSharedFxPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>
<_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
Condition="!Exists('$(CombinedSharedHostAndFrameworkArchive)')">
<Url>$(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion)/$(CombinedFrameworkHostCompressedFileName)$(CoreSetupBlobAccessTokenParam)</Url>
@ -95,6 +89,15 @@
<DownloadFileName>$(DownloadedHostFxrInstallerFile)</DownloadFileName>
<ExtractDestination></ExtractDestination>
</_DownloadAndExtractItem>
</ItemGroup>
<ItemGroup Condition=" '$(IncludeAspNetCoreRuntime)' != 'false' ">
<_DownloadAndExtractItem Include="AspNetCoreSharedFxArchiveFile"
Condition="!Exists('$(AspNetCoreSharedFxArchiveFile)') And ( '$(AspNetCoreSharedFxArchiveRid)' == 'linux-arm' OR !$(Architecture.StartsWith('arm')) )">
<Url>$(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion)/$(AspNetCoreSharedFxArchiveFileName)$(CoreSetupBlobAccessTokenParam)</Url>
<DownloadFileName>$(AspNetCoreSharedFxArchiveFile)</DownloadFileName>
<ExtractDestination>$(AspNetCoreSharedFxPublishDirectory)</ExtractDestination>
</_DownloadAndExtractItem>
<_DownloadAndExtractItem Include="DownloadedAspNetCoreSharedFxInstallerFile"
Condition="'$(SkipBuildingInstallers)' != 'true' AND '$(DownloadedAspNetCoreSharedFxInstallerFile)' != '' AND !Exists($(DownloadedAspNetCoreSharedFxInstallerFile)) And '$(InstallerExtension)' != '' And !$(Architecture.StartsWith('arm'))">

View file

@ -1,37 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MicrosoftAspNetCoreAppPackageVersion>2.1.0-preview2-30475</MicrosoftAspNetCoreAppPackageVersion>
<MicrosoftNETCoreAppPackageVersion>2.1.0-preview3-26411-06</MicrosoftNETCoreAppPackageVersion>
<MicrosoftAspNetCoreAllPackageVersion>2.1.0-rc1-30661</MicrosoftAspNetCoreAllPackageVersion>
<MicrosoftAspNetCoreAppPackageVersion>$(MicrosoftAspNetCoreAllPackageVersion)</MicrosoftAspNetCoreAppPackageVersion>
<MicrosoftNETCoreAppPackageVersion>2.1.0-rc1-26423-06</MicrosoftNETCoreAppPackageVersion>
<MicrosoftNETCoreDotNetHostResolverPackageVersion>$(MicrosoftNETCoreAppPackageVersion)</MicrosoftNETCoreDotNetHostResolverPackageVersion>
<MicrosoftBuildPackageVersion>15.7.0-preview-000145</MicrosoftBuildPackageVersion>
<MicrosoftBuildPackageVersion>15.7.177</MicrosoftBuildPackageVersion>
<MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildFrameworkPackageVersion>
<MicrosoftBuildRuntimePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildRuntimePackageVersion>
<MicrosoftBuildLocalizationPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildLocalizationPackageVersion>
<MicrosoftBuildUtilitiesCorePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildUtilitiesCorePackageVersion>
<MicrosoftFSharpCompilerPackageVersion>10.1.4-rtm-180406-0</MicrosoftFSharpCompilerPackageVersion>
<MicrosoftCodeAnalysisCSharpPackageVersion>2.8.0-beta4-62811-05</MicrosoftCodeAnalysisCSharpPackageVersion>
<MicrosoftFSharpCompilerPackageVersion>10.1.4-rtm-180422-0</MicrosoftFSharpCompilerPackageVersion>
<MicrosoftCodeAnalysisCSharpPackageVersion>2.8.0-beta4-62827-02</MicrosoftCodeAnalysisCSharpPackageVersion>
<MicrosoftNETCoreCompilersPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNETCoreCompilersPackageVersion>
<MicrosoftCodeAnalysisBuildTasksPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftCodeAnalysisBuildTasksPackageVersion>
<MicrosoftNetCompilersNetcorePackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNetCompilersNetcorePackageVersion>
<MicrosoftNETSdkPackageVersion>2.1.300-preview3-62804-06</MicrosoftNETSdkPackageVersion>
<MicrosoftNETSdkPackageVersion>2.1.300-rtm-62902-01</MicrosoftNETSdkPackageVersion>
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
<MicrosoftNETSdkRazorPackageVersion>$(MicrosoftAspNetCoreAppPackageVersion)</MicrosoftNETSdkRazorPackageVersion>
<MicrosoftNETSdkWebPackageVersion>2.1.300-preview2-20180406-1563552</MicrosoftNETSdkWebPackageVersion>
<MicrosoftNETSdkWebPackageVersion>2.1.300-rc1-20180422-1618307</MicrosoftNETSdkWebPackageVersion>
<MicrosoftNETSdkPublishPackageVersion>$(MicrosoftNETSdkWebPackageVersion)</MicrosoftNETSdkPublishPackageVersion>
<MicrosoftNETSdkWebProjectSystemPackageVersion>$(MicrosoftNETSdkWebPackageVersion)</MicrosoftNETSdkWebProjectSystemPackageVersion>
<MicrosoftDotNetCommonItemTemplatesPackageVersion>1.0.2-beta3-20180406-1563557</MicrosoftDotNetCommonItemTemplatesPackageVersion>
<MicrosoftDotNetCommonItemTemplatesPackageVersion>1.0.2-beta3-20180422-1618305</MicrosoftDotNetCommonItemTemplatesPackageVersion>
<MicrosoftDotNetCommonProjectTemplates20PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonProjectTemplates20PackageVersion>
<MicrosoftDotNetTestProjectTemplates20PackageVersion>1.0.2-beta3-20180406-1563557</MicrosoftDotNetTestProjectTemplates20PackageVersion>
<MicrosoftTemplateEngineCliPackageVersion>1.0.2-beta3-20180406-1563557</MicrosoftTemplateEngineCliPackageVersion>
<MicrosoftDotNetTestProjectTemplates20PackageVersion>1.0.2-beta3-20180422-1618305</MicrosoftDotNetTestProjectTemplates20PackageVersion>
<MicrosoftTemplateEngineCliPackageVersion>1.0.2-beta3-20180422-1618305</MicrosoftTemplateEngineCliPackageVersion>
<MicrosoftTemplateEngineAbstractionsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineAbstractionsPackageVersion>
<MicrosoftTemplateEngineCliLocalizationPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineCliLocalizationPackageVersion>
<MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>
<MicrosoftTemplateEngineUtilsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineUtilsPackageVersion>
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0-preview3-26411-06</MicrosoftDotNetPlatformAbstractionsPackageVersion>
<MicrosoftExtensionsDependencyModelPackageVersion>2.1.0-preview3-26411-06</MicrosoftExtensionsDependencyModelPackageVersion>
<MicrosoftDotNetCliCommandLinePackageVersion>0.2.1-alpha-62806-05</MicrosoftDotNetCliCommandLinePackageVersion>
<MicrosoftDotNetProjectJsonMigrationPackageVersion>1.3.1-alpha-62806-04</MicrosoftDotNetProjectJsonMigrationPackageVersion>
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0-rc1-26423-06</MicrosoftDotNetPlatformAbstractionsPackageVersion>
<MicrosoftExtensionsDependencyModelPackageVersion>2.1.0-rc1-26423-06</MicrosoftExtensionsDependencyModelPackageVersion>
<MicrosoftDotNetCliCommandLinePackageVersion>0.2.1-alpha-62823-01</MicrosoftDotNetCliCommandLinePackageVersion>
<MicrosoftDotNetProjectJsonMigrationPackageVersion>1.3.1-alpha-62823-01</MicrosoftDotNetProjectJsonMigrationPackageVersion>
<MicrosoftDotNetToolsMigrateCommandPackageVersion>$(MicrosoftDotNetProjectJsonMigrationPackageVersion)</MicrosoftDotNetToolsMigrateCommandPackageVersion>
<MicrosoftDotNetArchivePackageVersion>0.2.0-beta-62628-01</MicrosoftDotNetArchivePackageVersion>
<NuGetBuildTasksPackageVersion>4.8.0-preview1.5158</NuGetBuildTasksPackageVersion>
@ -43,7 +44,7 @@
<NuGetPackagingPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetPackagingPackageVersion>
<NuGetProjectModelPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetProjectModelPackageVersion>
<NuGetVersioningPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetVersioningPackageVersion>
<MicrosoftNETTestSdkPackageVersion>15.7.0-preview-20180221-13</MicrosoftNETTestSdkPackageVersion>
<MicrosoftNETTestSdkPackageVersion>15.7.0</MicrosoftNETTestSdkPackageVersion>
<MicrosoftTestPlatformCLIPackageVersion>$(MicrosoftNETTestSdkPackageVersion)</MicrosoftTestPlatformCLIPackageVersion>
<MicrosoftTestPlatformBuildPackageVersion>$(MicrosoftNETTestSdkPackageVersion)</MicrosoftTestPlatformBuildPackageVersion>
<XliffTasksPackageVersion>0.2.0-beta-000042</XliffTasksPackageVersion>

View file

@ -2,7 +2,7 @@
<PropertyGroup>
<IsDebianBaseDistro Condition=" '$(HostOSName)' == 'ubuntu' OR '$(HostOSName)' == 'debian' ">true</IsDebianBaseDistro>
<IsRPMBasedDistro Condition=" $(HostRid.StartsWith('rhel')) AND '$(HostRid)' != 'rhel.6-x64' ">true</IsRPMBasedDistro>
<PublishNativeInstallers Condition=" '$(IslinuxPortable)' != 'true' AND '$(HostRid)' != 'rhel.6-x64' AND '$(HostRid)' != 'alpine.3.6-x64'">true</PublishNativeInstallers>
<PublishNativeInstallers Condition=" '$(IslinuxPortable)' != 'true' AND '$(HostRid)' != 'rhel.6-x64' AND '$(HostRid)' != 'linux-musl-x64'">true</PublishNativeInstallers>
<PublishArchives Condition=" '$(IslinuxPortable)' == 'true' OR ('$(IsDebianBaseDistro)' != 'true' AND '$(IsRPMBasedDistro)' != 'true') ">true</PublishArchives>
</PropertyGroup>
</Project>

View file

@ -2,6 +2,8 @@
<Target Name="DownloadPackageVersionsProps"
DependsOnTargets="BuildDotnetCliBuildFramework">
<Message Importance="High" Text="Overriding repository dependency versions with $(PB_PackageVersionPropsUrl)"
Condition=" '$(PB_PackageVersionPropsUrl)' != '' " />
<DownloadFile Uri="$(PB_PackageVersionPropsUrl)$(CoreSetupBlobAccessTokenParam)"
DestinationPath="$(OrchestratedPackageVersionsProps)"
Condition=" '$(PB_PackageVersionPropsUrl)' != '' " />

View file

@ -1,12 +1,14 @@
<Project ToolsVersion="15.0">
<Target Name="WriteGitCommitInfoProps">
<Exec Command="git rev-list --count HEAD"
ConsoleToMSBuild="true">
ConsoleToMSBuild="true"
Condition=" '$(GitInfoCommitCount)' == '' ">
<Output TaskParameter="ConsoleOutput" PropertyName="GitInfoCommitCount" />
</Exec>
<Exec Command="git rev-parse HEAD"
ConsoleToMSBuild="true">
ConsoleToMSBuild="true"
Condition=" '$(GitInfoCommitHash)' == '' ">
<Output TaskParameter="ConsoleOutput" PropertyName="GitInfoCommitHash" />
</Exec>

View file

@ -113,13 +113,39 @@
<_NETCoreAppPackageVersion>$(MicrosoftNETCoreAppPackageVersion)</_NETCoreAppPackageVersion>
<_NETStandardLibraryPackageVersion>@(_NETStandardLibraryPackageVersions->Distinct())</_NETStandardLibraryPackageVersion>
<_NETCorePlatformsPackageVersion>@(_NETCorePlatformsPackageVersions->Distinct())</_NETCorePlatformsPackageVersion>
<_AspNetCoreAllPackageVersion>$(MicrosoftAspNetCoreAllPackageVersion)</_AspNetCoreAllPackageVersion>
<_AspNetCoreAppPackageVersion>$(MicrosoftAspNetCoreAppPackageVersion)</_AspNetCoreAppPackageVersion>
<!-- Use only major and minor in target framework version -->
<_NETCoreAppTargetFrameworkVersion>$(_NETCoreAppPackageVersion.Split('.')[0]).$(_NETCoreAppPackageVersion.Split('.')[1])</_NETCoreAppTargetFrameworkVersion>
<_NETStandardTargetFrameworkVersion>$(_NETStandardLibraryPackageVersion.Split('.')[0]).$(_NETStandardLibraryPackageVersion.Split('.')[1])</_NETStandardTargetFrameworkVersion>
<_AspNetCoreAllTargetFrameworkVersion>$(_NETCoreAppTargetFrameworkVersion)</_AspNetCoreAllTargetFrameworkVersion>
<_AspNetCoreAppTargetFrameworkVersion>$(_AspNetCoreAllTargetFrameworkVersion)</_AspNetCoreAppTargetFrameworkVersion>
<_NETCoreSdkIsPreview Condition=" '$(DropSuffix)' == '' ">true</_NETCoreSdkIsPreview>
</PropertyGroup>
<ItemGroup>
<BundledVersionsVariable Include="BundledAspNetCoreAllTargetFrameworkVersion" Value="$(_AspNetCoreAllTargetFrameworkVersion)" />
<BundledVersionsVariable Include="BundledAspNetCoreAllPackageVersion" Value="$(_AspNetCoreAllPackageVersion)" />
<BundledVersionsVariable Include="BundledAspNetCoreAppTargetFrameworkVersion" Value="$(_AspNetCoreAppTargetFrameworkVersion)" />
<BundledVersionsVariable Include="BundledAspNetCoreAppPackageVersion" Value="$(_AspNetCoreAppPackageVersion)" />
</ItemGroup>
<ItemGroup Condition=" '$(IncludeAspNetCoreRuntime)' == 'false' ">
<!--
These properties indicate that the ASP.NET Core shared runtime is not bundled on this platform, so the SDK should not
treat these packages as the 'platform' base.
The bundled aspnet packages versions should still be set, however, so the default, version-less PackageReference
still works.
See also https://github.com/aspnet/Universe/pull/1130.
-->
<BundledVersionsVariable Include="_AspNetCoreAppSharedFxIsEnabled" Value="false" />
<BundledVersionsVariable Include="_AspNetCoreAllSharedFxIsEnabled" Value="false" />
</ItemGroup>
<PropertyGroup>
<BundledVersionsPropsContent>
<![CDATA[
<!--
@ -140,6 +166,7 @@ Copyright (c) .NET Foundation. All rights reserved.
<BundledNETStandardTargetFrameworkVersion>$(_NETStandardTargetFrameworkVersion)</BundledNETStandardTargetFrameworkVersion>
<BundledNETStandardPackageVersion>$(_NETStandardLibraryPackageVersion)</BundledNETStandardPackageVersion>
<BundledNETCorePlatformsPackageVersion>$(_NETCorePlatformsPackageVersion)</BundledNETCorePlatformsPackageVersion>
@(BundledVersionsVariable->'<%(Identity)>%(Value)</%(Identity)>', '%0A ')
<NETCoreSdkVersion>$(SdkVersion)</NETCoreSdkVersion>
<_NETCoreSdkIsPreview>$(_NETCoreSdkIsPreview)</_NETCoreSdkIsPreview>

View file

@ -24,6 +24,7 @@
<add key="nuget-build" value="https://dotnet.myget.org/F/nuget-build/api/v3/index.json" />
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="container-tools" value="https://www.myget.org/F/container-tools-for-visual-studio/api/v3/index.json" />
<add key="linux-musl-bootstrap-feed" value="https://dotnetfeed.blob.core.windows.net/orchestrated-release-2-1/20180420-03/aspnet-inputs/index.json" />
]]>
</NugetConfigCLIFeeds>
@ -40,9 +41,9 @@
Lines="$(NugetConfigHeader)"
Overwrite="true" />
<WriteLinesToFile Condition="'$(ExternalRestoreSources)' != '' and '$(DotNetBuildOffline)' != 'true'"
<WriteLinesToFile Condition="'$(ExternalRestoreSources)' != ''"
File="$(GeneratedNuGetConfig)"
Lines="&lt;add key=&quot;PrivateBlobFeed%(NugetConfigPrivateFeeds.Filename)&quot; value=&quot;%(NugetConfigPrivateFeeds.Identity)&quot; /&gt;"
Lines="&lt;add key=&quot;PrivateBlobFeed%(NugetConfigPrivateFeeds.Identity)&quot; value=&quot;%(NugetConfigPrivateFeeds.Identity)&quot; /&gt;"
Overwrite="false" />
<WriteLinesToFile Condition="'$(DotNetBuildOffline)' != 'true'"

View file

@ -109,10 +109,6 @@
<FilesToSign Include="$(PackagesDirectory)/**/*.cab">
<Authenticode>$(InternalCertificateId)</Authenticode>
</FilesToSign>
<FilesToSign Include="$(PackagesDirectory)/**/*.nupkg"
Exclude="$(PackagesDirectory)/**/*symbols.nupkg">
<Authenticode>$(NugetCertificateId)</Authenticode>
</FilesToSign>
</ItemGroup>
</Target>

View file

@ -42,6 +42,8 @@
Projects="@(ProjectsToTest)">
</MSBuild>
<Exec Command="$(DotnetInOutputDirectory) exec $(RoslynDirectory)/bincore/VBCSCompiler.dll -shutdown" />
<Message Text="Finished test execution" Importance="High" />
</Target>

View file

@ -31,7 +31,7 @@
<PropertyGroup>
<VersionBadgeMoniker>$(OSName)_$(Architecture)</VersionBadgeMoniker>
<VersionBadgeMoniker Condition=" '$(Rid)' == 'rhel.6-x64' ">rhel.6_x64</VersionBadgeMoniker>
<VersionBadgeMoniker Condition=" '$(Rid)' == 'alpine.3.6-x64' ">alpine.3.6_x64</VersionBadgeMoniker>
<VersionBadgeMoniker Condition=" '$(Rid)' == 'linux-musl-x64' ">linux_musl_x64</VersionBadgeMoniker>
<VersionBadgeMoniker Condition=" '$(IslinuxPortable)' == 'true' ">linux_$(Architecture)</VersionBadgeMoniker>
<VersionBadgeMoniker Condition=" '$(IsBuildingAndPublishingAllLinuxDistrosNativeInstallers)' == 'true' ">all_linux_distros_native_installer</VersionBadgeMoniker>

View file

@ -5,7 +5,9 @@
<ItemGroup>
<NupkgsForPublishing Include="$(PackagesDirectory)/Microsoft.DotNet.Cli.Utils.*.nupkg"
Exclude="$(PackagesDirectory)/*.symbols.nupkg"
Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x64' " />
Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x64' " >
<ManifestArtifactData>NonShipping=true</ManifestArtifactData>
</NupkgsForPublishing>
<NupkgsForPublishing Include="$(PackagesDirectory)/Microsoft.DotNet.MSBuildSdkResolver.*.nupkg"
Exclude="$(PackagesDirectory)/*.symbols.nupkg"
Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x64' " >

View file

@ -54,7 +54,7 @@ namespace Microsoft.DotNet.Cli.Build
{ "osx_x64", false },
{ "linux_x64", false },
{ "rhel.6_x64", false },
{ "alpine.3.6_x64", false },
{ "linux_musl_x64", false },
{ "all_linux_distros_native_installer", false },
{ "linux_arm", false },
{ "linux_arm64", false }

View file

@ -9,17 +9,35 @@ def project = GithubProject
def branch = GithubBranchName
def isPR = true
def platformList = ['Linux:x64:Release', 'Debian8.2:x64:Debug', 'Ubuntu:x64:Release', 'Ubuntu16.04:x64:Debug', 'OSX10.12:x64:Release', 'Windows_NT:x64:Release', 'Windows_NT:x86:Debug', 'Windows_NT_ES:x64:Debug', 'RHEL7.2:x64:Release', 'CentOS7.1:x64:Debug', 'RHEL6:x64:Debug', 'Alpine3.6:x64:Debug', 'Linux:arm:Debug', 'Linux:arm64:Debug']
def platformList = [
'CentOS7.1:x64:Debug',
'Debian8.2:x64:Debug',
'fedora.27:x64:Debug',
'Linux:arm:Debug',
'Linux:arm64:Debug',
'Linux-musl:x64:Debug',
'Linux:x64:Release',
'opensuse.43.2:x64:Debug',
'OSX10.12:x64:Release',
'RHEL6:x64:Debug',
'RHEL7.2:x64:Release',
'Ubuntu:x64:Release',
'Ubuntu16.04:x64:Debug',
'ubuntu.18.04:x64:Debug',
'Windows_NT:x64:Release',
'Windows_NT:x86:Debug',
'Windows_NT_ES:x64:Debug'
]
def static getBuildJobName(def configuration, def os, def architecture) {
return configuration.toLowerCase() + '_' + os.toLowerCase() + '_' + architecture.toLowerCase()
}
platformList.each { platform ->
// Calculate names
def (os, architecture, configuration) = platform.tokenize(':')
def osUsedForMachineAffinity = os;
def osVersionUsedForMachineAffinity = 'latest-or-auto';
// Calculate job name
def jobName = getBuildJobName(configuration, os, architecture)
@ -55,9 +73,14 @@ set DOTNET_CLI_UI_LANGUAGE=es
osUsedForMachineAffinity = 'Ubuntu16.04';
buildCommand = "./build.sh --skip-prereqs --configuration ${configuration} --runtime-id rhel.6-x64 --docker rhel.6 --targets Default"
}
else if (os == 'Alpine3.6') {
else if (os == 'Linux-musl') {
osUsedForMachineAffinity = 'Ubuntu16.04';
buildCommand = "./build.sh --skip-prereqs --configuration ${configuration} --runtime-id alpine.3.6-x64 --docker alpine.3.6 --targets Default"
buildCommand = "./build.sh --skip-prereqs --configuration ${configuration} --runtime-id linux-musl-x64 --docker alpine.3.6 --targets Default"
}
else if (os == 'ubuntu.18.04' || os == 'fedora.27' || os == 'opensuse.43.2') {
osUsedForMachineAffinity = 'Ubuntu16.04'
osVersionUsedForMachineAffinity = 'latest-docker'
buildCommand = "./build.sh --linux-portable --skip-prereqs --configuration ${configuration} --docker ${os} --targets Default"
}
else {
// Jenkins non-Ubuntu CI machines don't have docker
@ -78,7 +101,7 @@ set DOTNET_CLI_UI_LANGUAGE=es
}
}
Utilities.setMachineAffinity(newJob, osUsedForMachineAffinity, 'latest-or-auto')
Utilities.setMachineAffinity(newJob, osUsedForMachineAffinity, osVersionUsedForMachineAffinity)
Utilities.standardJobSetup(newJob, project, isPR, "*/${branch}")
// ARM CI runs are build only.
if ((architecture != 'arm') && (architecture != 'arm64')) {

View file

@ -67,8 +67,6 @@ if (!(Test-Path $env:DOTNET_INSTALL_DIR))
mkdir $env:DOTNET_INSTALL_DIR | Out-Null
}
# Disable first run since we want to control all package sources
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1

View file

@ -189,7 +189,7 @@ fi
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
if [ $BUILD -eq 1 ]; then
dotnet msbuild build.proj /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles $argsnotargets
dotnet msbuild build.proj /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles ${argsnotargets[@]}
dotnet msbuild build.proj /m /v:normal /fl /flp:v=diag /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $args
else
echo "Not building due to --nobuild"

View file

@ -0,0 +1,32 @@
#
# 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.
#
# Dockerfile that creates a container suitable to build dotnet-cli
FROM microsoft/dotnet-buildtools-prereqs:fedora-27-82a3800-20180326211504
RUN dnf install -y findutils
RUN dnf upgrade -y nss
RUN dnf clean all
# Set a different rid to publish buildtools for, until we update to a version which
# natively supports fedora.24-x64
ENV __PUBLISH_RID=fedora.23-x64
# Setup User to match Host User, and give superuser permissions
ARG USER_ID=0
RUN useradd -m code_executor -u ${USER_ID} -g wheel
RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# With the User Change, we need to change permissions on these directories
RUN chmod -R a+rwx /usr/local
RUN chmod -R a+rwx /home
# Set user to the one we just created
USER ${USER_ID}
# Set working directory
WORKDIR /opt/code

View file

@ -0,0 +1,49 @@
#
# 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.
#
FROM microsoft/dotnet-buildtools-prereqs:opensuse-42.3-d46ee12-20180327014902
# Install the base toolchain we need to build anything (clang, cmake, make and the like)
# this does not include libraries that we need to compile different projects, we'd like
# them in a different layer.
RUN zypper -n install binutils \
cmake \
which \
gcc \
llvm-clang \
tar \
ncurses-utils \
curl \
git \
sudo && \
zypper clean -a
# Dependencies of CoreCLR and CoreFX.
RUN zypper -n install --force-resolution \
libunwind \
libicu \
lttng-ust \
libuuid1 \
libopenssl1_0_0 \
libcurl4 \
krb5 && \
zypper clean -a
# Setup User to match Host User, and give superuser permissions
ARG USER_ID=0
RUN useradd -m code_executor -u ${USER_ID} -g wheel
RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# With the User Change, we need to change permissions on these directories
RUN chmod -R a+rwx /usr/local
RUN chmod -R a+rwx /home
RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created
USER ${USER_ID}
# Set working directory
WORKDIR /opt/code

View file

@ -0,0 +1,29 @@
#
# 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.
#
# Dockerfile that creates a container suitable to build dotnet-cli
FROM microsoft/dotnet-buildtools-prereqs:ubuntu-18.04-f90bc20-20180320154721
RUN apt-get update && \
apt-get -qqy install \
sudo && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Setup User to match Host User, and give superuser permissions
ARG USER_ID=0
RUN useradd -m code_executor -u ${USER_ID} -g sudo
RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# With the User Change, we need to change permissions on these directories
RUN chmod -R a+rwx /usr/local
RUN chmod -R a+rwx /home
RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created
USER ${USER_ID}
# Set working directory
WORKDIR /opt/code

View file

@ -136,10 +136,6 @@ get_linux_platform_name() {
else
if [ -e /etc/os-release ]; then
. /etc/os-release
if [[ $ID == "alpine" ]]; then
# remove the last version digit
VERSION_ID=${VERSION_ID%.*}
fi
echo "$ID.$VERSION_ID"
return 0
elif [ -e /etc/redhat-release ]; then
@ -166,9 +162,12 @@ get_current_os_name() {
local linux_platform_name
linux_platform_name="$(get_linux_platform_name)" || { echo "linux" && return 0 ; }
if [[ $linux_platform_name == "rhel.6" || $linux_platform_name == "alpine.3.6" ]]; then
if [[ $linux_platform_name == "rhel.6" ]]; then
echo $linux_platform_name
return 0
elif [[ $linux_platform_name == alpine* ]]; then
echo "linux-musl"
return 0
else
echo "linux"
return 0
@ -597,7 +596,7 @@ copy_files_or_dirs_from_list() {
local osname="$(get_current_os_name)"
local override_switch=$(
if [ "$override" = false ]; then
if [[ "$osname" == 'alpine'* ]]; then
if [[ "$osname" == "linux-musl" ]]; then
printf -- "-u";
else
printf -- "-n";

View file

@ -25,7 +25,7 @@
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCorePackageVersion)" />
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
<PackageReference Include="XliffTasks" Version="$(XliffTasksPackageVersion)" PrivateAssets="All" />
</ItemGroup>
</ItemGroup>
<ItemGroup Condition=" '$(TargetFrameworkIdentifier)' == '.NETStandard' ">
<PackageReference Include="NETStandard.Library" Version="2.0.0" />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">Soubor deps.json se nepodařilo vygenerovat, protože už je pravděpodobně vygenerovaný: {0}</target>
<target state="translated">Nelze vygenerovat soubor deps.json, je možné, že už byl vygenerován. Zadáním parametru -d před název nástroje vypíšete diagnostické informace, například dotnet -d &lt;název_nástroje&gt;: {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">Argumenty MSBuild: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">{0} nelze použít jako spustitelný soubor hostitele aplikace, protože neobsahuje očekávanou zástupnou bajtovou posloupnost {1}, která by označila, kam se má zapsat název aplikace.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">Zadaný název souboru {0} je delší než 1024 bajtů.</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">Nelze najít příkaz dotnet {0}. Spusťte prosím instalaci následujícím příkazem:
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">"deps.json" kann nicht erzeugt werden; sie wurde vielleicht bereits erzeugt: {0}</target>
<target state="translated">Die Datei "deps.json" kann nicht generiert werden, möglicherweise wurde sie bereits generiert. Sie können zur Diagnoseausgabe die Option "-d" vor dem Toolnamen angeben (Beispiel: "dotnet -d &lt;toolname&gt;": {0}).</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -161,7 +161,7 @@
</trans-unit>
<trans-unit id="ProjectNotRestoredOrRestoreFailed">
<source>The project may not have been restored or restore failed - run `dotnet restore`</source>
<target state="translated">Das Projekt wurde möglicherweise nicht wiederhergestellt, oder bei der Wiederherstellung ist ein Fehler aufgetreten. führen Sie "dotnet restore" aus.</target>
<target state="translated">Das Projekt wurde möglicherweise nicht wiederhergestellt, oder bei der Wiederherstellung ist ein Fehler aufgetreten. Führen Sie "dotnet restore" aus.</target>
<note />
</trans-unit>
<trans-unit id="NoExecutableFoundMatchingCommand">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">MSBuild-Argumente: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">"{0}" kann nicht als ausführbare Anwendungshostdatei verwendet werden, da die erwartete Platzhalter-Bytesequenz "{1}" nicht vorhanden ist, die markiert, wo der Anwendungsname geschrieben wird.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">Der angegebene Dateiname "{0}" ist länger als 1024 Byte.</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">Der Befehl "dotnet {0}" wurde nicht gefunden, führen Sie zur Installation den folgenden Befehl aus:
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">no se puede generar deps.json; es posible que ya se haya generado: {0}</target>
<target state="translated">No se puede generar deps.json; puede que ya se haya generado. Para obtener una salida de diagnóstico, especifique la opción "-d" delante del nombre de la herramienta (por ejemplo, "dotnet -d &lt;nombreHerramienta&gt;": {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">Argumentos de MSBuild: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">No se puede usar "{0}" como ejecutable del host de aplicación ya que no contiene la secuencia de bytes esperada del marcador de posición "{1}" que marcaría dónde escribir el nombre de la aplicación.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">El nombre de archivo especificado "{0}" tiene más de 1024 bytes</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">No se encuentra el comando "dotnet {0}"; ejecute el comando siguiente para instalar
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">impossible de générer deps.json, il a peut-être été déjà généré : {0}</target>
<target state="translated">Impossible de générer deps.json. Il a peut-être été déjà généré. Vous pouvez spécifier l'option "-d" avant le nom de l'outil pour la sortie de diagnostic (par exemple "dotnet -d &lt;nom_outil&gt;" : {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">Arguments MSBuild : {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">Impossible d'utiliser '{0}' en tant qu'exécutable d'hôte d'application, car il ne contient pas la séquence d'octets d'espace réservé attendue '{1}' qui marque l'emplacement où est écrit le nom de l'application.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">Le nom de fichier spécifié '{0}' dépasse 1 024 octets</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">La commande 'dotnet {0}' est introuvable. Exécutez la commande suivante pour effectuer l'installation.
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">non è possibile generare deps.json. Potrebbe essere già stato generato: {0}</target>
<target state="translated">Non è possibile generare deps.json. Potrebbe essere stato già generato. Per ottenere l'output diagnostico, è possibile specificare l'opzione "-d" prima del nome dello strumento, ad esempio "dotnet -d &lt;nome_strumento&gt;": {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">Argomenti di MSBuild: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">Non è possibile usare '{0}' come eseguibile host dell'applicazione perché non contiene la sequenza di byte segnaposto prevista '{1}' che indica dove verrà scritto il nome dell'applicazione.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">Il nome file specificato '{0}' supera 1024 byte</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">Il comando 'dotnet {0}' non è stato trovato. Per installare, eseguire il comando seguente:
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">deps.json を生成できません。既に生成されている可能性があります: {0}</target>
<target state="translated">deps.json を生成できません。すでに生成されている可能性があります。ツール名の前に "-d" オプションを指定して、診断を出力できます (例: "dotnet -d &lt;toolname&gt;"): {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">MSBuild 引数: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">'{0}' は、本来アプリケーション名が書き込まれる場所を示す、必要なプレースホルダー バイト シーケンス '{1}' が含まれていないため、実行可能アプリケーション ホストとして使用できません。</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">指定されたファイル名 '{0}' が 1024 バイトを超えています。</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">コマンド 'dotnet {0}' が見つかりませんでした。次のコマンドを実行してインストールしてください。
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">deps.json을 생성할 수 없습니다. 이미 생성되었을 수 있습니다. {0}</target>
<target state="translated">deps.json을 생성할 수 없습니다. 이미 생성되었을 수 있습니다. 진단 출력의 도구 이름 앞에 "-d" 옵션을 지정할 수 있습니다. 예: "dotnet -d &lt;도구 이름&gt;": {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,26 +246,26 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">MSBuild 인수: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">응용 프로그램 이름이 기록되는 위치를 표시하는 '{1}' 예상 자리 표시자 바이트 시퀀스가 포함되지 않아서 '{0}'을(를) 응용 프로그램 호스트 실행 파일로 사용할 수 없습니다.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">제공한 파일 이름 '{0}'이(가) 1024바이트보다 깁니다.</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">'dotnet {0}' 명령을 찾을 수 없습니다. 다음 명령을 실행하여
dotnet tool install --global {1}</target>
dotnet 도구를 설치하세요. install --global {1}</target>
<note />
</trans-unit>
</body>

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">nie można wygenerować pliku deps.json, być może został już wygenerowany: {0}</target>
<target state="translated">Nie można wygenerować pliku deps.json. Być może został już wygenerowany. Podaj opcję „-d” przed nazwą narzędzia, aby uzyskać diagnostyczne dane wyjściowe (na przykład „dotnet -d &lt;nazwa_narzędzia&gt;”: {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">Argumenty programu MSBuild: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">Nie można użyć elementu „{0}” jako pliku wykonywalnego hosta aplikacji, ponieważ nie zawiera on oczekiwanej sekwencji bajtów symbolu zastępczego „{1}”, która wskazuje lokalizację zapisu nazwy aplikacji.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">Podana nazwa pliku „{0}” jest dłuższa niż 1024 bajty</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">Nie można znaleźć polecenia „dotnet {0}”; uruchom następujące polecenie, aby zainstalować
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">não é possível gerar deps.json; ele pode já ter sido gerado: {0}</target>
<target state="translated">Não é possível gerar o deps.json. Ele já pode ter sido gerado. É possível especificar a opção "-d" antes do nome da ferramenta para a saída de diagnóstico (por exemplo, "dotnet -d &lt;toolname&gt;": {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">Argumentos do MSBuild: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">Não é possível usar '{0}' como executável do host de aplicativo, uma vez que ele não contém a sequência de bytes de espaço reservado esperada '{1}' que marcaria o local em que o nome do aplicativo seria gravado.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">O nome de arquivo '{0}' informado tem mais de 1024 bytes</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">Não é possível encontrar o comando 'dotnet {0}', execute o comando a seguir para instalar
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">не удается создать deps.json, возможно, он уже создан: {0}</target>
<target state="translated">Не удалось создать файл deps.json. Возможно, он уже создан. Вы можете указать параметр "-d" перед именем средства, чтобы получить выходные данные диагностики, например "dotnet -d &lt;имя_средства&gt;": {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">Аргументы MSBuild: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">Невозможно использовать файл "{0}" в качестве исполняемого файла узла приложения, так как он не содержит требуемой последовательности байтов "{1}", которая отмечает место, где должно записываться имя приложения.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">Длина указанного имени файла "{0}" превышает 1024 байта</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">Не удается найти команду "dotnet {0}". Выполните следующую команду для установки:
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">deps.json oluşturulamadı, zaten oluşturulmuş olabilir: {0}</target>
<target state="translated">deps.json oluşturulamıyor, daha önce oluşturulmuş olabilir. Tanılama çıktısı için araç adından önce "-d" seçeneğini belirtebilirsiniz (örneğin, "dotnet -d &lt;araçadı&gt;": {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">MSBuild bağımsız değişkenleri: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">'{0}', uygulama adının yazılacağı yeri işaretlemesi için beklenen yer tutucu bayt dizisini ('{1}') içermediğinden uygulama konak yürütülebiliri olarak kullanılamıyor.</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">Belirtilen dosya adı ('{0})' 1024 bayttan uzun</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">'dotnet {0}' komutu bulunamıyor, yüklemek için lütfen aşağıdaki komutu çalıştırın
dotnet tool install --global {1}</target>
<note />

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">无法生成 deps.json该文件可能已生成: {0}</target>
<target state="translated">无法生成 deps.json它可能已经生成。可在诊断输出的工具名称之前指定 "-d" 选项(例如,"dotnet -d &lt;toolname&gt;": {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,26 +246,26 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">MSBuild 参数: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">未能将“{0}”用作应用程序主机可执行文件,因为它没有必需的占位符字节序列“{1}”,该序列会标记应用程序名称的写入位置。</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">给定文件名“{0}”的长度超过 1024 个字节</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">没有找到命令 "dotnet {0}",请运行以下命令安装
dotnet tool install --global {1}</target>
dotnet 工具安装 -- 全局 {1}</target>
<note />
</trans-unit>
</body>

View file

@ -141,7 +141,7 @@
</trans-unit>
<trans-unit id="UnableToGenerateDepsJson">
<source>Unable to generate deps.json, it may have been already generated. You can specify the "-d" option before the tool name for diagnostic output (for example, "dotnet -d &lt;toolname&gt;": {0}</source>
<target state="needs-review-translation">無法產生 deps.json可能已產生過: {0}</target>
<target state="translated">無法產生 deps.json但先前可能產生過。您可以在診斷輸出的工具名稱前指定 "-d" 選項 (例如 "dotnet -d &lt;工具名稱&gt;": {0}</target>
<note />
</trans-unit>
<trans-unit id="UnableToDeleteTemporaryDepsJson">
@ -246,24 +246,24 @@
</trans-unit>
<trans-unit id="MSBuildArgs">
<source>MSBuild arguments: {0}</source>
<target state="new">MSBuild arguments: {0}</target>
<target state="translated">MSBuild 引數: {0}</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostAppHostHasBeenModified">
<source>Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</source>
<target state="new">Unable to use '{0}' as application host executable as it does not contain the expected placeholder byte sequence '{1}' that would mark where the application name would be written.</target>
<target state="translated">無法使用 '{0}' 作為應用程式主機可執行檔,因為它並未包含應有的預留位置位元組序列 '{1}',其會標示應用程式名稱的寫入位置。</target>
<note />
</trans-unit>
<trans-unit id="EmbedAppNameInHostFileNameIsTooLong">
<source>Given file name '{0}' is longer than 1024 bytes</source>
<target state="new">Given file name '{0}' is longer than 1024 bytes</target>
<target state="translated">指定檔案名稱 '{0}' 的長度超過 1024 個位元組</target>
<note />
</trans-unit>
<trans-unit id="CannotFindCommandAvailableAsTool">
<source>Cannot find command 'dotnet {0}', please run the following command to install
dotnet tool install --global {1}</source>
<target state="new">Cannot find command 'dotnet {0}', please run the following command to install
<target state="translated">找不到命令 'dotnet {0}',請執行下列命令加以安裝
dotnet tool install --global {1}</target>
<note />

View file

@ -90,12 +90,16 @@ namespace Microsoft.DotNet.Configurer
private bool ShouldGenerateAspNetCertificate()
{
#if EXCLUDE_ASPNETCORE
return false;
#else
var generateAspNetCertificate =
_environmentProvider.GetEnvironmentVariableAsBool("DOTNET_GENERATE_ASPNET_CERTIFICATE", true);
return ShouldRunFirstRunExperience() &&
generateAspNetCertificate &&
!_aspNetCertificateSentinel.Exists();
#endif
}
private bool ShouldAddPackageExecutablePath()

View file

@ -151,7 +151,7 @@ Here are some options to fix this error:
<value>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</value>
</data>
</root>

View file

@ -9,6 +9,7 @@
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>git://github.com/dotnet/cli</RepositoryUrl>
<DefineConstants Condition="'$(IncludeAspNetCoreRuntime)' == 'false'">$(DefineConstants);EXCLUDE_ASPNETCORE</DefineConstants>
</PropertyGroup>
<ItemGroup>

View file

@ -62,9 +62,9 @@ Tuto chybu můžete opravit pomocí některé z těchto možností:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
Úspěšně se podařilo nainstalovat certifikát pro vývoj ASP.NET Core HTTPS Development Certificate.
Pokud chcete certifikátu důvěřovat (platí jenom pro Windows a macOS), nainstalujte nejprve nástroj dev-certs. To uděláte tak, že spustíte dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final a potom dotnet-dev-certs https --trust.

View file

@ -62,9 +62,9 @@ Im Folgenden finden Sie einige Optionen, um diesen Fehler zu beheben:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
Das ASP.NET Core-HTTPS-Entwicklungszertifikat wurde erfolgreich installiert.
Um dem Zertifikat zu vertrauen (nur Windows und macOS), installieren Sie zuerst das Tool "dev-certs", indem Sie "dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final" und anschließend "dotnet-dev-certs https --trust" ausführen.

View file

@ -61,9 +61,9 @@ Estas son algunas opciones para corregir este error:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
El certificado de desarrollo HTTPS de ASP.NET Core se ha instalado correctamente.
Para confiar en el certificado (solo Windows y macOS), instale primero la herramienta dev-certs ejecutando "dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final" y, después, ejecute "dotnet-dev-certs https --trust".

View file

@ -62,9 +62,9 @@ Voici quelques options pour corriger cette erreur :
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
Installation réussie du certificat de développement HTTPS ASP.NET Core.
Pour approuver le certificat (Windows et macOS uniquement), installez d'abord l'outil dev-certs en exécutant 'dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final', puis exécutez 'dotnet-dev-certs https --trust'.

View file

@ -62,9 +62,9 @@ Ecco alcune opzioni per correggere questo errore:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
Il certificato di sviluppo HTTPS di ASP.NET Core è stato installato.
Per considerare attendibile il certificato (solo Windows e macOS), installare prima lo strumento dev-certs eseguendo 'dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final' e quindi eseguire 'dotnet-dev-certs https --trust'.

View file

@ -62,9 +62,9 @@ Here are some options to fix this error:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
ASP.NET Core HTTPS 開発証明書が正常にインストールされました。
証明書を信頼する (Windows および macOS のみ) には、まず 'dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final' を実行して dev-certs ツールをインストールし、次に 'dotnet-dev-certs https --trust' を実行します。

View file

@ -62,9 +62,9 @@ Here are some options to fix this error:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
ASP.NET Core HTTPS 개발 인증서를 설치했습니다.
인증서를 신뢰하려면(Windows 및 macOS만 해당) 먼저 'dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final'을 실행하여 dev-certs 도구를 설치한 다음, 'dotnet-dev-certs https --trust'를 실행하세요.

View file

@ -62,9 +62,9 @@ Oto kilka opcji naprawiania tego błędu:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
Pomyślnie zainstalowano certyfikat deweloperski protokołu HTTPS programu ASP.NET Core.
Aby ufać temu certyfikatowi (dotyczy tylko systemów Windows i macOS), najpierw zainstaluj narzędzie dev-certs, uruchamiając polecenie „dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final”, a następnie uruchom polecenie „dotnet-dev-certs https --trust”.

View file

@ -62,9 +62,9 @@ Aqui estão algumas opções para corrigir este erro:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
Certificado de Desenvolvimento HTTPS ASP.NET Core instalado com êxito.
Para confiar no certificado (apenas Windows e macOS), primeiramente instale a ferramenta dev-certs executando 'dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final' e, em seguida, execute 'dotnet-dev-certs https --trust'.

View file

@ -62,9 +62,9 @@ Here are some options to fix this error:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
Сертификат разработки HTTPS для ASP.NET Core установлен.
Чтобы сделать сертификат доверенным (только Windows и macOS), сначала установите инструмент dev-certs, выполнив команду "dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final", а затем выполните "dotnet-dev-certs https --trust".

View file

@ -62,9 +62,9 @@ Bu hatayı düzeltmek için bazı seçenekler:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
ASP.NET Core HTTPS Geliştirme Sertifikası başarıyla yüklendi.
Sertifikaya güvenmek için (yalnızca Windows ve macOS) önce 'dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final', sonra 'dotnet-dev-certs https --trust' komutlarını çalıştırarak dev-certs aracını yükleyin.

View file

@ -62,9 +62,9 @@ Here are some options to fix this error:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
已成功安装 ASP.NET Core HTTPS 开发证书。
要信任证书(仅限 Windows 和 macOS),请首先通过运行 "dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final" 安装 dev-certs 工具,然后运行 "dotnet-dev-certs https --trust"。

View file

@ -62,9 +62,9 @@ Here are some options to fix this error:
<source>ASP.NET Core
------------
Successfully installed the ASP.NET Core HTTPS Development Certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms please refer to the platform specific documentation.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
<target state="translated">ASP.NET Core
<target state="needs-review-translation">ASP.NET Core
------------
已成功安裝 ASP.NET Core HTTPS 開發憑證。
若要信任此憑證 (僅限 Windows 與 macOS),請先執行 'dotnet tool install dotnet-dev-certs -g --version 2.1.0-preview1-final' 來安裝 dev-certs 工具,然後再執行 'dotnet-dev-certs https --trust'。

View file

@ -5,7 +5,7 @@
<TargetFrameworks>netstandard2.0;net46</TargetFrameworks>
<TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">netstandard2.0</TargetFrameworks>
<PlatformTarget>AnyCPU</PlatformTarget>
<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
<RuntimeIdentifiers Condition="'$(OS)' == 'Windows_NT'">win-x86;win-x64</RuntimeIdentifiers>
<WarningsAsErrors>true</WarningsAsErrors>
<AssemblyOriginatorKeyFile>../../tools/Key.snk</AssemblyOriginatorKeyFile>
<SignAssembly>true</SignAssembly>

View file

@ -1,7 +1,6 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using Microsoft.AspNetCore.DeveloperCertificates.XPlat;
using Microsoft.DotNet.Configurer;
namespace Microsoft.DotNet.Cli
@ -10,7 +9,9 @@ namespace Microsoft.DotNet.Cli
{
public void GenerateAspNetCoreDevelopmentCertificate()
{
CertificateGenerator.GenerateAspNetHttpsCertificate();
#if !EXCLUDE_ASPNETCORE
Microsoft.AspNetCore.DeveloperCertificates.XPlat.CertificateGenerator.GenerateAspNetHttpsCertificate();
#endif
}
}
}

View file

@ -0,0 +1,22 @@
// 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;
namespace Microsoft.DotNet.BuildServer
{
internal class BuildServerException : Exception
{
public BuildServerException()
{
}
public BuildServerException(string message) : base(message)
{
}
public BuildServerException(string message, Exception innerException) : base(message, innerException)
{
}
}
}

View file

@ -0,0 +1,107 @@
// 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.IO;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.Configurer;
using Microsoft.Extensions.EnvironmentAbstractions;
namespace Microsoft.DotNet.BuildServer
{
internal class BuildServerProvider : IBuildServerProvider
{
public const string PidFileDirectoryVariableName = "DOTNET_BUILD_PIDFILE_DIRECTORY";
private readonly IFileSystem _fileSystem;
private readonly IEnvironmentProvider _environmentProvider;
private readonly IReporter _reporter;
public BuildServerProvider(
IFileSystem fileSystem = null,
IEnvironmentProvider environmentProvider = null,
IReporter reporter = null)
{
_fileSystem = fileSystem ?? FileSystemWrapper.Default;
_environmentProvider = environmentProvider ?? new EnvironmentProvider();
_reporter = reporter ?? Reporter.Error;
}
public IEnumerable<IBuildServer> EnumerateBuildServers(ServerEnumerationFlags flags = ServerEnumerationFlags.All)
{
if ((flags & ServerEnumerationFlags.MSBuild) == ServerEnumerationFlags.MSBuild)
{
// Yield a single MSBuild server (handles server discovery itself)
// TODO: use pid file enumeration when supported by the server (https://github.com/dotnet/cli/issues/9113)
yield return new MSBuildServer();
}
if ((flags & ServerEnumerationFlags.VBCSCompiler) == ServerEnumerationFlags.VBCSCompiler)
{
// Yield a single VB/C# compiler (handles server discovery itself)
// TODO: use pid file enumeration when supported by the server (https://github.com/dotnet/cli/issues/9112)
yield return new VBCSCompilerServer();
}
// TODO: remove or amend this check when the following issues are resolved:
// https://github.com/dotnet/cli/issues/9112
// https://github.com/dotnet/cli/issues/9113
if ((flags & ServerEnumerationFlags.Razor) != ServerEnumerationFlags.Razor)
{
yield break;
}
var directory = GetPidFileDirectory();
if (!_fileSystem.Directory.Exists(directory.Value))
{
yield break;
}
foreach (var path in _fileSystem.Directory.EnumerateFiles(directory.Value, "*"))
{
if ((flags & ServerEnumerationFlags.Razor) == ServerEnumerationFlags.Razor &&
Path.GetFileName(path).StartsWith(RazorPidFile.FilePrefix))
{
var file = ReadRazorPidFile(new FilePath(path));
if (file != null)
{
yield return new RazorServer(file);
}
}
}
}
public DirectoryPath GetPidFileDirectory()
{
var directory = _environmentProvider.GetEnvironmentVariable(PidFileDirectoryVariableName);
if (!string.IsNullOrEmpty(directory))
{
return new DirectoryPath(directory);
}
return new DirectoryPath(
Path.Combine(
CliFolderPathCalculator.DotnetUserProfileFolderPath,
"pids",
"build"));
}
private RazorPidFile ReadRazorPidFile(FilePath path)
{
try
{
return RazorPidFile.Read(path, _fileSystem);
}
catch (Exception ex) when (ex is IOException || ex is UnauthorizedAccessException)
{
_reporter.WriteLine(
string.Format(
LocalizableStrings.FailedToReadPidFile,
path.Value,
ex.Message).Yellow());
return null;
}
}
}
}

View file

@ -6,10 +6,12 @@ using System.Threading.Tasks;
namespace Microsoft.DotNet.BuildServer
{
internal interface IBuildServerManager
internal interface IBuildServer
{
string ServerName { get; }
int ProcessId { get; }
Task<Result> ShutdownServerAsync();
string Name { get; }
void Shutdown();
}
}

View file

@ -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;
namespace Microsoft.DotNet.BuildServer
{
[Flags]
internal enum ServerEnumerationFlags
{
None = 0,
MSBuild = 1,
VBCSCompiler = 2,
Razor = 4,
All = MSBuild | VBCSCompiler | Razor
}
internal interface IBuildServerProvider
{
IEnumerable<IBuildServer> EnumerateBuildServers(ServerEnumerationFlags flags = ServerEnumerationFlags.All);
}
}

View file

@ -1,14 +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 System.Collections.Generic;
using Microsoft.Extensions.EnvironmentAbstractions;
namespace Microsoft.DotNet.BuildServer
{
internal interface IRazorAssemblyResolver
{
IEnumerable<FilePath> EnumerateRazorToolAssemblies();
}
}

View file

@ -126,7 +126,10 @@
<data name="RazorServer" xml:space="preserve">
<value>Razor build server</value>
</data>
<data name="NoRazorProjectFound" xml:space="preserve">
<value>a Razor project was not found in the current directory.</value>
<data name="ShutdownCommandFailed" xml:space="preserve">
<value>The shutdown command failed: {0}</value>
</data>
<data name="FailedToReadPidFile" xml:space="preserve">
<value>Failed to read pid file '{0}': {1}</value>
</data>
</root>

View file

@ -0,0 +1,21 @@
// 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.Threading.Tasks;
using Microsoft.Build.Execution;
namespace Microsoft.DotNet.BuildServer
{
internal class MSBuildServer : IBuildServer
{
public int ProcessId => 0; // Not yet used
public string Name => LocalizableStrings.MSBuildServer;
public void Shutdown()
{
BuildManager.DefaultBuildManager.ShutdownAllNodes();
}
}
}

View file

@ -1,29 +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 System.Threading.Tasks;
using Microsoft.Build.Execution;
namespace Microsoft.DotNet.BuildServer
{
internal class MSBuildServerManager : IBuildServerManager
{
public string ServerName => LocalizableStrings.MSBuildServer;
public Task<Result> ShutdownServerAsync()
{
return Task.Run(() => {
try
{
BuildManager.DefaultBuildManager.ShutdownAllNodes();
return new Result(ResultKind.Success);
}
catch (Exception ex)
{
return new Result(ex);
}
});
}
}
}

View file

@ -1,52 +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 System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.Build.Execution;
using Microsoft.Extensions.EnvironmentAbstractions;
namespace Microsoft.DotNet.BuildServer
{
internal class RazorAssemblyResolver : IRazorAssemblyResolver
{
private readonly IDirectory _directory;
public RazorAssemblyResolver(IDirectory directory = null)
{
_directory = directory ?? FileSystemWrapper.Default.Directory;
}
public IEnumerable<FilePath> EnumerateRazorToolAssemblies()
{
HashSet<string> seen = new HashSet<string>();
var globalProperties = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
// This property disables default item globbing to improve performance
// This should be safe because we are not evaluating items, only properties
{ Constants.EnableDefaultItems, "false" }
};
foreach (var projectFile in _directory.EnumerateFiles(Directory.GetCurrentDirectory(), "*.*proj"))
{
var project = new ProjectInstance(projectFile, globalProperties, null);
var path = project.GetPropertyValue("_RazorToolAssembly");
if (string.IsNullOrEmpty(path))
{
continue;
}
if (!seen.Add(path))
{
continue;
}
yield return new FilePath(path);
}
}
}
}

View file

@ -0,0 +1,71 @@
// 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.IO;
using System.Text;
using Microsoft.Extensions.EnvironmentAbstractions;
namespace Microsoft.DotNet.BuildServer
{
internal class RazorPidFile
{
public const string RazorServerType = "rzc";
public const string FilePrefix = "rzc-";
public RazorPidFile(FilePath path, int processId, FilePath serverPath, string pipeName)
{
Path = path;
ProcessId = processId;
ServerPath = serverPath;
PipeName = pipeName ?? throw new ArgumentNullException(pipeName);
}
public FilePath Path { get; }
public int ProcessId;
public FilePath ServerPath { get; }
public string PipeName { get; }
public static RazorPidFile Read(FilePath path, IFileSystem fileSystem = null)
{
fileSystem = fileSystem ?? FileSystemWrapper.Default;
using (var stream = fileSystem.File.OpenFile(
path.Value,
FileMode.Open,
FileAccess.Read,
FileShare.Write | FileShare.Delete,
4096,
FileOptions.None))
using (var reader = new StreamReader(stream, Encoding.UTF8))
{
if (!int.TryParse(reader.ReadLine(), out var processId))
{
return null;
}
if (reader.ReadLine() != RazorServerType)
{
return null;
}
var serverPath = reader.ReadLine();
if (string.IsNullOrEmpty(serverPath))
{
return null;
}
var pipeName = reader.ReadLine();
if (string.IsNullOrEmpty(pipeName))
{
return null;
}
return new RazorPidFile(path, processId, new FilePath(serverPath), pipeName);
}
}
}
}

View file

@ -0,0 +1,77 @@
// 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.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using Microsoft.DotNet.Cli;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.Tools;
using Microsoft.Extensions.EnvironmentAbstractions;
namespace Microsoft.DotNet.BuildServer
{
internal class RazorServer : IBuildServer
{
private readonly ICommandFactory _commandFactory;
private readonly IFileSystem _fileSystem;
public RazorServer(
RazorPidFile pidFile,
ICommandFactory commandFactory = null,
IFileSystem fileSystem = null)
{
PidFile = pidFile ?? throw new ArgumentNullException(nameof(pidFile));
_commandFactory = commandFactory ?? new DotNetCommandFactory(alwaysRunOutOfProc: true);
_fileSystem = fileSystem ?? FileSystemWrapper.Default;
}
public int ProcessId => PidFile.ProcessId;
public string Name => LocalizableStrings.RazorServer;
public RazorPidFile PidFile { get; }
public void Shutdown()
{
var command = _commandFactory
.Create(
"exec",
new string[] {
PidFile.ServerPath.Value,
"shutdown",
"-w", // Wait for exit
"-p", // Pipe name
PidFile.PipeName
})
.CaptureStdOut()
.CaptureStdErr();
var result = command.Execute();
if (result.ExitCode != 0)
{
throw new BuildServerException(
string.Format(
LocalizableStrings.ShutdownCommandFailed,
result.StdErr));
}
// After a successful shutdown, ensure the pid file is deleted
// If the pid file was left behind due to a rude exit, this ensures we don't try to shut it down again
try
{
if (_fileSystem.File.Exists(PidFile.Path.Value))
{
_fileSystem.File.Delete(PidFile.Path.Value);
}
}
catch (UnauthorizedAccessException)
{
}
catch (IOException)
{
}
}
}
}

View file

@ -1,65 +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 System.IO;
using System.Threading.Tasks;
using Microsoft.Build.Exceptions;
using Microsoft.DotNet.Cli;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.Tools;
using Microsoft.Extensions.EnvironmentAbstractions;
namespace Microsoft.DotNet.BuildServer
{
internal class RazorServerManager : IBuildServerManager
{
private readonly IRazorAssemblyResolver _resolver;
private readonly ICommandFactory _commandFactory;
public RazorServerManager(IRazorAssemblyResolver resolver = null, ICommandFactory commandFactory = null)
{
_resolver = resolver ?? new RazorAssemblyResolver();
_commandFactory = commandFactory ?? new DotNetCommandFactory(alwaysRunOutOfProc: true);
}
public string ServerName => LocalizableStrings.RazorServer;
public Task<Result> ShutdownServerAsync()
{
return Task.Run(() => {
try
{
bool haveRazorAssembly = false;
foreach (var toolAssembly in _resolver.EnumerateRazorToolAssemblies())
{
haveRazorAssembly = true;
var command = _commandFactory
.Create("exec", new string[] { toolAssembly.Value, "shutdown" })
.CaptureStdOut()
.CaptureStdErr();
var result = command.Execute();
if (result.ExitCode != 0)
{
return new Result(ResultKind.Failure, result.StdErr);
}
}
if (!haveRazorAssembly)
{
return new Result(ResultKind.Skipped, LocalizableStrings.NoRazorProjectFound);
}
return new Result(ResultKind.Success);
}
catch (InvalidProjectFileException ex)
{
return new Result(ex);
}
});
}
}
}

View file

@ -1,37 +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;
namespace Microsoft.DotNet.BuildServer
{
internal enum ResultKind
{
Success,
Failure,
Skipped
}
internal struct Result
{
public Result(ResultKind kind, string message = null)
{
Kind = kind;
Message = message;
Exception = null;
}
public Result(Exception exception)
{
Kind = ResultKind.Failure;
Message = exception.Message;
Exception = exception;
}
public ResultKind Kind { get; private set; }
public string Message { get; private set; }
public Exception Exception { get; private set; }
}
}

View file

@ -10,7 +10,7 @@ using Microsoft.DotNet.Cli.Utils;
namespace Microsoft.DotNet.BuildServer
{
internal class VBCSCompilerServerManager : IBuildServerManager
internal class VBCSCompilerServer : IBuildServer
{
internal static readonly string VBCSCompilerPath = Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
@ -20,29 +20,30 @@ namespace Microsoft.DotNet.BuildServer
private readonly ICommandFactory _commandFactory;
public VBCSCompilerServerManager(ICommandFactory commandFactory = null)
public VBCSCompilerServer(ICommandFactory commandFactory = null)
{
_commandFactory = commandFactory ?? new DotNetCommandFactory(alwaysRunOutOfProc: true);
}
public string ServerName => LocalizableStrings.VBCSCompilerServer;
public int ProcessId => 0; // Not yet used
public Task<Result> ShutdownServerAsync()
public string Name => LocalizableStrings.VBCSCompilerServer;
public void Shutdown()
{
return Task.Run(() => {
var command = _commandFactory
.Create("exec", new[] { VBCSCompilerPath, "-shutdown" })
.CaptureStdOut()
.CaptureStdErr();
var command = _commandFactory
.Create("exec", new[] { VBCSCompilerPath, "-shutdown" })
.CaptureStdOut()
.CaptureStdErr();
var result = command.Execute();
if (result.ExitCode != 0)
{
return new Result(ResultKind.Failure, result.StdErr);
}
return new Result(ResultKind.Success);
});
var result = command.Execute();
if (result.ExitCode != 0)
{
throw new BuildServerException(
string.Format(
LocalizableStrings.ShutdownCommandFailed,
result.StdErr));
}
}
}
}

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">Server MSBuild</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">Server kompilátoru VB/C#</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Buildovací server Razor</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">Příkaz pro vypnutí selhal: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">MSBuild-Server</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">VB/C#-Compilerserver</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Razor-Buildserver</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">Fehler beim Befehl zum Herunterfahren: {0} </target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">Servidor de MSBuild</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">Servidor del compilador de VB o C#</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Servidor de compilación de Razor</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">Error del comando de apagado: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">Serveur MSBuild</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">Serveur de compilation VB/C#</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Serveur de builds Razor</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">Échec de la commande d'arrêt : {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">Server di MSBuild</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">Server del compilatore VB/C#</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Server di compilazione di Razor</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">Il comando di arresto non è riuscito: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">MSBuild サーバー</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">VB/C# コンパイラ サーバー</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Razor ビルド サーバー</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">シャットダウン コマンドが失敗しました: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">MSBuild 서버</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">VB/C# 컴파일러 서버</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Razor 빌드 서버</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">종료 명령에 실패했습니다. {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">Serwer MSBuild</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">Serwer kompilatora VB/C#</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Serwer kompilacji Razor</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">Polecenie zamknięcia nie powiodło się: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">Servidor MSBuild</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">Servidor do compilador VB/C#</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Servidor de build Razor</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">O comando de desligamento falhou: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">Сервер MSBuild</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">Сервер компилятора VB или C#</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Сервер сборки Razor</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">Команда завершения работы не выполнена: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">MSBuild sunucusu</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">VB/C# derleyici sunucusu</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Razor derleme sunucusu</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">Kapatma komutu başarısız oldu: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">MSBuild 服务器</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">VB/C# 编译器服务器</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Razor 生成服务器</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">shutdown 命令失败: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -4,22 +4,27 @@
<body>
<trans-unit id="MSBuildServer">
<source>MSBuild server</source>
<target state="new">MSBuild server</target>
<target state="translated">MSBuild 伺服器</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerServer">
<source>VB/C# compiler server</source>
<target state="new">VB/C# compiler server</target>
<target state="translated">VB/C# 編譯器伺服器</target>
<note />
</trans-unit>
<trans-unit id="RazorServer">
<source>Razor build server</source>
<target state="new">Razor build server</target>
<target state="translated">Razor 組建伺服器</target>
<note />
</trans-unit>
<trans-unit id="NoRazorProjectFound">
<source>a Razor project was not found in the current directory.</source>
<target state="new">a Razor project was not found in the current directory.</target>
<trans-unit id="ShutdownCommandFailed">
<source>The shutdown command failed: {0}</source>
<target state="translated">關機命令失敗: {0}</target>
<note />
</trans-unit>
<trans-unit id="FailedToReadPidFile">
<source>Failed to read pid file '{0}': {1}</source>
<target state="new">Failed to read pid file '{0}': {1}</target>
<note />
</trans-unit>
</body>

View file

@ -167,7 +167,17 @@ namespace Microsoft.DotNet.ToolPackage
var feeds = new List<string>();
if (additionalFeeds != null)
{
feeds.AddRange(additionalFeeds);
foreach (var feed in additionalFeeds)
{
if (Uri.IsWellFormedUriString(feed, UriKind.Absolute))
{
feeds.Add(feed);
}
else
{
feeds.Add(Path.GetFullPath(feed));
}
}
}
// use fallbackfolder as feed to enable offline

View file

@ -14,6 +14,8 @@ namespace Microsoft.DotNet.Tools.BuildServer.Shutdown
{
internal class BuildServerShutdownCommand : CommandBase
{
private readonly ServerEnumerationFlags _enumerationFlags;
private readonly IBuildServerProvider _serverProvider;
private readonly bool _useOrderedWait;
private readonly IReporter _reporter;
private readonly IReporter _errorReporter;
@ -21,57 +23,63 @@ namespace Microsoft.DotNet.Tools.BuildServer.Shutdown
public BuildServerShutdownCommand(
AppliedOption options,
ParseResult result,
IEnumerable<IBuildServerManager> managers = null,
IBuildServerProvider serverProvider = null,
bool useOrderedWait = false,
IReporter reporter = null)
: base(result)
{
if (managers == null)
bool msbuild = options.ValueOrDefault<bool>("msbuild");
bool vbcscompiler = options.ValueOrDefault<bool>("vbcscompiler");
bool razor = options.ValueOrDefault<bool>("razor");
bool all = !msbuild && !vbcscompiler && !razor;
_enumerationFlags = ServerEnumerationFlags.None;
if (msbuild || all)
{
bool msbuild = options.ValueOrDefault<bool>("msbuild");
bool vbcscompiler = options.ValueOrDefault<bool>("vbcscompiler");
bool razor = options.ValueOrDefault<bool>("razor");
bool all = !msbuild && !vbcscompiler && !razor;
var enabledManagers = new List<IBuildServerManager>();
if (msbuild || all)
{
enabledManagers.Add(new MSBuildServerManager());
}
if (vbcscompiler || all)
{
enabledManagers.Add(new VBCSCompilerServerManager());
}
if (razor || all)
{
enabledManagers.Add(new RazorServerManager());
}
managers = enabledManagers;
_enumerationFlags |= ServerEnumerationFlags.MSBuild;
}
Managers = managers;
if (vbcscompiler || all)
{
_enumerationFlags |= ServerEnumerationFlags.VBCSCompiler;
}
if (razor || all)
{
_enumerationFlags |= ServerEnumerationFlags.Razor;
}
_serverProvider = serverProvider ?? new BuildServerProvider();
_useOrderedWait = useOrderedWait;
_reporter = reporter ?? Reporter.Output;
_errorReporter = reporter ?? Reporter.Error;
}
public IEnumerable<IBuildServerManager> Managers { get; }
public override int Execute()
{
bool success = true;
var tasks = StartShutdown();
if (tasks.Count == 0)
{
_reporter.WriteLine(LocalizableStrings.NoServersToShutdown.Green());
return 0;
}
bool success = true;
while (tasks.Count > 0)
{
var index = WaitForResult(tasks.Select(t => t.Item2).ToArray());
var (manager, task) = tasks[index];
var (server, task) = tasks[index];
success &= HandleResult(manager, task.Result);
if (task.IsFaulted)
{
success = false;
WriteFailureMessage(server, task.Exception);
}
else
{
WriteSuccessMessage(server);
}
tasks.RemoveAt(index);
}
@ -79,14 +87,15 @@ namespace Microsoft.DotNet.Tools.BuildServer.Shutdown
return success ? 0 : 1;
}
private List<(IBuildServerManager, Task<Result>)> StartShutdown()
private List<(IBuildServer, Task)> StartShutdown()
{
var tasks = new List<(IBuildServerManager, Task<Result>)>();
foreach (var manager in Managers)
var tasks = new List<(IBuildServer, Task)>();
foreach (var server in _serverProvider.EnumerateBuildServers(_enumerationFlags))
{
_reporter.WriteLine(string.Format(LocalizableStrings.ShuttingDownServer, manager.ServerName));
tasks.Add((manager, manager.ShutdownServerAsync()));
WriteShutdownMessage(server);
tasks.Add((server, Task.Run(() => server.Shutdown())));
}
return tasks;
}
@ -94,50 +103,72 @@ namespace Microsoft.DotNet.Tools.BuildServer.Shutdown
{
if (_useOrderedWait)
{
tasks[0].Wait();
return 0;
return Task.WaitAny(tasks.First());
}
return Task.WaitAny(tasks);
}
private bool HandleResult(IBuildServerManager manager, Result result)
private void WriteShutdownMessage(IBuildServer server)
{
switch (result.Kind)
if (server.ProcessId != 0)
{
case ResultKind.Success:
_reporter.WriteLine(
string.Format(
LocalizableStrings.ShutDownSucceeded,
manager.ServerName).Green());
return true;
_reporter.WriteLine(
string.Format(
LocalizableStrings.ShuttingDownServerWithPid,
server.Name,
server.ProcessId));
}
else
{
_reporter.WriteLine(
string.Format(
LocalizableStrings.ShuttingDownServer,
server.Name));
}
}
case ResultKind.Skipped:
_reporter.WriteLine(
string.Format(
LocalizableStrings.ShutDownSkipped,
manager.ServerName,
result.Message).Cyan());
return true;
private void WriteFailureMessage(IBuildServer server, AggregateException exception)
{
if (server.ProcessId != 0)
{
_reporter.WriteLine(
string.Format(
LocalizableStrings.ShutDownFailedWithPid,
server.Name,
server.ProcessId,
exception.InnerException.Message).Red());
}
else
{
_reporter.WriteLine(
string.Format(
LocalizableStrings.ShutDownFailed,
server.Name,
exception.InnerException.Message).Red());
}
case ResultKind.Failure:
_errorReporter.WriteLine(
string.Format(
LocalizableStrings.ShutDownFailed,
manager.ServerName,
result.Message).Red());
if (Reporter.IsVerbose)
{
Reporter.Verbose.WriteLine(exception.ToString().Red());
}
}
if (Reporter.IsVerbose && result.Exception != null)
{
Reporter.Verbose.WriteLine(result.Exception.ToString().Red());
}
return false;
default:
throw new NotSupportedException(
string.Format(
LocalizableStrings.UnsupportedEnumValue,
result.Kind.ToString(),
nameof(ResultKind)));
private void WriteSuccessMessage(IBuildServer server)
{
if (server.ProcessId != 0)
{
_reporter.WriteLine(
string.Format(
LocalizableStrings.ShutDownSucceededWithPid,
server.Name,
server.ProcessId).Green());
}
else
{
_reporter.WriteLine(
string.Format(
LocalizableStrings.ShutDownSucceeded,
server.Name).Green());
}
}
}

View file

@ -132,16 +132,22 @@
<data name="ShuttingDownServer" xml:space="preserve">
<value>Shutting down {0}...</value>
</data>
<data name="ShuttingDownServerWithPid" xml:space="preserve">
<value>Shutting down {0} (process {1})...</value>
</data>
<data name="ShutDownSucceeded" xml:space="preserve">
<value>{0} shut down successfully.</value>
</data>
<data name="ShutDownSucceededWithPid" xml:space="preserve">
<value>{0} (process {1}) shut down successfully.</value>
</data>
<data name="ShutDownFailed" xml:space="preserve">
<value>{0} failed to shut down: {1}</value>
</data>
<data name="ShutDownSkipped" xml:space="preserve">
<value>{0} shut down was skipped: {1}</value>
<data name="ShutDownFailedWithPid" xml:space="preserve">
<value>{0} (process {1}) failed to shut down: {2}</value>
</data>
<data name="UnsupportedEnumValue" xml:space="preserve">
<value>The value '{0}' for enum type '{1}' is not supported.</value>
<data name="NoServersToShutdown" xml:space="preserve">
<value>No build servers are running.</value>
</data>
</root>

View file

@ -4,47 +4,57 @@
<body>
<trans-unit id="CommandDescription">
<source>Shuts down build servers that are started from dotnet. By default, all servers are shut down.</source>
<target state="new">Shuts down build servers that are started from dotnet. By default, all servers are shut down.</target>
<target state="translated">Vypne buildovací servery spuštěné z dotnetu. Ve výchozím nastavení jsou vypnuté všechny servery.</target>
<note />
</trans-unit>
<trans-unit id="MSBuildOptionDescription">
<source>Shuts down the MSBuild build server.</source>
<target state="new">Shuts down the MSBuild build server.</target>
<target state="translated">Vypne buildovací server MSBuild.</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerOptionDescription">
<source>Shuts down the VB/C# compiler build server.</source>
<target state="new">Shuts down the VB/C# compiler build server.</target>
<target state="translated">Vypne buildovací server kompilátoru VB/C#.</target>
<note />
</trans-unit>
<trans-unit id="RazorOptionDescription">
<source>Shuts down the Razor build server.</source>
<target state="new">Shuts down the Razor build server.</target>
<target state="translated">Vypne buildovací server Razor.</target>
<note />
</trans-unit>
<trans-unit id="ShuttingDownServer">
<source>Shutting down {0}...</source>
<target state="new">Shutting down {0}...</target>
<target state="translated">Vypíná se {0}...</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSucceeded">
<source>{0} shut down successfully.</source>
<target state="new">{0} shut down successfully.</target>
<target state="translated">Vypnutí serveru {0} proběhlo úspěšně.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailed">
<source>{0} failed to shut down: {1}</source>
<target state="new">{0} failed to shut down: {1}</target>
<target state="translated">Nepovedlo se vypnout server {0}: {1}</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSkipped">
<source>{0} shut down was skipped: {1}</source>
<target state="new">{0} shut down was skipped: {1}</target>
<trans-unit id="ShuttingDownServerWithPid">
<source>Shutting down {0} (process {1})...</source>
<target state="translated">Vypíná se {0} (proces {1})...</target>
<note />
</trans-unit>
<trans-unit id="UnsupportedEnumValue">
<source>The value '{0}' for enum type '{1}' is not supported.</source>
<target state="new">The value '{0}' for enum type '{1}' is not supported.</target>
<trans-unit id="ShutDownSucceededWithPid">
<source>{0} (process {1}) shut down successfully.</source>
<target state="translated">{0} (proces {1}) se úspěšně vypnul.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailedWithPid">
<source>{0} (process {1}) failed to shut down: {2}</source>
<target state="translated">Nepovedlo se vypnout {0} (proces {1}): {2}</target>
<note />
</trans-unit>
<trans-unit id="NoServersToShutdown">
<source>No build servers are running.</source>
<target state="translated">Nejsou spuštěné žádné buildovací servery.</target>
<note />
</trans-unit>
</body>

View file

@ -4,47 +4,57 @@
<body>
<trans-unit id="CommandDescription">
<source>Shuts down build servers that are started from dotnet. By default, all servers are shut down.</source>
<target state="new">Shuts down build servers that are started from dotnet. By default, all servers are shut down.</target>
<target state="translated">Fährt Buildserver herunter, die aus .NET gestartet werden. Standardmäßig werden alle Server heruntergefahren.</target>
<note />
</trans-unit>
<trans-unit id="MSBuildOptionDescription">
<source>Shuts down the MSBuild build server.</source>
<target state="new">Shuts down the MSBuild build server.</target>
<target state="translated">Fährt den MSBuild-Buildserver herunter.</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerOptionDescription">
<source>Shuts down the VB/C# compiler build server.</source>
<target state="new">Shuts down the VB/C# compiler build server.</target>
<target state="translated">Fährt den VB/C#-Compilerserver herunter.</target>
<note />
</trans-unit>
<trans-unit id="RazorOptionDescription">
<source>Shuts down the Razor build server.</source>
<target state="new">Shuts down the Razor build server.</target>
<target state="translated">Fährt den Razor-Buildserver herunter.</target>
<note />
</trans-unit>
<trans-unit id="ShuttingDownServer">
<source>Shutting down {0}...</source>
<target state="new">Shutting down {0}...</target>
<target state="translated">"{0}" wird heruntergefahren...</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSucceeded">
<source>{0} shut down successfully.</source>
<target state="new">{0} shut down successfully.</target>
<target state="translated">"{0}" wurde erfolgreich heruntergefahren.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailed">
<source>{0} failed to shut down: {1}</source>
<target state="new">{0} failed to shut down: {1}</target>
<target state="translated">Fehler beim Herunterfahren von "{0}": {1}</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSkipped">
<source>{0} shut down was skipped: {1}</source>
<target state="new">{0} shut down was skipped: {1}</target>
<trans-unit id="ShuttingDownServerWithPid">
<source>Shutting down {0} (process {1})...</source>
<target state="translated">"{0}" (Prozess "{1}") wird heruntergefahren...</target>
<note />
</trans-unit>
<trans-unit id="UnsupportedEnumValue">
<source>The value '{0}' for enum type '{1}' is not supported.</source>
<target state="new">The value '{0}' for enum type '{1}' is not supported.</target>
<trans-unit id="ShutDownSucceededWithPid">
<source>{0} (process {1}) shut down successfully.</source>
<target state="translated">"{0}" (Prozess "{1}") wurde erfolgreich heruntergefahren.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailedWithPid">
<source>{0} (process {1}) failed to shut down: {2}</source>
<target state="translated">Fehler beim Herunterfahren von "{0}" (Prozess "{1}"): {2}</target>
<note />
</trans-unit>
<trans-unit id="NoServersToShutdown">
<source>No build servers are running.</source>
<target state="translated">Es werden zurzeit keine Buildserver ausgeführt.</target>
<note />
</trans-unit>
</body>

View file

@ -4,47 +4,57 @@
<body>
<trans-unit id="CommandDescription">
<source>Shuts down build servers that are started from dotnet. By default, all servers are shut down.</source>
<target state="new">Shuts down build servers that are started from dotnet. By default, all servers are shut down.</target>
<target state="translated">Apaga los servidores de compilación que se inician desde dotnet. De forma predeterminada, se apagan todos los servidores.</target>
<note />
</trans-unit>
<trans-unit id="MSBuildOptionDescription">
<source>Shuts down the MSBuild build server.</source>
<target state="new">Shuts down the MSBuild build server.</target>
<target state="translated">Apaga el servidor de compilación de MSBuild.</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerOptionDescription">
<source>Shuts down the VB/C# compiler build server.</source>
<target state="new">Shuts down the VB/C# compiler build server.</target>
<target state="translated">Apaga el servidor de compilación del compilador de VB o C#.</target>
<note />
</trans-unit>
<trans-unit id="RazorOptionDescription">
<source>Shuts down the Razor build server.</source>
<target state="new">Shuts down the Razor build server.</target>
<target state="translated">Apaga el servidor de compilación de Razor.</target>
<note />
</trans-unit>
<trans-unit id="ShuttingDownServer">
<source>Shutting down {0}...</source>
<target state="new">Shutting down {0}...</target>
<target state="translated">Apagando {0}...</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSucceeded">
<source>{0} shut down successfully.</source>
<target state="new">{0} shut down successfully.</target>
<target state="translated">{0} se apagó correctamente.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailed">
<source>{0} failed to shut down: {1}</source>
<target state="new">{0} failed to shut down: {1}</target>
<target state="translated">No se pudo apagar {0}: {1}</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSkipped">
<source>{0} shut down was skipped: {1}</source>
<target state="new">{0} shut down was skipped: {1}</target>
<trans-unit id="ShuttingDownServerWithPid">
<source>Shutting down {0} (process {1})...</source>
<target state="translated">Apagando {0} (proceso {1})...</target>
<note />
</trans-unit>
<trans-unit id="UnsupportedEnumValue">
<source>The value '{0}' for enum type '{1}' is not supported.</source>
<target state="new">The value '{0}' for enum type '{1}' is not supported.</target>
<trans-unit id="ShutDownSucceededWithPid">
<source>{0} (process {1}) shut down successfully.</source>
<target state="translated">{0} (proceso {1}) se apagó correctamente.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailedWithPid">
<source>{0} (process {1}) failed to shut down: {2}</source>
<target state="translated">No se pudo apagar {0} (proceso {1}): {2}</target>
<note />
</trans-unit>
<trans-unit id="NoServersToShutdown">
<source>No build servers are running.</source>
<target state="translated">No se está ejecutando ningún servidor de compilación.</target>
<note />
</trans-unit>
</body>

View file

@ -4,47 +4,57 @@
<body>
<trans-unit id="CommandDescription">
<source>Shuts down build servers that are started from dotnet. By default, all servers are shut down.</source>
<target state="new">Shuts down build servers that are started from dotnet. By default, all servers are shut down.</target>
<target state="translated">Arrête les serveurs de builds démarrés à partir de dotnet. Par défaut, tous les serveurs sont arrêtés.</target>
<note />
</trans-unit>
<trans-unit id="MSBuildOptionDescription">
<source>Shuts down the MSBuild build server.</source>
<target state="new">Shuts down the MSBuild build server.</target>
<target state="translated">Arrête le serveur de builds MSBuild.</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerOptionDescription">
<source>Shuts down the VB/C# compiler build server.</source>
<target state="new">Shuts down the VB/C# compiler build server.</target>
<target state="translated">Arrête le serveur de builds du compilateur VB/C#.</target>
<note />
</trans-unit>
<trans-unit id="RazorOptionDescription">
<source>Shuts down the Razor build server.</source>
<target state="new">Shuts down the Razor build server.</target>
<target state="translated">Arrête le serveur de builds Razor.</target>
<note />
</trans-unit>
<trans-unit id="ShuttingDownServer">
<source>Shutting down {0}...</source>
<target state="new">Shutting down {0}...</target>
<target state="translated">Arrêt de {0}...</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSucceeded">
<source>{0} shut down successfully.</source>
<target state="new">{0} shut down successfully.</target>
<target state="translated">{0} s'est arrêté correctement.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailed">
<source>{0} failed to shut down: {1}</source>
<target state="new">{0} failed to shut down: {1}</target>
<target state="translated">Échec de l'arrêt de {0} : {1}</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSkipped">
<source>{0} shut down was skipped: {1}</source>
<target state="new">{0} shut down was skipped: {1}</target>
<trans-unit id="ShuttingDownServerWithPid">
<source>Shutting down {0} (process {1})...</source>
<target state="translated">Arrêt de {0} (processus {1})...</target>
<note />
</trans-unit>
<trans-unit id="UnsupportedEnumValue">
<source>The value '{0}' for enum type '{1}' is not supported.</source>
<target state="new">The value '{0}' for enum type '{1}' is not supported.</target>
<trans-unit id="ShutDownSucceededWithPid">
<source>{0} (process {1}) shut down successfully.</source>
<target state="translated">{0} (processus {1}) s'est arrêté correctement.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailedWithPid">
<source>{0} (process {1}) failed to shut down: {2}</source>
<target state="translated">Échec de l'arrêt de {0} (processus {1}) : {2}</target>
<note />
</trans-unit>
<trans-unit id="NoServersToShutdown">
<source>No build servers are running.</source>
<target state="translated">Aucun serveur de builds n'est en cours d'exécution.</target>
<note />
</trans-unit>
</body>

View file

@ -4,47 +4,57 @@
<body>
<trans-unit id="CommandDescription">
<source>Shuts down build servers that are started from dotnet. By default, all servers are shut down.</source>
<target state="new">Shuts down build servers that are started from dotnet. By default, all servers are shut down.</target>
<target state="translated">Arresta i server di compilazione avviati da dotnet. Per impostazione predefinita, vengono arrestati tutti i server.</target>
<note />
</trans-unit>
<trans-unit id="MSBuildOptionDescription">
<source>Shuts down the MSBuild build server.</source>
<target state="new">Shuts down the MSBuild build server.</target>
<target state="translated">Arresta il server di compilazione di MSBuild.</target>
<note />
</trans-unit>
<trans-unit id="VBCSCompilerOptionDescription">
<source>Shuts down the VB/C# compiler build server.</source>
<target state="new">Shuts down the VB/C# compiler build server.</target>
<target state="translated">Arresta il server di compilazione del compilatore VB/C#.</target>
<note />
</trans-unit>
<trans-unit id="RazorOptionDescription">
<source>Shuts down the Razor build server.</source>
<target state="new">Shuts down the Razor build server.</target>
<target state="translated">Arresta il server di compilazione di Razor.</target>
<note />
</trans-unit>
<trans-unit id="ShuttingDownServer">
<source>Shutting down {0}...</source>
<target state="new">Shutting down {0}...</target>
<target state="translated">Arresto di {0}...</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSucceeded">
<source>{0} shut down successfully.</source>
<target state="new">{0} shut down successfully.</target>
<target state="translated">{0} è stato arrestato.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailed">
<source>{0} failed to shut down: {1}</source>
<target state="new">{0} failed to shut down: {1}</target>
<target state="translated">Non è stato possibile arrestare {0}: {1}</target>
<note />
</trans-unit>
<trans-unit id="ShutDownSkipped">
<source>{0} shut down was skipped: {1}</source>
<target state="new">{0} shut down was skipped: {1}</target>
<trans-unit id="ShuttingDownServerWithPid">
<source>Shutting down {0} (process {1})...</source>
<target state="translated">Arresto di {0} (processo {1})...</target>
<note />
</trans-unit>
<trans-unit id="UnsupportedEnumValue">
<source>The value '{0}' for enum type '{1}' is not supported.</source>
<target state="new">The value '{0}' for enum type '{1}' is not supported.</target>
<trans-unit id="ShutDownSucceededWithPid">
<source>{0} (process {1}) shut down successfully.</source>
<target state="translated">{0} (processo {1}) è stato arrestato.</target>
<note />
</trans-unit>
<trans-unit id="ShutDownFailedWithPid">
<source>{0} (process {1}) failed to shut down: {2}</source>
<target state="translated">Non è stato possibile arrestare {0} (processo {1}): {2}</target>
<note />
</trans-unit>
<trans-unit id="NoServersToShutdown">
<source>No build servers are running.</source>
<target state="translated">Non ci sono server di compilazione in esecuzione.</target>
<note />
</trans-unit>
</body>

Some files were not shown because too many files have changed in this diff Show more