Merge pull request #7845 from dotnet/merges/release/15.5-to-master-20171016-070031

Merge release/15.5 to master
This commit is contained in:
Livar 2017-10-17 16:24:48 -07:00 committed by GitHub
commit 2258ab811c
37 changed files with 277 additions and 291 deletions

View file

@ -142,8 +142,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.TestFramew
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "redist", "src\redist\redist.csproj", "{098D9321-1201-4974-A75E-F58EBCD98ACF}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "redist", "src\redist\redist.csproj", "{098D9321-1201-4974-A75E-F58EBCD98ACF}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_roslyn", "src\tool_roslyn\tool_roslyn.csproj", "{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_msbuild", "src\tool_msbuild\tool_msbuild.csproj", "{D82A3246-9831-4024-A9B2-1932EEF3D56F}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_msbuild", "src\tool_msbuild\tool_msbuild.csproj", "{D82A3246-9831-4024-A9B2-1932EEF3D56F}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_nuget", "src\tool_nuget\tool_nuget.csproj", "{BE4C655A-DC54-4408-B739-743456D34111}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_nuget", "src\tool_nuget\tool_nuget.csproj", "{BE4C655A-DC54-4408-B739-743456D34111}"
@ -678,30 +676,6 @@ Global
{098D9321-1201-4974-A75E-F58EBCD98ACF}.RelWithDebInfo|x64.Build.0 = Release|Any CPU {098D9321-1201-4974-A75E-F58EBCD98ACF}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{098D9321-1201-4974-A75E-F58EBCD98ACF}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU {098D9321-1201-4974-A75E-F58EBCD98ACF}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{098D9321-1201-4974-A75E-F58EBCD98ACF}.RelWithDebInfo|x86.Build.0 = Release|Any CPU {098D9321-1201-4974-A75E-F58EBCD98ACF}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Debug|x64.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Debug|x64.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Debug|x86.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Debug|x86.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.MinSizeRel|Any CPU.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.MinSizeRel|Any CPU.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.MinSizeRel|x64.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.MinSizeRel|x64.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.MinSizeRel|x86.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.MinSizeRel|x86.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Release|Any CPU.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Release|x64.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Release|x64.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Release|x86.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.Release|x86.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
{D82A3246-9831-4024-A9B2-1932EEF3D56F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D82A3246-9831-4024-A9B2-1932EEF3D56F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D82A3246-9831-4024-A9B2-1932EEF3D56F}.Debug|Any CPU.Build.0 = Debug|Any CPU {D82A3246-9831-4024-A9B2-1932EEF3D56F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D82A3246-9831-4024-A9B2-1932EEF3D56F}.Debug|x64.ActiveCfg = Release|Any CPU {D82A3246-9831-4024-A9B2-1932EEF3D56F}.Debug|x64.ActiveCfg = Release|Any CPU
@ -1645,7 +1619,6 @@ Global
{570950AD-A080-4F32-980C-F50E312910DF} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {570950AD-A080-4F32-980C-F50E312910DF} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{6592A22C-2386-4E83-A4D3-FC08075C723A} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {6592A22C-2386-4E83-A4D3-FC08075C723A} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{098D9321-1201-4974-A75E-F58EBCD98ACF} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {098D9321-1201-4974-A75E-F58EBCD98ACF} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{D82A3246-9831-4024-A9B2-1932EEF3D56F} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {D82A3246-9831-4024-A9B2-1932EEF3D56F} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{BE4C655A-DC54-4408-B739-743456D34111} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {BE4C655A-DC54-4408-B739-743456D34111} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
{3E28672F-F4E4-44D5-AEFB-1F425DECC57E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7} {3E28672F-F4E4-44D5-AEFB-1F425DECC57E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="NuGet" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>

View file

@ -68,7 +68,6 @@ To download the .NET Core runtime **without** the SDK, visit https://github.com/
| **RHEL 7.2** | [Installer][rhel-7-installer] - [Checksum][rhel-7-installer-checksum]<br>_see installer note below_<sup>1</sup><br>tar.gz - See **Linux x64** | | **RHEL 7.2** | [Installer][rhel-7-installer] - [Checksum][rhel-7-installer-checksum]<br>_see installer note below_<sup>1</sup><br>tar.gz - See **Linux x64** |
| **RHEL 6** | [tar.gz][rhel-6-targz] - [Checksum][rhel-6-targz-checksum] | | **RHEL 6** | [tar.gz][rhel-6-targz] - [Checksum][rhel-6-targz-checksum] |
| Latest Coherent Build<sup>2</sup><br>*master* | | Latest Coherent Build<sup>2</sup><br>*master* |
|:------:| |:------:|
| [![][coherent-version-badge]][coherent-version] | | [![][coherent-version-badge]][coherent-version] |

View file

@ -29,9 +29,6 @@
<Error Condition=" '$(MSBuildExtensionsPath)' == '' " <Error Condition=" '$(MSBuildExtensionsPath)' == '' "
Text="Expected MSBuildExtensionsPath to be set, but it is not." /> Text="Expected MSBuildExtensionsPath to be set, but it is not." />
<Error Condition=" '$(CscToolExe)' == '' "
Text="Expected CscToolExe to be set, but it is not." />
<Error Condition=" '$(MSBuildSDKsPath)' == '' " <Error Condition=" '$(MSBuildSDKsPath)' == '' "
Text="Expected MSBuildSDKsPath to be set, but it is not." /> Text="Expected MSBuildSDKsPath to be set, but it is not." />

View file

@ -5,6 +5,11 @@
<BundledTemplate Include="Microsoft.DotNet.Common.ProjectTemplates.2.1" Version="$(TemplateEngineTemplate2_0Version)" /> <BundledTemplate Include="Microsoft.DotNet.Common.ProjectTemplates.2.1" Version="$(TemplateEngineTemplate2_0Version)" />
<BundledTemplate Include="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="$(TemplateEngineTemplateVersion)" /> <BundledTemplate Include="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="$(TemplateEngineTemplateVersion)" />
<BundledTemplate Include="Microsoft.DotNet.Web.ProjectTemplates.2.1" Version="$(TemplateEngineTemplateVersion)" /> <BundledTemplate Include="Microsoft.DotNet.Web.ProjectTemplates.2.1" Version="$(TemplateEngineTemplateVersion)" />
<BundledTemplate Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Version="$(SpaTemplateVersion)" /> <BundledTemplate Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Version="$(SpaTemplateVersion)" />
<BundledTemplate Include="Microsoft.DotNet.Web.Client.ItemTemplates" Version="$(AspnetTemplateVersion)" />
<BundledTemplate Include="Microsoft.DotNet.Web.ItemTemplates" Version="$(AspnetTemplateVersion)" />
<BundledTemplate Include="Microsoft.DotNet.Web.ProjectTemplates.2.0" Version="$(AspnetTemplateVersion)" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -2,12 +2,13 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<CLI_SharedFrameworkVersion>2.1.0-preview1-25817-01</CLI_SharedFrameworkVersion> <CLI_SharedFrameworkVersion>2.1.0-preview1-25817-01</CLI_SharedFrameworkVersion>
<CLI_MSBuild_Version>15.5.0-preview-000090-0999971</CLI_MSBuild_Version> <CLI_MSBuild_Version>15.5.0-preview-000154-1054573</CLI_MSBuild_Version>
<CLI_Roslyn_Version>2.3.2-beta1-61921-05</CLI_Roslyn_Version> <CLI_Roslyn_Version>2.6.0-beta1-62126-01</CLI_Roslyn_Version>
<CLI_Roslyn_Satellites_Version>2.3.0-pre-20170727-1</CLI_Roslyn_Satellites_Version>
<CLI_DiaSymNative_Version>1.6.0-beta2-25304</CLI_DiaSymNative_Version> <CLI_DiaSymNative_Version>1.6.0-beta2-25304</CLI_DiaSymNative_Version>
<CLI_FSharp_Version>4.2.0-rc-170630-0</CLI_FSharp_Version> <CLI_FSharp_Version>4.2.0-rtm-170926-0</CLI_FSharp_Version>
<CLI_FSharp_Satellites_Version>4.4.1-pre-20170727-1</CLI_FSharp_Satellites_Version> <CLI_Deps_Satellites_Build>pre-20171012-1</CLI_Deps_Satellites_Build>
<CLI_Roslyn_Satellites_Version>2.6.0-$(CLI_Deps_Satellites_Build)</CLI_Roslyn_Satellites_Version>
<CLI_FSharp_Satellites_Version>4.4.1-$(CLI_Deps_Satellites_Build)</CLI_FSharp_Satellites_Version>
<!-- We'll usually want to keep these versions in sync, but we may want to diverge in some <!-- We'll usually want to keep these versions in sync, but we may want to diverge in some
cases, so use separate properties but derive one from the other unless we want to cases, so use separate properties but derive one from the other unless we want to
@ -15,16 +16,17 @@
<CLI_NETSDK_Version>2.1.0-preview1-20171006-4</CLI_NETSDK_Version> <CLI_NETSDK_Version>2.1.0-preview1-20171006-4</CLI_NETSDK_Version>
<CLI_MSBuildExtensions_Version>$(CLI_NETSDK_Version)</CLI_MSBuildExtensions_Version> <CLI_MSBuildExtensions_Version>$(CLI_NETSDK_Version)</CLI_MSBuildExtensions_Version>
<CLI_NuGet_Version>4.4.0-preview3-4475</CLI_NuGet_Version> <CLI_NuGet_Version>4.5.0-preview2-4529</CLI_NuGet_Version>
<CLI_NETStandardLibraryNETFrameworkVersion>2.0.0-preview3-25514-04</CLI_NETStandardLibraryNETFrameworkVersion> <CLI_NETStandardLibraryNETFrameworkVersion>2.0.0-preview3-25514-04</CLI_NETStandardLibraryNETFrameworkVersion>
<CLI_WEBSDK_Version>2.0.0-rel-20170908-653</CLI_WEBSDK_Version> <CLI_WEBSDK_Version>2.0.0-rel-20171010-665</CLI_WEBSDK_Version>
<CLI_TestPlatform_Version>15.5.0-preview-20170923-02</CLI_TestPlatform_Version> <CLI_TestPlatform_Version>15.5.0-preview-20171009-10</CLI_TestPlatform_Version>
<SharedFrameworkVersion>$(CLI_SharedFrameworkVersion)</SharedFrameworkVersion> <SharedFrameworkVersion>$(CLI_SharedFrameworkVersion)</SharedFrameworkVersion>
<SharedHostVersion>$(CLI_SharedFrameworkVersion)</SharedHostVersion> <SharedHostVersion>$(CLI_SharedFrameworkVersion)</SharedHostVersion>
<HostFxrVersion>$(CLI_SharedFrameworkVersion)</HostFxrVersion> <HostFxrVersion>$(CLI_SharedFrameworkVersion)</HostFxrVersion>
<TemplateEngineVersion>1.0.0-beta2-20170828-305</TemplateEngineVersion> <TemplateEngineVersion>1.0.0-beta2-20171004-309</TemplateEngineVersion>
<TemplateEngineTemplateVersion>1.0.0-beta2-20170828-305</TemplateEngineTemplateVersion> <TemplateEngineTemplateVersion>1.0.0-beta2-20171004-309</TemplateEngineTemplateVersion>
<TemplateEngineTemplate2_0Version>1.0.0-beta2-20170828-305</TemplateEngineTemplate2_0Version> <TemplateEngineTemplate2_0Version>1.0.0-beta2-20171004-309</TemplateEngineTemplate2_0Version>
<AspnetTemplateVersion>1.0.0-beta2-20171004-309</AspnetTemplateVersion>
<PlatformAbstractionsVersion>2.1.0-preview1-25817-01</PlatformAbstractionsVersion> <PlatformAbstractionsVersion>2.1.0-preview1-25817-01</PlatformAbstractionsVersion>
<DependencyModelVersion>2.1.0-preview1-25817-01</DependencyModelVersion> <DependencyModelVersion>2.1.0-preview1-25817-01</DependencyModelVersion>
<CliCommandLineParserVersion>0.1.1-alpha-167</CliCommandLineParserVersion> <CliCommandLineParserVersion>0.1.1-alpha-167</CliCommandLineParserVersion>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="14.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="AddMetadataIsPE" AssemblyFile="$(CLIBuildDll)" /> <UsingTask TaskName="AddMetadataIsPE" AssemblyFile="$(CLIBuildDll)" />
<UsingTask TaskName="AddToDeps" AssemblyFile="$(CLIBuildDll)" />
<UsingTask TaskName="ChangeEntryPointLibraryName" AssemblyFile="$(CLIBuildDll)" /> <UsingTask TaskName="ChangeEntryPointLibraryName" AssemblyFile="$(CLIBuildDll)" />
<UsingTask TaskName="CheckIfAllBuildsHavePublished" AssemblyFile="$(CLIBuildDll)" /> <UsingTask TaskName="CheckIfAllBuildsHavePublished" AssemblyFile="$(CLIBuildDll)" />
<UsingTask TaskName="ChMod" AssemblyFile="$(CLIBuildDll)" /> <UsingTask TaskName="ChMod" AssemblyFile="$(CLIBuildDll)" />

View file

@ -7,8 +7,6 @@
<PropertyGroup> <PropertyGroup>
<MSBuildExtensionsPathInToolPath>false</MSBuildExtensionsPathInToolPath> <MSBuildExtensionsPathInToolPath>false</MSBuildExtensionsPathInToolPath>
<MSBuildExtensionsPathInToolPath Condition="$(MSBuildExtensionsPath.StartsWith('$(NormalizedToolPath)'))">true</MSBuildExtensionsPathInToolPath> <MSBuildExtensionsPathInToolPath Condition="$(MSBuildExtensionsPath.StartsWith('$(NormalizedToolPath)'))">true</MSBuildExtensionsPathInToolPath>
<CscToolExeInToolPath>false</CscToolExeInToolPath>
<CscToolExeInToolPath Condition="$(CscToolExe.StartsWith('$(NormalizedToolPath)'))">true</CscToolExeInToolPath>
<MSBuildSDKsPathInToolPath>false</MSBuildSDKsPathInToolPath> <MSBuildSDKsPathInToolPath>false</MSBuildSDKsPathInToolPath>
<MSBuildSDKsPathInToolPath Condition="$(MSBuildSDKsPath.StartsWith('$(NormalizedToolPath)'))">true</MSBuildSDKsPathInToolPath> <MSBuildSDKsPathInToolPath Condition="$(MSBuildSDKsPath.StartsWith('$(NormalizedToolPath)'))">true</MSBuildSDKsPathInToolPath>
</PropertyGroup> </PropertyGroup>

View file

@ -0,0 +1,67 @@
// 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.IO;
using System.Linq;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using Microsoft.Extensions.DependencyModel;
namespace Microsoft.DotNet.Cli.Build
{
/// <summary>
/// Merges additional .deps.json files into target .deps.json files.
/// </summary>
public class AddToDeps : Task
{
/// <summary>
/// Paths to target .deps.json files, into which <see cref="AdditionalDeps" /> will be merged.
/// These files will be overwritten with the merge result.
/// </summary>
[Required]
public string[] TargetDeps { get; set; }
/// <summary>
/// Paths to additional .deps.json files to merge into <see cref="TargetDeps" />.
/// </summary>
[Required]
public string[] AdditionalDeps { get; set; }
public override bool Execute()
{
DependencyContext additionalContext = Read(AdditionalDeps.First());
foreach (string additionalPath in AdditionalDeps.Skip(1))
{
additionalContext = additionalContext.Merge(Read(additionalPath));
}
foreach (string targetPath in TargetDeps)
{
DependencyContext targetContext = Read(targetPath).Merge(additionalContext);
Write(targetContext, targetPath);
}
return true;
}
private static DependencyContext Read(string path)
{
using (FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read))
using (var reader = new DependencyContextJsonReader())
{
return reader.Read(stream);
}
}
private static void Write(DependencyContext context, string path)
{
using (FileStream stream = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.Read))
{
var writer = new DependencyContextWriter(); // unlike reader, writer is not disposable
writer.Write(context, stream);
}
}
}
}

View file

@ -29,5 +29,6 @@
<PackageReference Include="Microsoft.Build.Framework" Version="$(CLI_MSBuild_Version)" /> <PackageReference Include="Microsoft.Build.Framework" Version="$(CLI_MSBuild_Version)" />
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="2.0.0" /> <PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="2.0.0" />
<PackageReference Include="Microsoft.DotNet.VersionTools" Version="$(VersionToolsVersion)" /> <PackageReference Include="Microsoft.DotNet.VersionTools" Version="$(VersionToolsVersion)" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -58,7 +58,7 @@ say_verbose() {
# This platform list is finite - if the SDK/Runtime has supported Linux distribution-specific assets, # This platform list is finite - if the SDK/Runtime has supported Linux distribution-specific assets,
# then and only then should the Linux distribution appear in this list. # then and only then should the Linux distribution appear in this list.
# Adding a Linux distribution to this list does not imply distribution-specific support. # Adding a Linux distribution to this list does not imply distribution-specific support.
get_os_download_name_from_platform() { get_legacy_os_name_from_platform() {
eval $invocation eval $invocation
platform="$1" platform="$1"
@ -87,10 +87,6 @@ get_os_download_name_from_platform() {
echo "opensuse.42.1" echo "opensuse.42.1"
return 0 return 0
;; ;;
"rhel.6"*)
echo "rhel.6"
return 0
;;
"rhel.7"*) "rhel.7"*)
echo "rhel" echo "rhel"
return 0 return 0
@ -115,6 +111,30 @@ get_os_download_name_from_platform() {
return 1 return 1
} }
get_linux_platform_name() {
eval $invocation
if [ -n "$runtime_id" ]; then
echo "${runtime_id%-*}"
return 0
else
if [ -e /etc/os-release ]; then
. /etc/os-release
echo "$ID.$VERSION_ID"
return 0
elif [ -e /etc/redhat-release ]; then
local redhatRelease=$(</etc/redhat-release)
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux Server release 6."* ]]; then
echo "rhel.6"
return 0
fi
fi
fi
say_verbose "Linux specific platform name and version could not be detected: $ID.$VERSION_ID"
return 1
}
get_current_os_name() { get_current_os_name() {
eval $invocation eval $invocation
@ -123,11 +143,11 @@ get_current_os_name() {
echo "osx" echo "osx"
return 0 return 0
elif [ "$uname" = "Linux" ]; then elif [ "$uname" = "Linux" ]; then
local distro_specific_osname local linux_platform_name
distro_specific_osname=$(get_distro_specific_os_name) || return 1 linux_platform_name="$(get_linux_platform_name)" || { echo "linux" && return 0 ; }
if [ "$distro_specific_osname" = "rhel.6" ]; then if [[ $linux_platform_name == "rhel.6"* ]]; then
echo $distro_specific_osname echo "rhel.6"
return 0 return 0
else else
echo "linux" echo "linux"
@ -139,7 +159,7 @@ get_current_os_name() {
return 1 return 1
} }
get_distro_specific_os_name() { get_legacy_os_name() {
eval $invocation eval $invocation
local uname=$(uname) local uname=$(uname)
@ -147,22 +167,16 @@ get_distro_specific_os_name() {
echo "osx" echo "osx"
return 0 return 0
elif [ -n "$runtime_id" ]; then elif [ -n "$runtime_id" ]; then
echo $(get_os_download_name_from_platform "${runtime_id%-*}" || echo "${runtime_id%-*}") echo $(get_legacy_os_name_from_platform "${runtime_id%-*}" || echo "${runtime_id%-*}")
return 0 return 0
else else
if [ -e /etc/os-release ]; then if [ -e /etc/os-release ]; then
. /etc/os-release . /etc/os-release
os=$(get_os_download_name_from_platform "$ID.$VERSION_ID" || echo "") os=$(get_legacy_os_name_from_platform "$ID.$VERSION_ID" || echo "")
if [ -n "$os" ]; then if [ -n "$os" ]; then
echo "$os" echo "$os"
return 0 return 0
fi fi
elif [ -e /etc/redhat-release ]; then
local redhatRelease=$(</etc/redhat-release)
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux Server release 6."* ]]; then
echo "rhel.6"
return 0
fi
fi fi
fi fi
@ -203,7 +217,7 @@ check_pre_reqs() {
fi fi
if [ "$(uname)" = "Linux" ]; then if [ "$(uname)" = "Linux" ]; then
if ! [ -x "$(command -v ldconfig)" ]; then if [ ! -x "$(command -v ldconfig)" ]; then
echo "ldconfig is not in PATH, trying /sbin/ldconfig." echo "ldconfig is not in PATH, trying /sbin/ldconfig."
LDCONFIG_COMMAND="/sbin/ldconfig" LDCONFIG_COMMAND="/sbin/ldconfig"
else else
@ -457,7 +471,7 @@ construct_legacy_download_link() {
local specific_version="${4//[$'\t\r\n']}" local specific_version="${4//[$'\t\r\n']}"
local distro_specific_osname local distro_specific_osname
distro_specific_osname="$(get_distro_specific_os_name)" || return 1 distro_specific_osname="$(get_legacy_os_name)" || return 1
local legacy_download_link=null local legacy_download_link=null
if [ "$shared_runtime" = true ]; then if [ "$shared_runtime" = true ]; then

View file

@ -23,9 +23,8 @@ namespace Microsoft.DotNet.Cli.Utils
new Dictionary<string, string> new Dictionary<string, string>
{ {
{ "MSBuildExtensionsPath", AppContext.BaseDirectory }, { "MSBuildExtensionsPath", AppContext.BaseDirectory },
{ "CscToolExe", GetRunCscPath() }, { "MSBuildSDKsPath", GetMSBuildSDKsPath() },
{ "VbcToolExe", GetRunVbcPath() }, { "DOTNET_HOST_PATH", GetDotnetPath() },
{ "MSBuildSDKsPath", GetMSBuildSDKsPath() }
}; };
private readonly IEnumerable<string> _msbuildRequiredParameters = private readonly IEnumerable<string> _msbuildRequiredParameters =
@ -78,20 +77,9 @@ namespace Microsoft.DotNet.Cli.Utils
SdksDirectoryName); SdksDirectoryName);
} }
private static string GetRunVbcPath() private static string GetDotnetPath()
{ {
return GetRunToolPath("Vbc"); return new Muxer().MuxerPath;
}
private static string GetRunCscPath()
{
return GetRunToolPath("Csc");
}
private static string GetRunToolPath(string compilerName)
{
var scriptExtension = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ".cmd" : ".sh";
return Path.Combine(AppContext.BaseDirectory, "Roslyn", $"Run{compilerName}{scriptExtension}");
} }
} }
} }

View file

@ -177,7 +177,7 @@ The current {1} is '{2}'.</value>
<value>Using launch settings from {0}...</value> <value>Using launch settings from {0}...</value>
</data> </data>
<data name="LaunchProfileIsNotAJsonObject" xml:space="preserve"> <data name="LaunchProfileIsNotAJsonObject" xml:space="preserve">
<value>Launch profile is not a JSON object.</value> <value>A profile with the specified name could not be found or is not a valid JSON object.</value>
</data> </data>
<data name="LaunchProfileHandlerCannotBeLocated" xml:space="preserve"> <data name="LaunchProfileHandlerCannotBeLocated" xml:space="preserve">
<value>The launch profile type '{0}' is not supported.</value> <value>The launch profile type '{0}' is not supported.</value>

View file

@ -103,8 +103,8 @@ Aktuální {1} je {2}.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">Profil spuštění není objektem JSON.</target> <target state="needs-review-translation">Profil spuštění není objektem JSON.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ Ein ausführbares Projekt sollte ein ausführbares TFM (z.B. netcoreapp2.0) verw
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">Das Startprofil ist kein JSON-Objekt.</target> <target state="needs-review-translation">Das Startprofil ist kein JSON-Objekt.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ El actual {1} es "{2}".</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">El perfil de inicio no es un objeto JSON.</target> <target state="needs-review-translation">El perfil de inicio no es un objeto JSON.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ Le {1} actuel est '{2}'.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">Le profil de lancement n'est pas un objet JSON.</target> <target state="needs-review-translation">Le profil de lancement n'est pas un objet JSON.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ Il valore corrente di {1} è '{2}'.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">Il profilo di avvio non è un oggetto JSON.</target> <target state="needs-review-translation">Il profilo di avvio non è un oggetto JSON.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ The current {1} is '{2}'.</source>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">起動プロファイルが JSON オブジェクトではありません。</target> <target state="needs-review-translation">起動プロファイルが JSON オブジェクトではありません。</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ The current {1} is '{2}'.</source>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">시작 프로필이 JSON 개체가 아닙니다.</target> <target state="needs-review-translation">시작 프로필이 JSON 개체가 아닙니다.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ Bieżący element {1}: „{2}”.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">Profil uruchamiania nie jest obiektem JSON.</target> <target state="needs-review-translation">Profil uruchamiania nie jest obiektem JSON.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ O {1} atual é '{2}'.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">O perfil de inicialização não é um objeto JSON.</target> <target state="needs-review-translation">O perfil de inicialização não é um objeto JSON.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ The current {1} is '{2}'.</source>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">Профиль запуска не является объектом JSON.</target> <target state="needs-review-translation">Профиль запуска не является объектом JSON.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ Geçerli {1}: '{2}'.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">Başlatma profili bir JSON nesnesi değil.</target> <target state="needs-review-translation">Başlatma profili bir JSON nesnesi değil.</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ The current {1} is '{2}'.</source>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">启动配置文件不是 JSON 对象。</target> <target state="needs-review-translation">启动配置文件不是 JSON 对象。</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -103,8 +103,8 @@ The current {1} is '{2}'.</source>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileIsNotAJsonObject"> <trans-unit id="LaunchProfileIsNotAJsonObject">
<source>Launch profile is not a JSON object.</source> <source>A profile with the specified name could not be found or is not a valid JSON object.</source>
<target state="translated">啟動設定檔並非 JSON 物件。</target> <target state="needs-review-translation">啟動設定檔並非 JSON 物件。</target>
<note /> <note />
</trans-unit> </trans-unit>
<trans-unit id="LaunchProfileHandlerCannotBeLocated"> <trans-unit id="LaunchProfileHandlerCannotBeLocated">

View file

@ -16,15 +16,13 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NETCore.App" Version="$(CLI_SharedFrameworkVersion)" /> <PackageReference Include="Microsoft.NETCore.App" Version="$(CLI_SharedFrameworkVersion)" />
<PackageReference Include="Microsoft.Build.Runtime" Version="$(CLI_MSBuild_Version)" />
<PackageReference Include="NuGet.Build.Tasks" Version="$(CLI_NuGet_Version)" /> <PackageReference Include="NuGet.Build.Tasks" Version="$(CLI_NuGet_Version)" />
<PackageReference Include="Microsoft.TestPlatform.CLI" Version="$(CLI_TestPlatform_Version)" /> <PackageReference Include="Microsoft.TestPlatform.CLI" Version="$(CLI_TestPlatform_Version)" />
<PackageReference Include="Microsoft.TestPlatform.Build" Version="$(CLI_TestPlatform_Version)" /> <PackageReference Include="Microsoft.TestPlatform.Build" Version="$(CLI_TestPlatform_Version)" />
<PackageReference Include="NuGet.ProjectModel" Version="$(CLI_NuGet_Version)" /> <PackageReference Include="NuGet.ProjectModel" Version="$(CLI_NuGet_Version)" />
<!-- The project json migration commands depend on an older version of Roslyn. <PackageReference Include="Microsoft.NETCore.Compilers" Version="$(CLI_Roslyn_Version)">
Lift the version here to match what tool_roslyn depends on (otherwise an older version will <ExcludeAssets>All</ExcludeAssets>
be added to the TPA when we crossgen and we won't be able to crossgen tool_roslyn --> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(CLI_Roslyn_Version)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -72,9 +70,33 @@
<Target Name="PublishRoslyn" <Target Name="PublishRoslyn"
BeforeTargets="Publish"> BeforeTargets="Publish">
<DotNetPublish ToolPath="$(PreviousStageDirectory)" <ItemGroup>
Configuration="$(Configuration)" <RoslynBits Include="$(NuGetPackagesDir)/microsoft.netcore.compilers/$(CLI_Roslyn_Version)/tools/**/*" />
ProjectPath="$(SrcDirectory)/tool_roslyn/tool_roslyn.csproj" /> </ItemGroup>
<Copy SourceFiles="@(RoslynBits)" DestinationFiles="@(RoslynBits->'$(RoslynDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
<Copy SourceFiles="@(RoslynSatelliteBits)" DestinationFiles="@(RoslynSatelliteBits->'$(RoslynDirectory)/bincore/%(RecursiveDir)%(Filename)%(Extension)')" />
<ItemGroup>
<RoslynRuntimeConfigs Include="$(RoslynDirectory)/bincore/csc.runtimeconfig.json" />
<RoslynRuntimeConfigs Include="$(RoslynDirectory)/bincore/vbc.runtimeconfig.json" />
<RoslynDeps Include="$(RoslynDirectory)/bincore/csc.deps.json" />
<RoslynDeps Include="$(RoslynDirectory)/bincore/vbc.deps.json" />
<RoslynSatelliteDeps Include="$(RoslynDirectory)/bincore/tool_roslyn_satellites.deps.json" />
</ItemGroup>
<PropertyGroup>
<ReplacementPattern>"version": ".*"</ReplacementPattern>
<ReplacementString>"version": "$(CLI_SharedFrameworkVersion)"</ReplacementString>
</PropertyGroup>
<ReplaceFileContents
InputFile="%(RoslynRuntimeConfigs.Identity)"
DestinationFile="%(RoslynRuntimeConfigs.Identity)"
ReplacementPatterns="$(ReplacementPattern)"
ReplacementStrings="$(ReplacementString)" />
<DotNetPublish
ToolPath="$(PreviousStageDirectory)"
Configuration="$(Configuration)"
ProjectPath="$(SrcDirectory)/tool_roslyn_satellites/tool_roslyn_satellites.csproj" />
<AddToDeps TargetDeps="@(RoslynDeps)" AdditionalDeps="@(RoslynSatelliteDeps)" />
<Delete Files="@(RoslynSatelliteDeps)" />
</Target> </Target>
<Target Name="PublishFSharp" <Target Name="PublishFSharp"
@ -198,42 +220,73 @@
Condition=" '$(DISABLE_CROSSGEN)' == '' " Condition=" '$(DISABLE_CROSSGEN)' == '' "
AfterTargets="PublishMSBuildExtensions"> AfterTargets="PublishMSBuildExtensions">
<ItemGroup> <ItemGroup>
<RoslynFiles Include="$(PublishDir)Roslyn\bincore\**\*" />
<FSharpFiles Include="$(PublishDir)FSharp\**\*" Exclude="$(PublishDir)FSharp\FSharp.Build.dll" />
<RemainingFiles Include="$(PublishDir)**\*" Exclude="@(RoslynFiles);@(FSharpFiles)" />
<!-- Removing Full CLR built TestHost assemblies from getting Crossgen as it is throwing error --> <!-- Removing Full CLR built TestHost assemblies from getting Crossgen as it is throwing error -->
<SdkFiles Include="$(PublishDir)/**/*" <RemainingFiles Remove="$(PublishDir)TestHost*\**\*" />
Exclude="$(PublishDir)/TestHost*/**/*;$(PublishDir)/Sdks/**/*;$(PublishDir)/**/Microsoft.TestPlatform.Extensions.EventLogCollector.dll" /> <RemainingFiles Remove="$(PublishDir)Sdks\**\*" />
<RemainingFiles Remove="$(PublishDir)**\Microsoft.TestPlatform.Extensions.EventLogCollector.dll" />
<!-- Don't try to CrossGen .NET Framework support assemblies for .NET Standard --> <!-- Don't try to CrossGen .NET Framework support assemblies for .NET Standard -->
<SdkFiles Remove="$(PublishDir)/Microsoft\Microsoft.NET.Build.Extensions\net*\**\*" /> <RemainingFiles Remove="$(PublishDir)Microsoft\Microsoft.NET.Build.Extensions\net*\**\*" />
<!-- Don't try to CrossGen tasks and supporting DLLs compiled for .NET Framework --> <!-- Don't try to CrossGen tasks and supporting DLLs compiled for .NET Framework -->
<SdkFiles Remove="$(PublishDir)/Microsoft\Microsoft.NET.Build.Extensions\tools\net*\**\*" /> <RemainingFiles Remove="$(PublishDir)Microsoft\Microsoft.NET.Build.Extensions\tools\net*\**\*" />
</ItemGroup> </ItemGroup>
<AddMetadataIsPE Items="@(SdkFiles)"> <AddMetadataIsPE Items="@(RoslynFiles)">
<Output TaskParameter="ResultItems" ItemName="SdkFilesWithPEMarker" /> <Output TaskParameter="ResultItems" ItemName="RoslynFilesWithPEMarker" />
</AddMetadataIsPE>
<AddMetadataIsPE Items="@(FSharpFiles)">
<Output TaskParameter="ResultItems" ItemName="FSharpFilesWithPEMarker" />
</AddMetadataIsPE>
<AddMetadataIsPE Items="@(RemainingFiles)">
<Output TaskParameter="ResultItems" ItemName="RemainingFilesWithPEMarker" />
</AddMetadataIsPE> </AddMetadataIsPE>
<ItemGroup> <ItemGroup>
<CrossgenTargets Include="%(SdkFilesWithPEMarker.FullPath)" Condition=" '%(SdkFilesWithPEMarker.IsPE)' == 'True' " /> <RoslynTargets Include="%(RoslynFilesWithPEMarker.FullPath)" Condition=" '%(RoslynFilesWithPEMarker.IsPE)' == 'True' " />
<FSharpTargets Include="%(FSharpFilesWithPEMarker.FullPath)" Condition=" '%(FSharpFilesWithPEMarker.IsPE)' == 'True' " />
<RemainingTargets Include="%(RemainingFilesWithPEMarker.FullPath)" Condition=" '%(RemainingFilesWithPEMarker.IsPE)' == 'True' " />
<RoslynFolders Include="@(RoslynTargets-&gt;DirectoryName()-&gt;Distinct())" />
<FSharpFolders Include="@(FSharpTargets-&gt;DirectoryName()-&gt;Distinct())" />
<RemainingFolders Include="@(RemainingTargets-&gt;DirectoryName()-&gt;Distinct())" />
<!-- FSharp.Build.dll causes the FSharp folder to be included. Remove it, as we don't want other FSharp dlls being included in the crossgen. -->
<RemainingFolders Remove="$(PublishDir)FSharp\**\*" />
</ItemGroup> </ItemGroup>
<RemoveDuplicates Inputs="@(SdkFiles->'%(RootDir)%(Directory)')">
<Output TaskParameter="Filtered" ItemName="PublishDirSubDirectories" />
</RemoveDuplicates>
<!-- Ensure crossgen tool is executable. See https://github.com/NuGet/Home/issues/4424 --> <!-- Ensure crossgen tool is executable. See https://github.com/NuGet/Home/issues/4424 -->
<Chmod Condition=" '$(OSName)' != 'win' " <Chmod Condition=" '$(OSName)' != 'win' "
Glob="$(CrossgenPath)" Glob="$(CrossgenPath)"
Mode="u+x" /> Mode="u+x" />
<Crossgen SourceAssembly="%(CrossgenTargets.FullPath)" <Crossgen
DestinationPath="%(CrossgenTargets.FullPath)" SourceAssembly="%(RoslynTargets.FullPath)"
JITPath="$(LibCLRJitPath)" DestinationPath="%(RoslynTargets.FullPath)"
CrossgenPath="$(CrossgenPath)" JITPath="$(LibCLRJitPath)"
ReadyToRun="True" CrossgenPath="$(CrossgenPath)"
PlatformAssemblyPaths="@(PlatformAssemblies); ReadyToRun="True"
@(PublishDirSubDirectories); PlatformAssemblyPaths="@(PlatformAssemblies);@(RoslynFolders);$(SharedFrameworkNameVersionPath)" />
$(SharedFrameworkNameVersionPath)" />
<Crossgen
SourceAssembly="%(FSharpTargets.FullPath)"
DestinationPath="%(FSharpTargets.FullPath)"
JITPath="$(LibCLRJitPath)"
CrossgenPath="$(CrossgenPath)"
ReadyToRun="True"
PlatformAssemblyPaths="@(PlatformAssemblies);@(FSharpFolders);$(SharedFrameworkNameVersionPath)" />
<Crossgen
SourceAssembly="%(RemainingTargets.FullPath)"
DestinationPath="%(RemainingTargets.FullPath)"
JITPath="$(LibCLRJitPath)"
CrossgenPath="$(CrossgenPath)"
ReadyToRun="True"
PlatformAssemblyPaths="@(PlatformAssemblies);@(RemainingFolders);$(SharedFrameworkNameVersionPath)" />
</Target> </Target>
<Target Name="ChmodPublishDir" <Target Name="ChmodPublishDir"
@ -242,8 +295,6 @@
<Exec Command="find $(SdkOutputDirectory) -type d -exec chmod 755 {} \;" /> <Exec Command="find $(SdkOutputDirectory) -type d -exec chmod 755 {} \;" />
<Exec Command="find $(SdkOutputDirectory) -type f -exec chmod 644 {} \;" /> <Exec Command="find $(SdkOutputDirectory) -type f -exec chmod 644 {} \;" />
<Chmod Mode="755" Glob="$(SdkOutputDirectory)/Roslyn/RunCsc.sh" />
<Chmod Mode="755" Glob="$(SdkOutputDirectory)/Roslyn/RunVbc.sh" />
<Chmod Mode="755" Glob="$(SdkOutputDirectory)/FSharp/RunFsc.sh" /> <Chmod Mode="755" Glob="$(SdkOutputDirectory)/FSharp/RunFsc.sh" />
</Target> </Target>

View file

@ -1,6 +0,0 @@
@echo off
REM Copyright (c) .NET Foundation and contributors. All rights reserved.
REM Licensed under the MIT license. See LICENSE file in the project root for full license information.
"%~dp0..\..\..\dotnet" "%~dp0csc.exe" %*

View file

@ -1,17 +0,0 @@
#!/usr/bin/env bash
#
# 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.
#
set -e
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
"$DIR/../../../dotnet" "$DIR/csc.exe" "$@"

View file

@ -1,6 +0,0 @@
@echo off
REM Copyright (c) .NET Foundation and contributors. All rights reserved.
REM Licensed under the MIT license. See LICENSE file in the project root for full license information.
"%~dp0..\..\..\dotnet" "%~dp0vbc.exe" %*

View file

@ -1,17 +0,0 @@
#!/usr/bin/env bash
#
# 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.
#
set -e
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
"$DIR/../../../dotnet" "$DIR/vbc.exe" "$@"

View file

@ -1,67 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.tasks))\dir.tasks" />
<PropertyGroup>
<VersionPrefix>$(CliVersionPrefix)</VersionPrefix>
<TargetFramework>$(CliTargetFramework)</TargetFramework>
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<PublishDir>$(RoslynDirectory)</PublishDir>
<VersionSuffix>$(CommitCount)</VersionSuffix>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NetCore.App" Version="$(CLI_SharedFrameworkVersion)" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(CLI_Roslyn_Version)" />
<PackageReference Include="Microsoft.CodeAnalysis.Build.Tasks" Version="$(CLI_Roslyn_Version)" />
<PackageReference Include="Microsoft.Net.Compilers.netcore" Version="$(CLI_Roslyn_Version)" />
<PackageReference Include="Microsoft.DiaSymReader.Native" Version="$(CLI_DiaSymNative_Version)" Condition="'$(OSName)' == 'win'" />
<PackageReference Include="CliDeps.Satellites.Roslyn" Version="$(CLI_Roslyn_Satellites_Version)" />
</ItemGroup>
<ItemGroup>
<Content Include="RunCsc.sh;RunCsc.cmd;RunVbc.sh;RunVbc.cmd">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<Target Name="MakeCscAndVbcRunnableAndMoveToPublishDir"
AfterTargets="Publish"
BeforeTargets="RemoveFilesAfterPublish">
<ItemGroup>
<AssetsToRemoveFromDeps Include="runtimes/any/native/csc.dll"
SectionName="runtimeTargets" />
<AssetsToRemoveFromDeps Include="runtimes/any/native/vbc.dll"
SectionName="runtimeTargets" />
<AssetsToRemoveFromDeps Include="tool_roslyn.dll"
SectionName="runtime"/>
</ItemGroup>
<RemoveAssetFromDepsPackages DepsFile="$(PublishDir)/$(TargetName).deps.json"
SectionName="%(AssetsToRemoveFromDeps.SectionName)"
AssetPath="%(AssetsToRemoveFromDeps.Identity)" />
<Copy SourceFiles="$(PublishDir)/runtimes/any/native/csc.dll;
$(PublishDir)/$(TargetName).runtimeconfig.json;
$(PublishDir)/$(TargetName).deps.json;"
DestinationFiles="$(PublishDir)/csc.exe;
$(PublishDir)/csc.runtimeconfig.json;
$(PublishDir)/csc.deps.json;" />
<Copy SourceFiles="$(PublishDir)/runtimes/any/native/vbc.dll;
$(PublishDir)/$(TargetName).runtimeconfig.json;
$(PublishDir)/$(TargetName).deps.json;"
DestinationFiles="$(PublishDir)/vbc.exe;
$(PublishDir)/vbc.runtimeconfig.json;
$(PublishDir)/vbc.deps.json;" />
</Target>
<Target Name="RemoveFilesAfterPublish"
AfterTargets="Publish">
<Delete Files="$(PublishDir)/$(TargetName).dll" />
<Delete Files="$(PublishDir)/$(TargetName).pdb" />
<Delete Files="$(PublishDir)/$(TargetName).runtimeconfig.json" />
<Delete Files="$(PublishDir)/$(TargetName).deps.json" />
</Target>
</Project>

View file

@ -0,0 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.tasks" />
<PropertyGroup>
<VersionPrefix>$(CliVersionPrefix)</VersionPrefix>
<TargetFramework>$(CliTargetFramework)</TargetFramework>
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
<PublishDir>$(RoslynDirectory)/bincore</PublishDir>
<VersionSuffix>$(CommitCount)</VersionSuffix>
<GenerateRuntimeConfigurationFiles>false</GenerateRuntimeConfigurationFiles>
<CopyBuildOutputToPublishDirectory>false</CopyBuildOutputToPublishDirectory>
<CopyOutputSymbolsToPublishDirectory>false</CopyOutputSymbolsToPublishDirectory>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NetCore.App" Version="$(CLI_SharedFrameworkVersion)" />
<PackageReference Include="CliDeps.Satellites.Roslyn" Version="$(CLI_Roslyn_Satellites_Version)" />
</ItemGroup>
<Target Name="MoveBuildTasksSatellitesAndRemoveBuildOutputAsset"
AfterTargets="Publish">
<RemoveAssetFromDepsPackages DepsFile="$(PublishDir)/$(TargetName).deps.json"
SectionName="runtime"
AssetPath="$(TargetFileName)" />
<ItemGroup>
<BuildTaskSatellites Include="$(PublishDir)/**/Microsoft.Build.Tasks.CodeAnalysis.resources.dll" />
</ItemGroup>
<Move SourceFiles="@(BuildTaskSatellites)"
DestinationFiles="@(BuildTaskSatellites->'$(PublishDir)/../%(RecursiveDir)/%(Filename)%(Extension)')" />
</Target>
</Project>

View file

@ -31,8 +31,6 @@ namespace Microsoft.DotNet.Cli.MSBuild.Tests
[Theory] [Theory]
[InlineData("MSBuildExtensionsPath")] [InlineData("MSBuildExtensionsPath")]
[InlineData("CscToolExe")]
[InlineData("VbcToolExe")]
[InlineData("MSBuildSDKsPath")] [InlineData("MSBuildSDKsPath")]
[InlineData("DOTNET_CLI_TELEMETRY_SESSIONID")] [InlineData("DOTNET_CLI_TELEMETRY_SESSIONID")]
public void ItSetsEnvironmentalVariables(string envVarName) public void ItSetsEnvironmentalVariables(string envVarName)
@ -66,28 +64,6 @@ namespace Microsoft.DotNet.Cli.MSBuild.Tests
.Exist(); .Exist();
} }
[Fact]
public void ItSetsCscToolExePathToValidPath()
{
var msbuildPath = "<msbuildpath>";
var envVar = "CscToolExe";
new FileInfo(new MSBuildForwardingApp(new string[0], msbuildPath)
.GetProcessStartInfo()
.Environment[envVar])
.Should().NotBeNull("constructor will throw on invalid path");
}
[Fact]
public void ItSetsVbcToolExePathToValidPath()
{
var msbuildPath = "<msbuildpath>";
var envVar = "VbcToolExe";
new FileInfo(new MSBuildForwardingApp(new string[0], msbuildPath)
.GetProcessStartInfo()
.Environment[envVar])
.Should().NotBeNull("constructor will throw on invalid path");
}
[Fact] [Fact]
public void ItSetsOrIgnoresTelemetrySessionId() public void ItSetsOrIgnoresTelemetrySessionId()
{ {

View file

@ -39,9 +39,9 @@ namespace Microsoft.DotNet.Cli.Test.Tests
{ {
result.StdOut result.StdOut
.Should().Contain("Total tests: 3. Passed: 2. Failed: 1. Skipped: 0.", "because .NET 4.6 tests will pass") .Should().Contain("Total tests: 3. Passed: 2. Failed: 1. Skipped: 0.", "because .NET 4.6 tests will pass")
.And.Contain("Passed TestNamespace.VSTestTests.VSTestPassTestDesktop", "because .NET 4.6 tests will pass") .And.Contain("Passed VSTestPassTestDesktop", "because .NET 4.6 tests will pass")
.And.Contain("Total tests: 3. Passed: 1. Failed: 2. Skipped: 0.", "because netcoreapp2.1 tests will fail") .And.Contain("Total tests: 3. Passed: 1. Failed: 2. Skipped: 0.", "because netcoreapp2.0 tests will fail")
.And.Contain("Failed TestNamespace.VSTestTests.VSTestFailTestNetCoreApp", "because netcoreapp2.1 tests will fail"); .And.Contain("Failed VSTestFailTestNetCoreApp", "because netcoreapp2.0 tests will fail");
} }
result.ExitCode.Should().Be(1); result.ExitCode.Should().Be(1);
} }

View file

@ -28,8 +28,8 @@ namespace Microsoft.DotNet.Cli.Test.Tests
if (!DotnetUnderTest.IsLocalized()) if (!DotnetUnderTest.IsLocalized())
{ {
result.StdOut.Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0."); result.StdOut.Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.");
result.StdOut.Should().Contain("Passed TestNamespace.VSTestTests.VSTestPassTest"); result.StdOut.Should().Contain("Passed VSTestPassTest");
result.StdOut.Should().Contain("Failed TestNamespace.VSTestTests.VSTestFailTest"); result.StdOut.Should().Contain("Failed VSTestFailTest");
} }
result.ExitCode.Should().Be(1); result.ExitCode.Should().Be(1);
@ -52,8 +52,8 @@ namespace Microsoft.DotNet.Cli.Test.Tests
if (!DotnetUnderTest.IsLocalized()) if (!DotnetUnderTest.IsLocalized())
{ {
result.StdOut.Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0."); result.StdOut.Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.");
result.StdOut.Should().Contain("Passed TestNamespace.VSTestTests.VSTestPassTest"); result.StdOut.Should().Contain("Passed VSTestPassTest");
result.StdOut.Should().Contain("Failed TestNamespace.VSTestTests.VSTestFailTest"); result.StdOut.Should().Contain("Failed VSTestFailTest");
} }
result.ExitCode.Should().Be(1); result.ExitCode.Should().Be(1);
@ -227,8 +227,8 @@ namespace Microsoft.DotNet.Cli.Test.Tests
if (!DotnetUnderTest.IsLocalized()) if (!DotnetUnderTest.IsLocalized())
{ {
result.StdOut.Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0."); result.StdOut.Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.");
result.StdOut.Should().Contain("Passed TestNamespace.VSTestTests.VSTestPassTest"); result.StdOut.Should().Contain("Passed VSTestPassTest");
result.StdOut.Should().Contain("Failed TestNamespace.VSTestTests.VSTestFailTest"); result.StdOut.Should().Contain("Failed VSTestFailTest");
} }
result.ExitCode.Should().Be(1); result.ExitCode.Should().Be(1);

View file

@ -42,8 +42,8 @@ namespace Microsoft.DotNet.Cli.VSTest.Tests
{ {
result.StdOut result.StdOut
.Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.") .Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.")
.And.Contain("Passed TestNamespace.VSTestTests.VSTestPassTest") .And.Contain("Passed VSTestPassTest")
.And.Contain("Failed TestNamespace.VSTestTests.VSTestFailTest"); .And.Contain("Failed VSTestFailTest");
} }
result.ExitCode.Should().Be(1); result.ExitCode.Should().Be(1);