Manually merging some changes that git merged wrong and deleted from the 15.5 branch.

This commit is contained in:
Livar Cunha 2017-10-13 09:35:44 -07:00
parent 1943ddc57f
commit 27aa698710
32 changed files with 220 additions and 247 deletions

View file

@ -147,8 +147,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.TestFramew
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "redist", "src\redist\redist.csproj", "{098D9321-1201-4974-A75E-F58EBCD98ACF}"
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}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_nuget", "src\tool_nuget\tool_nuget.csproj", "{BE4C655A-DC54-4408-B739-743456D34111}"
@ -705,30 +703,6 @@ Global
{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.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.Build.0 = Debug|Any CPU
{D82A3246-9831-4024-A9B2-1932EEF3D56F}.Debug|x64.ActiveCfg = Release|Any CPU
@ -1625,7 +1599,6 @@ Global
{570950AD-A080-4F32-980C-F50E312910DF} = {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}
{A0670C63-BA7A-4C1B-B9A7-1CA26A7F235C} = {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}
{2DFCC95F-75F7-46E1-8F56-256DB4CA98B2} = {0722D325-24C8-4E83-B5AF-0A083E7F0749}

View file

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

View file

@ -1,6 +1,6 @@
<Project ToolsVersion="14.0">
<PropertyGroup>
<SdkBrandName>Microsoft .NET Core SDK - 2.0.3</SdkBrandName>
<SdkBrandName>Microsoft .NET Core SDK - 15.5.0</SdkBrandName>
<MSBuildExtensionsBrandName>.NET Standard Support for Visual Studio 2015</MSBuildExtensionsBrandName>
<SharedFrameworkBrandName>Microsoft .NET Core Runtime - 2.0.1</SharedFrameworkBrandName>
<SharedHostBrandName>Microsoft .NET Core Host - 2.0.1</SharedHostBrandName>

View file

@ -6,7 +6,7 @@
<CLI_Roslyn_Version>2.6.0-beta1-62126-01</CLI_Roslyn_Version>
<CLI_Roslyn_Satellites_Version>2.6.0-pre-20171012-1</CLI_Roslyn_Satellites_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-20171012-1</CLI_FSharp_Satellites_Version>
<!-- We'll usually want to keep these versions in sync, but we may want to diverge in some

View file

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

View file

@ -1,9 +1,9 @@
<Project>
<PropertyGroup>
<VersionMajor>2</VersionMajor>
<VersionMinor>0</VersionMinor>
<VersionPatch>3</VersionPatch>
<ReleaseSuffix Condition=" '$(ReleaseSuffix)' == '' ">servicing</ReleaseSuffix>
<VersionMajor>15</VersionMajor>
<VersionMinor>5</VersionMinor>
<VersionPatch>0</VersionPatch>
<ReleaseSuffix Condition=" '$(ReleaseSuffix)' == '' ">preview</ReleaseSuffix>
<CliVersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)-$(ReleaseSuffix)</CliVersionPrefix>
<SimpleVersion Condition=" '$(DropSuffix)' == '' ">$(VersionMajor).$(VersionMinor).$(VersionPatch).$(CommitCount)</SimpleVersion>

View file

@ -7,8 +7,6 @@
<PropertyGroup>
<MSBuildExtensionsPathInToolPath>false</MSBuildExtensionsPathInToolPath>
<MSBuildExtensionsPathInToolPath Condition="$(MSBuildExtensionsPath.StartsWith('$(NormalizedToolPath)'))">true</MSBuildExtensionsPathInToolPath>
<CscToolExeInToolPath>false</CscToolExeInToolPath>
<CscToolExeInToolPath Condition="$(CscToolExe.StartsWith('$(NormalizedToolPath)'))">true</CscToolExeInToolPath>
<MSBuildSDKsPathInToolPath>false</MSBuildSDKsPathInToolPath>
<MSBuildSDKsPathInToolPath Condition="$(MSBuildSDKsPath.StartsWith('$(NormalizedToolPath)'))">true</MSBuildSDKsPathInToolPath>
</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.DotNet.PlatformAbstractions" Version="$(PlatformAbstractionsVersion)" />
<PackageReference Include="Microsoft.DotNet.VersionTools" Version="$(VersionToolsVersion)" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.0" />
</ItemGroup>
</Project>

View file

@ -23,9 +23,8 @@ namespace Microsoft.DotNet.Cli.Utils
new Dictionary<string, string>
{
{ "MSBuildExtensionsPath", AppContext.BaseDirectory },
{ "CscToolExe", GetRunCscPath() },
{ "VbcToolExe", GetRunVbcPath() },
{ "MSBuildSDKsPath", GetMSBuildSDKsPath() }
{ "MSBuildSDKsPath", GetMSBuildSDKsPath() },
{ "DOTNET_HOST_PATH", GetDotnetPath() },
};
private readonly IEnumerable<string> _msbuildRequiredParameters =
@ -78,20 +77,9 @@ namespace Microsoft.DotNet.Cli.Utils
SdksDirectoryName);
}
private static string GetRunVbcPath()
private static string GetDotnetPath()
{
return GetRunToolPath("Vbc");
}
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}");
return new Muxer().MuxerPath;
}
}
}

View file

@ -177,7 +177,7 @@ The current {1} is '{2}'.</value>
<value>Using launch settings from {0}...</value>
</data>
<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 name="LaunchProfileHandlerCannotBeLocated" xml:space="preserve">
<value>The launch profile type '{0}' is not supported.</value>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -17,15 +17,13 @@
<ItemGroup>
<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="Microsoft.TestPlatform.CLI" Version="$(CLI_TestPlatform_Version)" />
<PackageReference Include="Microsoft.TestPlatform.Build" Version="$(CLI_TestPlatform_Version)" />
<PackageReference Include="NuGet.ProjectModel" Version="$(CLI_NuGet_Version)" />
<!-- The project json migration commands depend on an older version of Roslyn.
Lift the version here to match what tool_roslyn depends on (otherwise an older version will
be added to the TPA when we crossgen and we won't be able to crossgen tool_roslyn -->
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(CLI_Roslyn_Version)" />
<PackageReference Include="Microsoft.NETCore.Compilers" Version="$(CLI_Roslyn_Version)">
<ExcludeAssets>All</ExcludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
@ -74,9 +72,33 @@
<Target Name="PublishRoslyn"
BeforeTargets="Publish">
<DotNetPublish ToolPath="$(Stage0Directory)"
Configuration="$(Configuration)"
ProjectPath="$(SrcDirectory)/tool_roslyn/tool_roslyn.csproj" />
<ItemGroup>
<RoslynBits Include="$(NuGetPackagesDir)/microsoft.netcore.compilers/$(CLI_Roslyn_Version)/tools/**/*" />
</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="$(Stage0Directory)"
Configuration="$(Configuration)"
ProjectPath="$(SrcDirectory)/tool_roslyn_satellites/tool_roslyn_satellites.csproj" />
<AddToDeps TargetDeps="@(RoslynDeps)" AdditionalDeps="@(RoslynSatelliteDeps)" />
<Delete Files="@(RoslynSatelliteDeps)" />
</Target>
<Target Name="PublishFSharp"
@ -200,41 +222,72 @@
Condition=" '$(DISABLE_CROSSGEN)' == '' "
AfterTargets="PublishMSBuildExtensions">
<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 -->
<SdkFiles Include="$(PublishDir)/**/*" Exclude="$(PublishDir)/TestHost*/**/*;$(PublishDir)/Sdks/**/*" />
<RemainingFiles Remove="$(PublishDir)TestHost*\**\*" />
<RemainingFiles Remove="$(PublishDir)Sdks\**\*" />
<!-- 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 -->
<SdkFiles Remove="$(PublishDir)/Microsoft\Microsoft.NET.Build.Extensions\tools\net*\**\*" />
<RemainingFiles Remove="$(PublishDir)Microsoft\Microsoft.NET.Build.Extensions\tools\net*\**\*" />
</ItemGroup>
<AddMetadataIsPE Items="@(SdkFiles)">
<Output TaskParameter="ResultItems" ItemName="SdkFilesWithPEMarker" />
<AddMetadataIsPE Items="@(RoslynFiles)">
<Output TaskParameter="ResultItems" ItemName="RoslynFilesWithPEMarker" />
</AddMetadataIsPE>
<AddMetadataIsPE Items="@(FSharpFiles)">
<Output TaskParameter="ResultItems" ItemName="FSharpFilesWithPEMarker" />
</AddMetadataIsPE>
<AddMetadataIsPE Items="@(RemainingFiles)">
<Output TaskParameter="ResultItems" ItemName="RemainingFilesWithPEMarker" />
</AddMetadataIsPE>
<ItemGroup>
<CrossgenTargets Include="%(SdkFilesWithPEMarker.FullPath)" Condition=" '%(SdkFilesWithPEMarker.IsPE)' == 'True' " />
</ItemGroup>
<RoslynTargets Include="%(RoslynFilesWithPEMarker.FullPath)" Condition=" '%(RoslynFilesWithPEMarker.IsPE)' == 'True' " />
<FSharpTargets Include="%(FSharpFilesWithPEMarker.FullPath)" Condition=" '%(FSharpFilesWithPEMarker.IsPE)' == 'True' " />
<RemainingTargets Include="%(RemainingFilesWithPEMarker.FullPath)" Condition=" '%(RemainingFilesWithPEMarker.IsPE)' == 'True' " />
<RemoveDuplicates Inputs="@(SdkFiles->'%(RootDir)%(Directory)')">
<Output TaskParameter="Filtered" ItemName="PublishDirSubDirectories" />
</RemoveDuplicates>
<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>
<!-- Ensure crossgen tool is executable. See https://github.com/NuGet/Home/issues/4424 -->
<Chmod Condition=" '$(OSName)' != 'win' "
Glob="$(CrossgenPath)"
Mode="u+x" />
<Crossgen SourceAssembly="%(CrossgenTargets.FullPath)"
DestinationPath="%(CrossgenTargets.FullPath)"
JITPath="$(LibCLRJitPath)"
CrossgenPath="$(CrossgenPath)"
ReadyToRun="True"
PlatformAssemblyPaths="@(PlatformAssemblies);
@(PublishDirSubDirectories);
$(SharedFrameworkNameVersionPath)" />
<Crossgen
SourceAssembly="%(RoslynTargets.FullPath)"
DestinationPath="%(RoslynTargets.FullPath)"
JITPath="$(LibCLRJitPath)"
CrossgenPath="$(CrossgenPath)"
ReadyToRun="True"
PlatformAssemblyPaths="@(PlatformAssemblies);@(RoslynFolders);$(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 Name="ChmodPublishDir"
@ -243,8 +296,6 @@
<Exec Command="find $(SdkOutputDirectory) -type d -exec chmod 755 {} \;" />
<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" />
</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,68 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.tasks" />
<PropertyGroup>
<VersionPrefix>$(CliVersionPrefix)</VersionPrefix>
<TargetFramework>netcoreapp2.0</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,35 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<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]
[InlineData("MSBuildExtensionsPath")]
[InlineData("CscToolExe")]
[InlineData("VbcToolExe")]
[InlineData("MSBuildSDKsPath")]
[InlineData("DOTNET_CLI_TELEMETRY_SESSIONID")]
public void ItSetsEnvironmentalVariables(string envVarName)
@ -66,28 +64,6 @@ namespace Microsoft.DotNet.Cli.MSBuild.Tests
.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]
public void ItSetsOrIgnoresTelemetrySessionId()
{