summaryrefslogtreecommitdiff
path: root/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools
diff options
context:
space:
mode:
Diffstat (limited to '.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools')
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/AfterSigning.proj31
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/AfterSolutionBuild.proj18
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Assets/DotNetPackageIcon.pngbin0 -> 7006 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BeforeCommonTargets.CrossTargeting.targets7
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BeforeCommonTargets.targets11
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Build.proj248
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildReleasePackages.targets27
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildStep.props6
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildTasks.props8
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Compiler.props7
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/DefaultVersions.Generated.props7
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/DefaultVersions.props102
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Directory.Build.props5
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Directory.Build.targets5
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Empty.targets23
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/GenerateInternalsVisibleTo.targets44
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/GenerateResxSource.targets75
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Imports.targets30
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/InstallDotNetCore.targets22
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/Apache-2.0.txt202
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/MIT.txt23
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/MicrosoftDotNetLibrary.txt205
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Localization.targets28
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/NativeVersion.rc41
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/OptimizationData.targets192
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Performance.targets27
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectDefaults.props137
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectDefaults.targets56
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectLayout.props22
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Publish.proj291
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepoLayout.props66
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepositoryInfo.targets127
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepositoryValidation.proj37
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Directory.Build.props9
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Directory.Build.targets3
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/GenerateBuildManifest.proj38
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishArtifactsInManifest.proj80
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishBuildAssets.proj36
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishToPackageFeed.proj73
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishToSymbolServers.proj102
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/SetupTargetFeeds.proj363
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/SigningValidation.proj69
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Versions.props26
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/VisualStudio.BuildIbcTrainingSettings.proj46
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/VisualStudio.IbcTraining.runsettings63
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Settings.props30
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Sign.proj114
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/StrongName.props14
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/StrongName.targets89
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SymStore.targets107
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tests.props48
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tests.targets72
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tools.proj49
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Version.BeforeCommonTargets.targets151
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Version.targets136
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.AcquireOptimizationData.targets82
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.BuildIbcTrainingInputs.targets29
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.ImportSdk.targets5
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.InsertionManifests.targets42
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.SetupPackage.swixproj37
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.SetupPackage.vsmanproj79
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.VsixBuild.targets269
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.props17
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.targets45
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Workarounds.props31
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Workarounds.targets191
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/XUnit.props10
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/XUnit.targets127
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/xunit.runner.json3
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/Microsoft.DotNet.Arcade.Sdk.dllbin0 -> 280440 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/Microsoft.DotNet.Arcade.Sdk.dll.config11
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/NuGet.Versioning.dllbin0 -> 52064 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Buffers.dllbin0 -> 28304 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Memory.dllbin0 -> 148624 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Numerics.Vectors.dllbin0 -> 115936 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Reflection.Metadata.dllbin0 -> 465104 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Runtime.CompilerServices.Unsafe.dllbin0 -> 22160 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Threading.Tasks.Extensions.dllbin0 -> 32912 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.deps.json1434
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.dllbin0 -> 279416 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/NuGet.Versioning.dllbin0 -> 51912 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/System.Runtime.CompilerServices.Unsafe.dllbin0 -> 21648 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/35MSSharedLib1024.snkbin0 -> 160 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/AspNetCore.snkbin0 -> 596 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/ECMA.snkbin0 -> 16 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/MSFT.snkbin0 -> 160 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/Open.snkbin0 -> 596 bytes
-rwxr-xr-x.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/SilverlightPlatformPublicKey.snkbin0 -> 160 bytes
88 files changed, 6260 insertions, 0 deletions
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/AfterSigning.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/AfterSigning.proj
new file mode 100755
index 0000000000..8f4000676d
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/AfterSigning.proj
@@ -0,0 +1,31 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <Import Project="BuildStep.props" />
+
+ <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
+ <Target Name="Clean" />
+ <Target Name="Build" />
+ <Target Name="Test" />
+ <Target Name="Pack" />
+ <Target Name="IntegrationTest" />
+ <Target Name="PerformanceTest" />
+
+ <!--
+ Since multiple projects may contribute to a single insertion component
+ we need to package them in a separate phase.
+
+ Insertion manifests (vsman files) contain hashes of the referenced VSIXes.
+ These need to be calculated using signed VSIXes.
+ Hence we need to run this task after signing.
+ -->
+ <Import Project="VisualStudio.InsertionManifests.targets" Condition="'$(UsingToolVSSDK)' == 'true' and '$(MSBuildRuntimeType)' != 'Core'" />
+
+ <!--
+ Generate IBC training inputs for VS insertion components.
+ -->
+ <Import Project="VisualStudio.BuildIbcTrainingInputs.targets" Condition="'$(UsingToolVSSDK)' == 'true' and '$(UsingToolVisualStudioIbcTraining)' == 'true' and '$(MSBuildRuntimeType)' != 'Core'" />
+
+ <!-- Repository extension point -->
+ <Import Project="$(RepositoryEngineeringDir)AfterSigning.targets" Condition="Exists('$(RepositoryEngineeringDir)AfterSigning.targets')"/>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/AfterSolutionBuild.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/AfterSolutionBuild.proj
new file mode 100755
index 0000000000..c4f3ef7f4f
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/AfterSolutionBuild.proj
@@ -0,0 +1,18 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <Import Project="BuildStep.props" />
+
+ <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
+ <Target Name="Clean" />
+ <Target Name="Build" />
+ <Target Name="Test" />
+ <Target Name="Pack" />
+ <Target Name="IntegrationTest" />
+ <Target Name="PerformanceTest" />
+
+ <Import Project="BuildReleasePackages.targets" Condition="'$(UsingToolNuGetRepack)' == 'true'" />
+
+ <!-- Repository extension point -->
+ <Import Project="$(RepositoryEngineeringDir)AfterSolutionBuild.targets" Condition="Exists('$(RepositoryEngineeringDir)AfterSolutionBuild.targets')"/>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Assets/DotNetPackageIcon.png b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Assets/DotNetPackageIcon.png
new file mode 100755
index 0000000000..a0f1fdbf4d
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Assets/DotNetPackageIcon.png
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BeforeCommonTargets.CrossTargeting.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BeforeCommonTargets.CrossTargeting.targets
new file mode 100755
index 0000000000..46ff55a907
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BeforeCommonTargets.CrossTargeting.targets
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <Import Project="$(_ArcadeOverriddenCustomBeforeMicrosoftCommonCrossTargetingTargets)" Condition="Exists('$(_ArcadeOverriddenCustomBeforeMicrosoftCommonCrossTargetingTargets)')"/>
+
+ <Import Project="Version.BeforeCommonTargets.targets"/>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BeforeCommonTargets.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BeforeCommonTargets.targets
new file mode 100755
index 0000000000..f831c2d470
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BeforeCommonTargets.targets
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <Import Project="$(_ArcadeOverriddenCustomBeforeMicrosoftCommonTargets)" Condition="Exists('$(_ArcadeOverriddenCustomBeforeMicrosoftCommonTargets)')"/>
+
+ <PropertyGroup>
+ <_ArcadeBeforeCommonTargetsImported>true</_ArcadeBeforeCommonTargetsImported>
+ </PropertyGroup>
+
+ <Import Project="Version.BeforeCommonTargets.targets"/>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Build.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Build.proj
new file mode 100755
index 0000000000..2b0ae68e50
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Build.proj
@@ -0,0 +1,248 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project DefaultTargets="Execute" TreatAsLocalProperty="RepoRoot">
+ <!--
+
+ Required parameters:
+ RepoRoot Repository root.
+ Projects List of projects to build. Semicolon separated, may include globs.
+
+ Optional parameters:
+ Configuration Build configuration: "Debug", "Release", etc.
+
+ DotNetBuildFromSource Building the entire stack from source with no external dependencies.
+ DotNetOutputBlobFeedDir Directory to publish Source Build assets to (packages, symbol packages, installers, etc.).
+ DotNetPublishUsingPipelines Publish assets using Azure DevOps release pipelines.
+ DotNetArtifactsCategory Type of assets being produced by the build.
+ DotNetPublishToBlobFeed Publish assets to blob feed using DotNetPublishBlobFeedUrl and DotNetPublishBlobFeedKey.
+ DotNetPublishBlobFeedUrl Target feed URL, or empty if not publishing to Azure blob feed.
+ DotNetPublishBlobFeedKey Azure blob feed account key.
+ DotNetSymbolServerTokenMsdl Personal access token for MSDL symbol server. Available from variable group DotNet-Symbol-Publish.
+ DotNetSymbolServerTokenSymWeb Personal access token for SymWeb symbol server. Available from variable group DotNet-Symbol-Publish.
+ DotNetSymbolExpirationInDays Symbol expiration time in days (defaults to 10 years).
+ DotNetSignType Specifies the signing type: 'real' (default), 'test'.
+
+ ContinuousIntegrationBuild "true" when building on a CI server (PR build or official build)
+ Restore "true" to restore toolset and solution
+ Build "true" to build solution
+ Rebuild "true" to rebuild solution
+ Deploy "true" to deploy assets (e.g. VSIXes)
+ Test "true" to run tests
+ IntegrationTest "true" to run integration tests
+ PerformanceTest "true" to run performance tests
+ Pack "true" to build NuGet packages and VS insertion manifests
+ Sign "true" to sign built binaries
+ Publish "true" to publish artifacts (e.g. symbols)
+ -->
+
+ <PropertyGroup>
+ <_RepoRootOriginal>$(RepoRoot)</_RepoRootOriginal>
+ <RepoRoot>$([System.IO.Path]::GetFullPath('$(RepoRoot)/'))</RepoRoot>
+
+ <_OriginalProjectsValue>$(Projects)</_OriginalProjectsValue>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <ProjectToBuild>
+ <RestoreInParallel>true</RestoreInParallel>
+ </ProjectToBuild>
+ </ItemDefinitionGroup>
+
+ <Import Project="RepoLayout.props"/>
+
+ <!-- Allow for repo specific Build properties such as the list of Projects to build -->
+ <Import Project="$(RepositoryEngineeringDir)Build.props" Condition="Exists('$(RepositoryEngineeringDir)Build.props')" />
+
+ <PropertyGroup>
+ <_ProjectsPropertyWasUpdatedInBuildProps Condition="'$(_OriginalProjectsValue)' != '$(Projects)'">true</_ProjectsPropertyWasUpdatedInBuildProps>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(Projects)' != ''">
+ <!-- Copy the original list so we can log diagnostics later. -->
+ <_OriginalProjectToBuild Include="@(ProjectToBuild)" />
+ <!-- Setting 'Projects' overrides the ProjectToBuild list. -->
+ <ProjectToBuild Remove="@(ProjectToBuild)" />
+ <ProjectToBuild Include="$(Projects)" />
+ </ItemGroup>
+
+ <!--
+ Default values.
+ -->
+ <!-- If Projects is unspecified and ProjectToBuild was not set via Build.props, fallback to building .sln files in the repo root. -->
+ <ItemGroup Condition="'@(ProjectToBuild)' == ''">
+ <ProjectToBuild Include="$(RepoRoot)*.sln" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <_DotNetOutputBlobFeedDir>$(DotNetOutputBlobFeedDir)</_DotNetOutputBlobFeedDir>
+ <_DotNetOutputBlobFeedDir Condition="'$(_DotNetOutputBlobFeedDir)' != '' and !HasTrailingSlash('$(_DotNetOutputBlobFeedDir)')">$(_DotNetOutputBlobFeedDir)\</_DotNetOutputBlobFeedDir>
+ </PropertyGroup>
+
+ <Target Name="Execute">
+ <Error Text="No projects were found to build. Either the 'Projects' property or 'ProjectToBuild' item group must be specified." Condition="'@(ProjectToBuild)' == ''"/>
+ <Error Text="Property 'RepoRoot' must be specified" Condition="'$(_RepoRootOriginal)' == ''"/>
+ <Error Text="File 'global.json' must exist in directory specified by RepoRoot: '$(_RepoRootOriginal)'" Condition="'$(_RepoRootOriginal)' != '' and !Exists('$(RepoRoot)global.json')"/>
+
+ <ItemGroup>
+ <_SolutionBuildTargets Include="Rebuild" Condition="'$(Rebuild)' == 'true'" />
+ <_SolutionBuildTargets Include="Build" Condition="'$(Build)' == 'true' and '$(Rebuild)' != 'true'" />
+ <!-- Extensibility point to run addition build targets after build. -->
+ <_SolutionBuildTargets Include="@(SolutionBuildTargets)" />
+ <!-- Deploy target is set up to chain after Build so that F5 in VS works. -->
+ <_SolutionBuildTargets Include="Test" Condition="'$(Test)' == 'true'" />
+ <!-- Pack before running integration and performance tests so that these tests can test packages produced by the repo. -->
+ <_SolutionBuildTargets Include="Pack" Condition="'$(Pack)' == 'true'" />
+ <_SolutionBuildTargets Include="IntegrationTest" Condition="'$(IntegrationTest)' == 'true'" />
+ <_SolutionBuildTargets Include="PerformanceTest" Condition="'$(PerformanceTest)' == 'true'" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <_RemoveProps>Projects;Restore;Deploy;Sign;Publish;NETCORE_ENGINEERING_TELEMETRY;@(_SolutionBuildTargets)</_RemoveProps>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_CommonProps Include="Configuration=$(Configuration)"/>
+ <_CommonProps Include="ContinuousIntegrationBuild=$(ContinuousIntegrationBuild)"/>
+ <_CommonProps Include="RepoRoot=$(RepoRoot)"/>
+ <_CommonProps Include="VersionsPropsPath=$(VersionsPropsPath)"/>
+
+ <!--
+ When building from source we suppress restore for projects that set ExcludeFromSourceBuild=true.
+ NuGet Restore task reports a warning for such projects, which we suppress here.
+ -->
+ <_CommonProps Include="DisableWarnForInvalidRestoreProjects=true" Condition="'$(DotNetBuildFromSource)' == 'true'"/>
+
+ <!--
+ C++ projects expect VCTargetsPath property to be set. MSBuild generates this property to solution
+ metaproject when solution is build directly, but doesn't do so when the solution is built using MSBuild task.
+ -->
+ <_CommonProps Include="VCTargetsPath=$([MSBuild]::ValueOrDefault('$(VCTargetsPath)', '$([MSBuild]::GetVsInstallRoot())\Common7\IDE\VC\VCTargets\'))" Condition="'$(MSBuildRuntimeType)' != 'Core'"/>
+ </ItemGroup>
+
+ <ItemGroup Condition="'$(Restore)' == 'true'">
+ <_RestoreToolsProps Include="@(_CommonProps)"/>
+ <_RestoreToolsProps Include="BaseIntermediateOutputPath=$(ArtifactsToolsetDir)Common"/>
+ <_RestoreToolsProps Include="ExcludeRestorePackageImports=true"/>
+ <_RestoreToolsProps Include="PublishingToBlobStorage=$(DotNetPublishToBlobFeed)"/>
+ </ItemGroup>
+
+ <ItemGroup>
+ <_PublishProps Include="@(_CommonProps)"/>
+ <_PublishProps Include="PublishToAzureDevOpsArtifacts=$(DotNetPublishUsingPipelines)" />
+ <_PublishProps Include="ArtifactsCategory=$(DotNetArtifactsCategory)" />
+ <_PublishProps Include="AzureFeedUrl=$(DotNetPublishBlobFeedUrl)" Condition="'$(DotNetPublishToBlobFeed)' == 'true'" />
+ <_PublishProps Include="AzureAccountKey=$(DotNetPublishBlobFeedKey)" Condition="'$(DotNetPublishToBlobFeed)' == 'true'" />
+ <_PublishProps Include="DotNetOutputBlobFeedDir=$(_DotNetOutputBlobFeedDir)" Condition="'$(_DotNetOutputBlobFeedDir)' != ''" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <_SolutionBuildProps Include="@(_CommonProps)"/>
+ <_SolutionBuildProps Include="__DeployProjectOutput=$(Deploy)" Condition="'$(Deploy)' != ''"/>
+ </ItemGroup>
+
+ <!--
+ Restore built-in tools.
+ -->
+ <MSBuild Projects="Tools.proj"
+ Targets="Restore"
+ Properties="@(_RestoreToolsProps);_NETCORE_ENGINEERING_TELEMETRY=Restore"
+ Condition="'$(Restore)' == 'true'"/>
+
+ <!--
+ Restore solutions and projects.
+
+ Run solution restore separately from the other targets, in a different build phase.
+ Since restore brings in new .props and .targets files we need to rerun evaluation.
+
+ Workarounds:
+ - Invoke restore using NuGet.targets directly (see https://github.com/NuGet/Home/issues/7648).
+ This avoids duplicate calls to RestoreTask and race conditions on writing restore results to disk.
+
+ - msbuild caches the metaproject for the solution (see https://github.com/Microsoft/msbuild/issues/1695)
+ We invalidate the cache by changing the value of __BuildPhase property.
+ -->
+
+ <PropertyGroup>
+ <!-- This can be set to false as an optimization for repos that don't use NuGet. -->
+ <RestoreUsingNuGetTargets Condition="'$(RestoreUsingNuGetTargets)' == ''">true</RestoreUsingNuGetTargets>
+
+ <!-- IsRunningFromVisualStudio may be true even when running msbuild.exe from command line. This generally means that MSBUild is Visual Studio installation and therefore we need to find NuGet.targets in a different location. -->
+ <_NuGetRestoreTargets>$(MSBuildToolsPath)\NuGet.targets</_NuGetRestoreTargets>
+ <_NuGetRestoreTargets Condition="'$([MSBuild]::IsRunningFromVisualStudio())' == 'true'">$(MSBuildToolsPath32)\..\..\..\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.targets</_NuGetRestoreTargets>
+ </PropertyGroup>
+
+ <!--
+ Detect which projects support restoring with NuGet targets.
+ As a perf optimization, the Properties list here should match exactly with
+ the properties passed to the "Restore" target a few lines below.
+ This helps MSBuild cache the result of _IsProjectRestoreSupported.
+ -->
+ <MSBuild Projects="@(ProjectToBuild)"
+ Properties="@(_SolutionBuildProps);__BuildPhase=SolutionRestore;_NETCORE_ENGINEERING_TELEMETRY=Restore"
+ RemoveProperties="$(_RemoveProps)"
+ Targets="_IsProjectRestoreSupported"
+ SkipNonexistentTargets="true"
+ BuildInParallel="true"
+ Condition="'$(RestoreUsingNuGetTargets)' != 'false' and '%(ProjectToBuild.Extension)' != '.sln' and '$(Restore)' == 'true'">
+
+ <Output TaskParameter="TargetOutputs" ItemName="_ProjectToRestoreWithNuGet" />
+ </MSBuild>
+
+ <PropertyGroup>
+ <!-- Normalize paths to avoid false warnings by NuGet about missing project references. -->
+ <_ProjectToRestoreWithNuGetList>@(_ProjectToRestoreWithNuGet->'%(FullPath)')</_ProjectToRestoreWithNuGetList>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_ProjectToRestore Include="$(_NuGetRestoreTargets)" Condition="'$(_ProjectToRestoreWithNuGetList)' != '' and '$(RestoreUsingNuGetTargets)' != 'false'">
+ <AdditionalProperties>RestoreGraphProjectInput=$(_ProjectToRestoreWithNuGetList)</AdditionalProperties>
+ <RestoreInParallel>true</RestoreInParallel>
+ </_ProjectToRestore>
+
+ <!-- Invoke the 'Restore' target on solutions and projects which do not support NuGet. -->
+ <_ProjectToRestore Include="@(ProjectToBuild)" Exclude="@(_ProjectToRestoreWithNuGet)" />
+ </ItemGroup>
+
+ <MSBuild Projects="@(_ProjectToRestore)"
+ Properties="@(_SolutionBuildProps);__BuildPhase=SolutionRestore;_NETCORE_ENGINEERING_TELEMETRY=Restore"
+ RemoveProperties="$(_RemoveProps)"
+ Targets="Restore"
+ SkipNonexistentTargets="true"
+ BuildInParallel="%(_ProjectToRestore.RestoreInParallel)"
+ Condition="'$(Restore)' == 'true'"/>
+
+ <!--
+ Build solution.
+ -->
+ <MSBuild Projects="@(ProjectToBuild)"
+ Properties="@(_SolutionBuildProps);__BuildPhase=SolutionBuild;_NETCORE_ENGINEERING_TELEMETRY=Build"
+ RemoveProperties="$(_RemoveProps)"
+ Targets="@(_SolutionBuildTargets)"
+ BuildInParallel="true"
+ Condition="'@(_SolutionBuildTargets)' != ''" />
+
+ <MSBuild Projects="AfterSolutionBuild.proj"
+ Properties="@(_CommonProps);_NETCORE_ENGINEERING_TELEMETRY=Build"
+ Targets="@(_SolutionBuildTargets)"
+ SkipNonexistentTargets="true"
+ Condition="'@(_SolutionBuildTargets)' != ''" />
+
+ <!--
+ Sign artifacts.
+ -->
+ <MSBuild Projects="Sign.proj"
+ Properties="@(_CommonProps)"
+ Targets="Sign"
+ Condition="'$(Sign)' == 'true'"/>
+
+ <MSBuild Projects="AfterSigning.proj"
+ Properties="@(_CommonProps);_NETCORE_ENGINEERING_TELEMETRY=Sign"
+ Targets="@(_SolutionBuildTargets)"
+ SkipNonexistentTargets="true"
+ Condition="'@(_SolutionBuildTargets)' != ''"/>
+
+ <MSBuild Projects="Publish.proj"
+ Properties="@(_PublishProps);_NETCORE_ENGINEERING_TELEMETRY=Publish"
+ Targets="Publish"
+ Condition="'$(Publish)' == 'true'"/>
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildReleasePackages.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildReleasePackages.targets
new file mode 100755
index 0000000000..a2a147a7b4
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildReleasePackages.targets
@@ -0,0 +1,27 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <PropertyGroup>
+ <_NuGetRepackAssembly Condition="'$(MSBuildRuntimeType)' != 'Core'">$(NuGetPackageRoot)microsoft.dotnet.nugetrepack.tasks\$(MicrosoftDotnetNuGetRepackTasksVersion)\tools\net472\Microsoft.DotNet.NuGetRepack.Tasks.dll</_NuGetRepackAssembly>
+ <_NuGetRepackAssembly Condition="'$(MSBuildRuntimeType)' == 'Core'">$(NuGetPackageRoot)microsoft.dotnet.nugetrepack.tasks\$(MicrosoftDotnetNuGetRepackTasksVersion)\tools\netcoreapp2.1\Microsoft.DotNet.NuGetRepack.Tasks.dll</_NuGetRepackAssembly>
+ </PropertyGroup>
+
+ <UsingTask TaskName="Microsoft.DotNet.Tools.UpdatePackageVersionTask" AssemblyFile="$(_NuGetRepackAssembly)" />
+
+ <Target Name="PackageReleasePackages" AfterTargets="Pack" Condition="'$(DotNetFinalVersionKind)' == ''">
+ <Message Text="Building release versions of NuGet packages" Importance="high" />
+
+ <Error Text="PreReleaseVersionLabel must be non-empty when using NuGet Repack tool." Condition="'$(PreReleaseVersionLabel)' == ''" />
+
+ <ItemGroup>
+ <_BuiltPackages Include="$(ArtifactsShippingPackagesDir)*.nupkg" />
+ </ItemGroup>
+
+ <!-- Force references among packages to use exact versions (see https://github.com/NuGet/Home/issues/7213) -->
+ <Microsoft.DotNet.Tools.UpdatePackageVersionTask VersionKind="release" Packages="@(_BuiltPackages)" OutputDirectory="$(ArtifactsPackagesDir)Release" AllowPreReleaseDependencies="true" ExactVersions="true" />
+ <Microsoft.DotNet.Tools.UpdatePackageVersionTask VersionKind="prerelease" Packages="@(_BuiltPackages)" OutputDirectory="$(ArtifactsPackagesDir)PreRelease" ExactVersions="true"/>
+
+ <!-- Rewrite the version ranges of per-build pre-release packages (see https://github.com/NuGet/Home/issues/7213) -->
+ <Microsoft.DotNet.Tools.UpdatePackageVersionTask Packages="@(_BuiltPackages)" OutputDirectory="$(ArtifactsShippingPackagesDir)" ExactVersions="true"/>
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildStep.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildStep.props
new file mode 100755
index 0000000000..f540c4cd6f
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildStep.props
@@ -0,0 +1,6 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <Import Project="RepoLayout.props" />
+ <Import Project="DefaultVersions.props" />
+ <Import Project="BuildTasks.props" />
+</Project> \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildTasks.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildTasks.props
new file mode 100755
index 0000000000..3f12225f00
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/BuildTasks.props
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <PropertyGroup>
+ <ArcadeSdkBuildTasksAssembly Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)net472\Microsoft.DotNet.Arcade.Sdk.dll</ArcadeSdkBuildTasksAssembly>
+ <ArcadeSdkBuildTasksAssembly Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)netcoreapp2.1\Microsoft.DotNet.Arcade.Sdk.dll</ArcadeSdkBuildTasksAssembly>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Compiler.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Compiler.props
new file mode 100755
index 0000000000..3405e9e8a1
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Compiler.props
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <ItemGroup>
+ <PackageReference Include="Microsoft.Net.Compilers.Toolset" Version="$(MicrosoftNetCompilersToolsetVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
+ </ItemGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/DefaultVersions.Generated.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/DefaultVersions.Generated.props
new file mode 100755
index 0000000000..7101cf5640
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/DefaultVersions.Generated.props
@@ -0,0 +1,7 @@
+<!-- Generated by Microsoft.DotNet.Arcade.Sdk.csproj -->
+<Project>
+ <PropertyGroup>
+ <ArcadeSdkVersion>1.0.0-beta.19577.5</ArcadeSdkVersion>
+ <MicrosoftNetCompilersToolsetVersion>3.3.1-beta3-final</MicrosoftNetCompilersToolsetVersion>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/DefaultVersions.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/DefaultVersions.props
new file mode 100755
index 0000000000..ba83241486
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/DefaultVersions.props
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ Sets versions of packages used by the toolset unless they were already specified by the repo.
+ Version.props shall be imported prior this file.
+ -->
+
+ <PropertyGroup>
+ <OfficialBuild>false</OfficialBuild>
+ <OfficialBuild Condition="'$(OfficialBuildId)' != ''">true</OfficialBuild>
+ </PropertyGroup>
+
+ <!-- TODO: remove conditions on the following imports (see https://github.com/dotnet/arcade/issues/1982) -->
+ <Import Project="DefaultVersions.Generated.props" Condition="Exists('DefaultVersions.Generated.props')"/>
+ <Import Project="$(VersionsPropsPath)" Condition="Exists('$(VersionsPropsPath)')"/>
+
+ <!-- TODO: remove once all repos remove RestoreSources from their Version.props files -->
+ <PropertyGroup>
+ <RestoreSources/>
+ </PropertyGroup>
+
+ <!--
+ Prevent NuGet from using cached packages
+ Workaround for https://github.com/NuGet/Home/issues/3116
+ -->
+ <PropertyGroup>
+ <RestoreNoCache Condition="'$(ContinuousIntegrationBuild)' == 'true'">true</RestoreNoCache>
+ </PropertyGroup>
+
+ <!--
+ Arcade SDK features.
+ -->
+ <PropertyGroup>
+ <!-- Opt-out features -->
+ <UsingToolXliff Condition="'$(UsingToolXliff)' == ''">true</UsingToolXliff>
+ <UsingToolXUnit Condition="'$(UsingToolXUnit)' == ''">true</UsingToolXUnit>
+ <UsingToolPdbConverter Condition="'$(UsingToolPdbConverter)' == ''">true</UsingToolPdbConverter>
+
+ <!-- Opt-in features -->
+ <UsingToolVSSDK Condition="'$(UsingToolVSSDK)' == ''">false</UsingToolVSSDK>
+ <UsingToolIbcOptimization Condition="'$(UsingToolIbcOptimization)' == ''">false</UsingToolIbcOptimization>
+ <UsingToolVisualStudioIbcTraining Condition="'$(UsingToolVisualStudioIbcTraining)' == ''">false</UsingToolVisualStudioIbcTraining>
+ <UsingToolNetFrameworkReferenceAssemblies Condition="'$(UsingToolNetFrameworkReferenceAssemblies)' == ''">false</UsingToolNetFrameworkReferenceAssemblies>
+ <UsingToolNuGetRepack Condition="'$(UsingToolNuGetRepack)' == ''">false</UsingToolNuGetRepack>
+ <UsingToolSymbolUploader Condition="'$(UsingToolSymbolUploader)' == ''">false</UsingToolSymbolUploader>
+
+ <!--
+ Use compilers from the Microsoft.Net.Compilers/Microsoft.NETCore.Compilers package.
+ Repo can set this property to true if it needs to use a different version of the compiler than the one in the dotnet SDK.
+ -->
+ <UsingToolMicrosoftNetCompilers Condition="'$(UsingToolMicrosoftNetCompilers)' == ''">false</UsingToolMicrosoftNetCompilers>
+ </PropertyGroup>
+
+ <!--
+ Disable features when building from source.
+ -->
+ <PropertyGroup Condition="'$(DotNetBuildFromSource)' == 'true'">
+ <UsingToolPdbConverter>false</UsingToolPdbConverter>
+ <UsingToolVSSDK>false</UsingToolVSSDK>
+ <UsingToolIbcOptimization>false</UsingToolIbcOptimization>
+ <UsingToolVisualStudioIbcTraining>false</UsingToolVisualStudioIbcTraining>
+ <UsingToolSymbolUploader>false</UsingToolSymbolUploader>
+ <UsingToolNuGetRepack>false</UsingToolNuGetRepack>
+ </PropertyGroup>
+
+ <!--
+ Default versions
+ -->
+ <PropertyGroup>
+ <DropAppVersion Condition="'$(DropAppVersion)' == ''">17.144.28413-buildid7983345</DropAppVersion>
+ <MicroBuildPluginsSwixBuildVersion Condition="'$(MicroBuildPluginsSwixBuildVersion)' == ''">1.0.422</MicroBuildPluginsSwixBuildVersion>
+ <MicroBuildCoreVersion Condition="'$(MicroBuildCoreVersion)' == ''">0.2.0</MicroBuildCoreVersion>
+ <MicrosoftDotNetIBCMergeVersion Condition="'$(MicrosoftDotNetIBCMergeVersion)' == ''">5.0.6-beta.19203.1</MicrosoftDotNetIBCMergeVersion>
+ <MicrosoftNETTestSdkVersion Condition="'$(MicrosoftNETTestSdkVersion)' == ''">16.1.1</MicrosoftNETTestSdkVersion>
+ <MicrosoftNetFrameworkReferenceAssembliesVersion Condition="'$(MicrosoftNetFrameworkReferenceAssembliesVersion)' == ''">1.0.0-preview.2</MicrosoftNetFrameworkReferenceAssembliesVersion>
+ <MicrosoftVSSDKBuildToolsVersion Condition="'$(MicrosoftVSSDKBuildToolsVersion)' == ''">15.1.192</MicrosoftVSSDKBuildToolsVersion>
+ <MicrosoftDiaSymReaderPdb2PdbVersion Condition="'$(MicrosoftDiaSymReaderPdb2PdbVersion)' == ''">1.1.0-beta1-62506-02</MicrosoftDiaSymReaderPdb2PdbVersion>
+ <MicrosoftDotnetNuGetRepackTasksVersion Condition="'$(MicrosoftDotnetNuGetRepackTasksVersion)' == ''">$(ArcadeSdkVersion)</MicrosoftDotnetNuGetRepackTasksVersion>
+ <MicrosoftDotNetSignToolVersion Condition="'$(MicrosoftDotNetSignToolVersion)' == ''">$(ArcadeSdkVersion)</MicrosoftDotNetSignToolVersion>
+ <XliffTasksVersion Condition="'$(XliffTasksVersion)' == ''">1.0.0-beta.19252.1</XliffTasksVersion>
+ <XUnitVersion Condition="'$(XUnitVersion)' == ''">2.4.1</XUnitVersion>
+ <XUnitRunnerConsoleVersion Condition="'$(XUnitRunnerConsoleVersion)' == ''">$(XUnitVersion)</XUnitRunnerConsoleVersion>
+ <XUnitRunnerVisualStudioVersion Condition="'$(XUnitRunnerVisualStudioVersion)' == ''">$(XUnitVersion)</XUnitRunnerVisualStudioVersion>
+ <MicrosoftDotNetBuildTasksFeedVersion Condition="'$(MicrosoftDotNetBuildTasksFeedVersion)' == ''">2.2.0-beta.19514.1</MicrosoftDotNetBuildTasksFeedVersion>
+ <MicrosoftSourceLinkVersion Condition="'$(MicrosoftSourceLinkVersion)' == ''">1.0.0-beta2-19367-01</MicrosoftSourceLinkVersion>
+ <MicrosoftSymbolUploaderBuildTaskVersion Condition="'$(MicrosoftSymbolUploaderBuildTaskVersion)' == ''">1.0.0-beta-64414-01</MicrosoftSymbolUploaderBuildTaskVersion>
+ <VSWhereVersion Condition="'$(VSWhereVersion)' == ''">2.6.7</VSWhereVersion>
+ <SNVersion Condition="'$(SNVersion)' == ''">1.0.0</SNVersion>
+ <MicrosoftDotNetBuildTasksVisualStudioVersion Condition="'$(MicrosoftDotNetBuildTasksVisualStudioVersion)' == ''">$(ArcadeSdkVersion)</MicrosoftDotNetBuildTasksVisualStudioVersion>
+ </PropertyGroup>
+
+ <!-- RestoreSources overrides - defines DotNetRestoreSources variable if available -->
+ <Import Project="$(DotNetPackageVersionPropsPath)" Condition="'$(DotNetPackageVersionPropsPath)' != ''"/>
+ <!--
+ Defaults for properties that need to be available to all CI build steps and are dependent on settings specified in eng/Versions.props.
+ -->
+ <PropertyGroup>
+ <IbcOptimizationDataDir Condition="'$(UsingToolVisualStudioIbcTraining)' == 'true'">$(ArtifactsDir)ibc\</IbcOptimizationDataDir>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Directory.Build.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Directory.Build.props
new file mode 100755
index 0000000000..15dc198bab
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Directory.Build.props
@@ -0,0 +1,5 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!-- This is an empty Directory.Build.props file to prevent the Directory.Build.props file from the repo from being used
+ if the toolset package is restored to a subdirectory in the repo -->
+</Project> \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Directory.Build.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Directory.Build.targets
new file mode 100755
index 0000000000..11c7195e5d
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Directory.Build.targets
@@ -0,0 +1,5 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!-- This is an empty Directory.Build.targets file to prevent the Directory.Build.targets file from the repo from being used
+ if the toolset package is restored to a subdirectory in the repo -->
+</Project> \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Empty.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Empty.targets
new file mode 100755
index 0000000000..dd4ae121f3
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Empty.targets
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project DefaultTargets="Build">
+ <!--
+ Import this file to suppress all targets while allowing the project to participate in the build.
+ Workaround for https://github.com/dotnet/sdk/issues/2071.
+
+ The targets defined here are not sufficient for the project to be open in Visual Studio without issues though.
+ -->
+
+ <PropertyGroup>
+ <!-- Skip importing NuGet Pack targets which are imported from the Microsoft.NET.Sdk targets -->
+ <ImportNuGetBuildTasksPackTargetsFromSdk>false</ImportNuGetBuildTasksPackTargetsFromSdk>
+ </PropertyGroup>
+
+ <Target Name="_IsProjectRestoreSupported"/>
+ <Target Name="Restore"/>
+ <Target Name="Build"/>
+ <Target Name="Test"/>
+ <Target Name="Pack"/>
+ <Target Name="Publish"/>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/GenerateInternalsVisibleTo.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/GenerateInternalsVisibleTo.targets
new file mode 100755
index 0000000000..424c76d24e
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/GenerateInternalsVisibleTo.targets
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <PropertyGroup>
+ <GeneratedInternalsVisibleToFile>$(IntermediateOutputPath)$(MSBuildProjectName).InternalsVisibleTo$(DefaultLanguageSourceExtension)</GeneratedInternalsVisibleToFile>
+ </PropertyGroup>
+
+ <ItemDefinitionGroup>
+ <InternalsVisibleTo>
+ <Visible>false</Visible>
+ </InternalsVisibleTo>
+ </ItemDefinitionGroup>
+
+ <Target Name="PrepareGenerateInternalsVisibleToFile" Condition="'@(InternalsVisibleTo)' != ''">
+ <ItemGroup>
+ <_InternalsVisibleToAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute">
+ <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' != ''">%(InternalsVisibleTo.Identity), PublicKey=%(InternalsVisibleTo.Key)</_Parameter1>
+ <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' == '' and '$(PublicKey)' != ''">%(InternalsVisibleTo.Identity), PublicKey=$(PublicKey)</_Parameter1>
+ <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' == '' and '$(PublicKey)' == ''">%(InternalsVisibleTo.Identity)</_Parameter1>
+ </_InternalsVisibleToAttribute>
+ </ItemGroup>
+ </Target>
+
+ <!--
+ Dependency on PrepareForBuild is necessary so that we don't accidentally get ordered before it.
+ We rely on PrepareForBuild to create the IntermediateOutputDirectory if it doesn't exist.
+ -->
+ <Target Name="GenerateInternalsVisibleToFile"
+ Inputs="$(MSBuildThisFileFullPath);$(MSBuildProjectFile)"
+ Outputs="$(GeneratedInternalsVisibleToFile)"
+ DependsOnTargets="PrepareGenerateInternalsVisibleToFile;PrepareForBuild"
+ Condition="'@(InternalsVisibleTo)' != ''"
+ BeforeTargets="CoreCompile">
+
+ <WriteCodeFragment AssemblyAttributes="@(_InternalsVisibleToAttribute)"
+ Language="$(Language)"
+ OutputFile="$(GeneratedInternalsVisibleToFile)">
+ <Output TaskParameter="OutputFile" ItemName="CompileBefore" Condition="'$(Language)' == 'F#'" />
+ <Output TaskParameter="OutputFile" ItemName="Compile" Condition="'$(Language)' != 'F#'" />
+ <Output TaskParameter="OutputFile" ItemName="FileWrites" />
+ </WriteCodeFragment>
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/GenerateResxSource.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/GenerateResxSource.targets
new file mode 100755
index 0000000000..986cdd4c5f
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/GenerateResxSource.targets
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ Generates a class source for EmbeddedResource whose GenerateSource property is set to true.
+ The source file is generated to intermediate output dir to avoid polluting the source tree.
+ See https://github.com/dotnet/sdk/issues/94 that tracks productization of this code.
+ -->
+
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.GenerateResxSource" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+
+ <!-- Set the Generator metadata so that VS triggers design-time build whenever the .resx file is saved -->
+ <ItemGroup>
+ <EmbeddedResource Update="@(EmbeddedResource)">
+ <GenerateSource Condition="'%(Extension)' == '.resx' and '%(GenerateSource)' == '' and '$(GenerateResxSource)' == 'true'">true</GenerateSource>
+ <Generator Condition="'%(Extension)' == '.resx' and '%(Generator)' == '' and ('%(GenerateSource)' == 'true' or ('%(GenerateSource)' == '' and '$(GenerateResxSource)' == 'true') )">MSBuild:_GenerateResxSource</Generator>
+ </EmbeddedResource>
+ </ItemGroup>
+
+ <Target Name="_GenerateResxSource"
+ BeforeTargets="CoreCompile"
+ DependsOnTargets="PrepareResourceNames;
+ _GetEmbeddedResourcesWithSourceGeneration;
+ _BatchGenerateResxSource">
+ <ItemGroup>
+ <GeneratedResxSource Include="@(EmbeddedResourceSGResx->'%(SourceOutputPath)')" />
+ <FileWrites Include="@(GeneratedResxSource)" />
+ <Compile Include="@(GeneratedResxSource)" />
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_CustomizeResourceNames"
+ BeforeTargets="PrepareResourceNames">
+ <ItemGroup>
+ <EmbeddedResource>
+ <ManifestResourceName Condition="'%(EmbeddedResource.Namespace)' != ''">%(EmbeddedResource.Namespace).%(EmbeddedResource.Filename)</ManifestResourceName>
+ </EmbeddedResource>
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_BatchGenerateResxSource"
+ Inputs="@(EmbeddedResourceSGResx)"
+ Outputs="%(EmbeddedResourceSGResx.SourceOutputPath)">
+
+ <Microsoft.DotNet.Arcade.Sdk.GenerateResxSource
+ Language="$(Language)"
+ ResourceFile="%(EmbeddedResourceSGResx.FullPath)"
+ ResourceName="%(EmbeddedResourceSGResx.ManifestResourceName)"
+ ResourceClassName="%(EmbeddedResourceSGResx.ClassName)"
+ AsConstants="%(EmbeddedResourceSGResx.GenerateResourcesCodeAsConstants)"
+ OmitGetResourceString="$(GenerateResxSourceOmitGetResourceString)"
+ IncludeDefaultValues="$(GenerateResxSourceIncludeDefaultValues)"
+ EmitFormatMethods="$(GenerateResxSourceEmitFormatMethods)"
+ OutputPath="%(EmbeddedResourceSGResx.SourceOutputPath)" />
+ </Target>
+
+ <Target Name="_GetEmbeddedResourcesWithSourceGeneration" Condition="'@(EmbeddedResource)' != ''">
+ <PropertyGroup>
+ <_EmbeddedResourceSourceExtension Condition="'$(Language)' == 'C#'">cs</_EmbeddedResourceSourceExtension>
+ <_EmbeddedResourceSourceExtension Condition="'$(Language)' == 'VB'">vb</_EmbeddedResourceSourceExtension>
+ <_EmbeddedResourceSourceExtension Condition="'$(Language)' == 'F#'">fs</_EmbeddedResourceSourceExtension>
+ </PropertyGroup>
+ <Error Text="GenerateResxSource doesn't support language: '$(Language)'" Condition="'$(_EmbeddedResourceSourceExtension)' == ''"/>
+ <ItemGroup>
+ <EmbeddedResourceSG Include="@(EmbeddedResource)" Condition="'%(EmbeddedResource.GenerateSource)' == 'true' and '%(EmbeddedResource.XlfLanguage)' == ''" />
+ <EmbeddedResourceSG Condition="'$(Language)' != 'F#'">
+ <SourceOutputPath Condition="'%(EmbeddedResourceSG.SourceOutputPath)' == '' AND '%(EmbeddedResourceSG.ClassName)' != ''">$(IntermediateOutputPath)%(EmbeddedResourceSG.ClassName).$(_EmbeddedResourceSourceExtension)</SourceOutputPath>
+ <SourceOutputPath Condition="'%(EmbeddedResourceSG.SourceOutputPath)' == '' AND '%(EmbeddedResourceSG.ClassName)' == ''">$(IntermediateOutputPath)%(EmbeddedResourceSG.ManifestResourceName).$(_EmbeddedResourceSourceExtension)</SourceOutputPath>
+ </EmbeddedResourceSG>
+ <!-- Other source generators might exist, so create a separate group for the items that are set to use the generator from this targets file. -->
+ <EmbeddedResourceSGResx Include="@(EmbeddedResourceSG->WithMetadataValue('Generator', 'MSBuild:_GenerateResxSource'))" />
+ </ItemGroup>
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Imports.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Imports.targets
new file mode 100755
index 0000000000..8eea881fe7
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Imports.targets
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ Import NuGet targets to WPF temp projects (workaround for https://github.com/dotnet/sourcelink/issues/91)
+ -->
+ <Import Project="$(_WpfTempProjectNuGetFilePathNoExt).targets" Condition="'$(_WpfTempProjectNuGetFilePathNoExt)' != '' and Exists('$(_WpfTempProjectNuGetFilePathNoExt).targets')"/>
+
+ <!--
+ Some projects do not import Common targets, so BeforeCommonTargets.targets doesn't get imported.
+ (https://github.com/dotnet/arcade/issues/2676).
+ -->
+ <Import Project="BeforeCommonTargets.targets" Condition="'$(_ArcadeBeforeCommonTargetsImported)' != 'true' and '$(IsCrossTargetingBuild)' != 'true'"/>
+
+ <Import Project="ProjectDefaults.targets"/>
+ <Import Project="StrongName.targets"/>
+ <Import Project="GenerateInternalsVisibleTo.targets" />
+ <Import Project="GenerateResxSource.targets" />
+ <Import Project="Workarounds.targets"/>
+ <Import Project="RepositoryInfo.targets"/>
+ <Import Project="Version.targets"/>
+ <Import Project="Tests.targets" Condition="'$(DisableArcadeTestFramework)' != 'true'" />
+
+ <Import Project="Performance.targets" Condition="'$(DisableArcadeTestFramework)' != 'true'" />
+ <Import Project="Localization.targets" Condition="'$(UsingToolXliff)' == 'true'"/>
+ <Import Project="VisualStudio.targets" Condition="'$(UsingToolVSSDK)' == 'true' and ('$(IsVsixProject)' == 'true' or '$(IsSwixProject)' == 'true' or '$(GeneratePkgDefFile)' == 'true') and '$(MSBuildRuntimeType)' != 'Core'"/>
+ <Import Project="OptimizationData.targets" Condition="'$(UsingToolIbcOptimization)' == 'true'"/>
+ <Import Project="SymStore.targets" Condition="'$(ContinuousIntegrationBuild)' == 'true' and '$(OS)' == 'Windows_NT'"/>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/InstallDotNetCore.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/InstallDotNetCore.targets
new file mode 100755
index 0000000000..444a002de7
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/InstallDotNetCore.targets
@@ -0,0 +1,22 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.InstallDotNetCore" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+
+ <Target Name="InstallDotNetCore"
+ AfterTargets="Restore">
+ <PropertyGroup>
+ <_DotNetInstallScript>$(RepositoryEngineeringDir)common\dotnet-install.cmd</_DotNetInstallScript>
+ <_DotNetInstallScript Condition="'$(OS)' != 'Windows_NT'">$(RepositoryEngineeringDir)common\dotnet-install.sh</_DotNetInstallScript>
+ </PropertyGroup>
+
+ <Exec Condition="'$(OS)' != 'Windows_NT'"
+ Command="chmod +x &quot;$(_DotNetInstallScript)&quot;" />
+
+ <InstallDotNetCore
+ VersionsPropsPath="$(RepoRoot)eng\Versions.props"
+ GlobalJsonPath="$(RepoRoot)global.json"
+ DotNetInstallScript="$(_DotNetInstallScript)"
+ Platform="$(Platform)"/>
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/Apache-2.0.txt b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/Apache-2.0.txt
new file mode 100755
index 0000000000..d645695673
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/Apache-2.0.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/MIT.txt b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/MIT.txt
new file mode 100755
index 0000000000..fd0c88bdda
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/MIT.txt
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+*ignore-line*
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/MicrosoftDotNetLibrary.txt b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/MicrosoftDotNetLibrary.txt
new file mode 100755
index 0000000000..a02678fee1
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Licenses/MicrosoftDotNetLibrary.txt
@@ -0,0 +1,205 @@
+# MICROSOFT SOFTWARE LICENSE TERMS
+
+# MICROSOFT .NET LIBRARY
+
+These license terms are an agreement between Microsoft Corporation (or based on
+where you live, one of its affiliates) and you. They apply to the software
+named above. The terms also apply to any Microsoft services or updates for the
+software, except to the extent those have different terms.
+
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW.
+
+1. INSTALLATION AND USE RIGHTS.
+You may install and use any number of copies of the software to design, develop
+and test you're applications. You may modify, copy, distribute or deploy any
+.js files contained in the software as part of your applications.
+
+2. THIRD PARTY COMPONENTS. The software may include third party components with
+separate legal notices or governed by other agreements, as may be described in
+the ThirdPartyNotices file(s) accompanying the software.
+
+3. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+ a. DISTRIBUTABLE CODE.  In addition to the .js files described above, the
+ software is comprised of Distributable Code. "Distributable Code" is
+ code that you are permitted to distribute in programs you develop if you
+ comply with the terms below.
+
+ i. Right to Use and Distribute.
+ - You may copy and distribute the object code form of the software.
+ - Third Party Distribution. You may permit distributors of your programs
+ to copy and distribute the Distributable Code as part of those
+ programs.
+
+ ii. Distribution Requirements. For any Distributable Code you distribute,
+ you must
+ - use the Distributable Code in your programs and not as a standalone
+ distribution;
+ - require distributors and external end users to agree to terms that
+ protect it at least as much as this agreement;
+ - display your valid copyright notice on your programs; and
+ - indemnify, defend, and hold harmless Microsoft from any claims,
+ including attorneys' fees, related to the distribution or use of
+ your applications, except to the extent that any claim is based solely
+ on the Distributable Code.
+
+ iii. Distribution Restrictions. You may not
+ - alter any copyright, trademark or patent notice in the Distributable
+ Code;
+ - use Microsoft's trademarks in your programs' names or in a way that
+ suggests your programs come from or are endorsed by Microsoft;
+ - include Distributable Code in malicious, deceptive or unlawful
+ programs; or
+ - modify or distribute the source code of any Distributable Code so
+ that any part of it becomes subject to an Excluded License.
+ An Excluded License is one that requires, as a condition of use,
+ modification or distribution, that
+ - the code be disclosed or distributed in source code form; or
+ - others have the right to modify it.
+
+4. DATA.
+ a. Data Collection. The software may collect information about you and your
+ use of the software, and send that to Microsoft. Microsoft may use this
+ information to provide services and improve our products and services.
+ You may opt-out of many of these scenarios, but not all, as described in
+ the product documentation.  There are also some features in the software
+ that may enable you and Microsoft to collect data from users of your
+ applications. If you use these features, you must comply with applicable
+ law, including providing appropriate notices to users of your applications
+ together with a copy of Microsoft's privacy statement. Our privacy
+ statement is located at https://go.microsoft.com/fwlink/?LinkID=824704.
+ You can learn more about data collection and use in the help documentation
+ and our privacy statement. Your use of the software operates as your
+ consent to these practices.
+ b. Processing of Personal Data. To the extent Microsoft is a processor or
+ subprocessor of personal data in connection with the software, Microsoft
+ makes the commitments in the European Union General Data Protection
+ Regulation Terms of the Online Services Terms to all customers effective
+ May 25, 2018, at http://go.microsoft.com/?linkid=9840733.
+
+5. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only
+ gives you some rights to use the software. Microsoft reserves all other
+ rights. Unless applicable law gives you more rights despite this limitation,
+ you may use the software only as expressly permitted in this agreement.
+ In doing so, you must comply with any technical limitations in the software
+ that only allow you to use it in certain ways. You may not
+ - work around any technical limitations in the software;
+ - reverse engineer, decompile or disassemble the software, or otherwise
+ attempt to derive the source code for the software, except and to the
+ extent required by third party licensing terms governing use of certain
+ open source components that may be included in the software;
+ - remove, minimize, block or modify any notices of Microsoft or its suppliers
+ in the software;
+ - use the software in any way that is against the law; or
+ - share, publish, rent or lease the software, provide the software as a
+ stand-alone offering for others to use, or transfer the software or this
+ agreement to any third party.
+
+6. EXPORT RESTRICTIONS. You must comply with all domestic and international
+ export laws and regulations that apply to the software, which include
+ restrictions on destinations, end users, and end use. For further
+ information on export restrictions, visit www.microsoft.com/exporting.  
+
+7. SUPPORT SERVICES. Because this software is "as is," we may not provide
+ support services for it.
+
+8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates,
+ Internet-based services and support services that you use, are the entire
+ agreement for the software and support services.
+
+9. APPLICABLE LAW.  If you acquired the software in the United States,
+ Washington law applies to interpretation of and claims for breach of this
+ agreement, and the laws of the state where you live apply to all other
+ claims. If you acquired the software in any other country, its laws apply.
+
+10. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal
+ rights. You may have other rights, including consumer rights, under
+ the laws of your state or country. Separate and apart from your relationship
+ with Microsoft, you may also have rights with respect to the party from
+ which you acquired the software. This agreement does not change those other
+ rights if the laws of your state or country do not permit it to do so.
+ For example, if you acquired the software in one of the below regions, or
+ mandatory country law applies, then the following provisions apply to you:
+ a) Australia. You have statutory guarantees under the Australian Consumer Law
+ and nothing in this agreement is intended to affect those rights.
+ b) Canada. If you acquired this software in Canada, you may stop receiving
+ updates by turning off the automatic update feature, disconnecting your
+ device from the Internet (if and when you re-connect to the Internet,
+ however, the software will resume checking for and installing updates),
+ or uninstalling the software. The product documentation, if any, may also
+ specify how to turn off updates for your specific device or software.
+ c) Germany and Austria.
+ (i) Warranty. The software will perform substantially as described in any
+ Microsoft materials that accompany it. However, Microsoft gives no
+ contractual guarantee in relation to the software.
+ (ii) Limitation of Liability. In case of intentional conduct, gross
+ negligence, claims based on the Product Liability Act, as well as in
+ case of death or personal or physical injury, Microsoft is liable
+ according to the statutory law.
+
+ Subject to the foregoing clause (ii), Microsoft will only be liable for slight
+ negligence if Microsoft is in breach of such material contractual obligations,
+ the fulfillment of which facilitate the due performance of this agreement, the
+ breach of which would endanger the purpose of this agreement and the
+ compliance with which a party may constantly trust in (so-called
+ "cardinal obligations"). In other cases of slight negligence, Microsoft will
+ not be liable for slight negligence
+
+11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED "AS-IS." YOU BEAR THE RISK
+ OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS.
+ TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NON-INFRINGEMENT.
+
+12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM
+ MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT
+ RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL,
+ INDIRECT OR INCIDENTAL DAMAGES.
+
+This limitation applies to (a) anything related to the software, services,
+content (including code) on third party Internet sites, or third party
+applications; and (b) claims for breach of contract, breach of warranty,
+guarantee or condition, strict liability, negligence, or other tort to the
+extent permitted by applicable law.
+
+It also applies even if Microsoft knew or should have known about the possibility
+of the damages. The above limitation or exclusion may not apply to you because
+your state or country may not allow the exclusion or limitation of incidental,
+consequential or other damages.
+Please note: As this software is distributed in Quebec, Canada, some of the
+clauses in this agreement are provided below in French.
+Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses
+dans ce contrat sont fournies ci-dessous en français.
+EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert «tel quel».
+Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft
+n'accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits
+additionnels en vertu du droit local sur la protection des consommateurs,
+que ce contrat ne peut modifier. La ou elles sont permises par le droit locale,
+les garanties implicites de qualité marchande, d'adéquation à un usage
+particulier et d'absence de contrefaçon sont exclues.
+LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES
+DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une
+indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US.
+Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages,
+y compris les dommages spéciaux, indirects ou accessoires et pertes de
+bénéfices.
+Cette limitation concerne:
+- tout ce qui est relié au logiciel, aux services ou au contenu (y compris le
+ code) figurant sur des sites Internet tiers ou dans des programmes tiers; et
+- les réclamations au titre de violation de contrat ou de garantie, ou au titre
+ de responsabilité stricte, de négligence ou d'une autre faute dans la limite
+ autorisée par la loi en vigueur.
+Elle s'applique également, même si Microsoft connaissait ou devrait connaître
+l'éventualité d'un tel dommage. Si votre pays n'autorise pas l'exclusion ou
+la limitation de responsabilité pour les dommages indirects, accessoires ou
+de quelque nature que ce soit, il se peut que la limitation ou l'exclusion
+ci-dessus ne s'appliquera pas à votre égard.
+EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous
+pourriez avoir d'autres droits prévus par les lois de votre pays. Le présent
+contrat ne modifie pas les droits que vous confèrent les lois de votre pays si
+celles-ci ne le permettent pas. \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Localization.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Localization.targets
new file mode 100755
index 0000000000..2c06fa4943
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Localization.targets
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ When not building in CI, automatically sync .xlf files to .resx files on build.
+ Otherwise, let the build fail to catch .xlf files that are not up-to-date.
+ -->
+
+ <PropertyGroup>
+ <!--
+ It is only intended to automatically run update during dev cycle. However, it will fail the build on CI if the XLF file is not updated.
+ XLF file should be checked in and loc team will update the XLF it with translated version.
+ -->
+ <UpdateXlfOnBuild Condition="'$(ContinuousIntegrationBuild)' != 'true'">true</UpdateXlfOnBuild>
+
+ <!--
+ Use Satellite assembly generation task from Microsoft.NET.Sdk even when building with
+ full Framework MSBuild. This will support public signing, is deterministic, and always
+ generates them as AnyCPU.
+ -->
+ <GenerateSatelliteAssembliesForCore Condition="'$(GenerateSatelliteAssembliesForCore)' == ''">true</GenerateSatelliteAssembliesForCore>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="XliffTasks" Version="$(XliffTasksVersion)" PrivateAssets="all" IsImplicitlyDefined="true" Condition="'$(IsShippingAssembly)' == 'true'" />
+ </ItemGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/NativeVersion.rc b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/NativeVersion.rc
new file mode 100755
index 0000000000..c8569894ea
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/NativeVersion.rc
@@ -0,0 +1,41 @@
+#include "_Version.h"
+
+#include <windows.h>
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION VER_FILEVERSION
+PRODUCTVERSION VER_PRODUCTVERSION
+FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+FILEFLAGS VER_DEBUG
+FILEOS VOS__WINDOWS32
+FILETYPE VFT_DLL
+FILESUBTYPE VFT2_UNKNOWN
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ BEGIN
+ VALUE "CompanyName", VER_COMPANYNAME_STR
+ VALUE "FileDescription", VER_FILEDESCRIPTION_STR
+ VALUE "FileVersion", VER_FILEVERSION_STR
+ VALUE "InternalName", VER_INTERNALNAME_STR
+ VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
+ VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
+ VALUE "ProductName", VER_PRODUCTNAME_STR
+ VALUE "ProductVersion", VER_PRODUCTVERSION_STR
+ END
+ END
+
+ BLOCK "VarFileInfo"
+ BEGIN
+ /* The following line should only be modified for localized versions. */
+ /* It consists of any number of WORD,WORD pairs, with each pair */
+ /* describing a language,codepage combination supported by the file. */
+ /* */
+ /* For example, a file might have values "0x409,1252" indicating that it */
+ /* supports English language (0x409) in the Windows ANSI codepage (1252). */
+
+ VALUE "Translation", 0x409, 1252
+
+ END
+END
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/OptimizationData.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/OptimizationData.targets
new file mode 100755
index 0000000000..cd36e931fb
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/OptimizationData.targets
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ Properties:
+ IbcOptimizationDataDir The directory containing IBC optimization data. Optimization data are not applied if unset.
+ EnableNgenOptimization Set to true to enable NGEN optimization (partial or full).
+ EnableNgenOptimizationLogDetails Set to true to enable NGEN method logging output
+ ApplyNgenOptimization Set to 'partial' or 'full' in a project to embed partial/full NGEN optimization data to the built binary.
+
+ Obsolete (https://github.com/dotnet/arcade/issues/2092):
+ EnablePartialNgenOptimization Set to true to enable Partial NGEN optimization data embedding.
+ ApplyPartialNgenOptimization Set to true in a project to apply Partial NGEN optimization data to the built binary.
+
+ Items:
+ OptimizeAssembly Set of assemblies to apply Partial NGEN optimization data to.
+ -->
+
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.Unsign" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.GroupItemsBy" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.ExtractNgenMethodList" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+
+ <PropertyGroup>
+ <PostCompileBinaryModificationSentinelFile>$(IntermediateOutputPath)$(TargetFileName).pcbm</PostCompileBinaryModificationSentinelFile>
+
+ <!-- TODO: remove (https://github.com/dotnet/arcade/issues/2092) -->
+ <EnablePartialNgenOptimization Condition="'$(EnablePartialNgenOptimization)' == '' and '$(Configuration)' == 'Release' and '$(OfficialBuild)' == 'true'">true</EnablePartialNgenOptimization>
+
+ <EnableNgenOptimization Condition="'$(EnableNgenOptimization)' == ''">$(EnablePartialNgenOptimization)</EnableNgenOptimization>
+ <EnableNgenOptimizationLogDetails Condition="'$(EnableNgenOptimizationLogDetails)' == ''">$(UsingToolVisualStudioIbcTraining)</EnableNgenOptimizationLogDetails>
+ <ApplyNgenOptimization Condition="'$(ApplyPartialNgenOptimization)' == 'true'">partial</ApplyNgenOptimization>
+ <_IbcMergeXmlOutputDir>$(ArtifactsTmpDir)ibcxml</_IbcMergeXmlOutputDir>
+ </PropertyGroup>
+
+ <!--
+ We need to write out this sentinel file so that when ApplyOptimizations runs and compares the intermediate assembly location
+ against itself the PostCompileBinaryModificationSentinelFile will have a newer timestamp allowing the target to be run.
+ -->
+ <Target Name="PostCompileBinaryModification"
+ AfterTargets="CoreCompile"
+ DependsOnTargets="_InitializeAssemblyOptimizationWithTargetAssembly;ApplyOptimizations"
+ Condition="'$(IsWpfTempProject)' != 'true' and '$(EnableNgenOptimization)' == 'true' and '$(ApplyNgenOptimization)' != ''"
+ Inputs="$(MSBuildAllProjects);@(IntermediateAssembly)"
+ Outputs="@(IntermediateAssembly);$(PostCompileBinaryModificationSentinelFile)">
+
+ <!-- Write out a sentinel timestamp file to prevent unnecessary work in incremental builds. -->
+ <Touch AlwaysCreate="true" Files="$(PostCompileBinaryModificationSentinelFile)" />
+
+ <ItemGroup>
+ <FileWrites Include="$(PostCompileBinaryModificationSentinelFile)" />
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_InitializeAssemblyOptimizationWithTargetAssembly">
+ <ItemGroup>
+ <OptimizeAssembly Include="@(IntermediateAssembly)" TargetFramework="$(TargetFramework)" />
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_LocateIbcMerge">
+ <PropertyGroup>
+ <_IbcMergePath>$(NuGetPackageRoot)microsoft.dotnet.ibcmerge\$(MicrosoftDotNetIBCMergeVersion)\tools\netcoreapp2.0\ibcmerge.dll</_IbcMergePath>
+
+ <_RunIbcMerge>false</_RunIbcMerge>
+ <_RunIbcMerge Condition="'$(OfficialBuild)' == 'true' or Exists('$(_IbcMergePath)')">true</_RunIbcMerge>
+ </PropertyGroup>
+ </Target>
+
+ <Target Name="_CalculateIbcMergeInvocations">
+
+ <Error Text="Unexpected value specified for NgenOptimization: '$(ApplyNgenOptimization)'"
+ Condition="'$(ApplyNgenOptimization)' != 'partial' and '$(ApplyNgenOptimization)' != 'full'"/>
+
+ <Error Text="Directory specified in IbcOptimizationDataDir does not exist: '$(IbcOptimizationDataDir)'"
+ Condition="!Exists('$(IbcOptimizationDataDir)')" />
+
+ <Error Text="IbcOptimizationDataDir must end with slash"
+ Condition="!HasTrailingSlash('$(IbcOptimizationDataDir)')"/>
+
+ <ItemGroup>
+ <!--
+ Find all .ibc files generated for assemblies to optimize.
+
+ The optimization data directory has the following structure:
+ $(IbcOptimizationDataDir)path\{AssemblyFileName}\{AssemblyFileName}
+ $(IbcOptimizationDataDir)path\{AssemblyFileName}\Scenario1.ibc
+ $(IbcOptimizationDataDir)path\{AssemblyFileName}\Scenario2.ibc
+
+ One assembly might be copied to multiple subdirectories (e.g. in MSBuild and in IDE).
+ We assume that these copies are the same and merge all scenarios together.
+ We could produce multiple different assemblies with IBC data embedded if there
+ was a significant benefit in optimizing them separately.
+ This would however require a more complicated setup authoring.
+ -->
+ <_IbcFile Include="$(IbcOptimizationDataDir)**\%(OptimizeAssembly.FileName)%(OptimizeAssembly.Extension)\*.ibc"
+ OptimizeAssemblyPath="%(OptimizeAssembly.Identity)"
+ TargetFramework="%(OptimizeAssembly.TargetFramework)" />
+
+ <_AssemblyWithoutRawIbcData Include="@(OptimizeAssembly)" Exclude="@(_IbcFile->'%(OptimizeAssemblyPath)')" />
+
+ <_IbcFile>
+ <PreviousAssemblyDir>$([System.IO.Path]::GetDirectoryName('%(Identity)'))</PreviousAssemblyDir>
+ <AssemblyFileName>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName('%(Identity)'))))</AssemblyFileName>
+ </_IbcFile>
+
+ <_IbcFileByAssemblyName Include="@(_IbcFile->'%(AssemblyFileName)')"
+ IbcFiles="%(_IbcFile.Identity)"
+ PreviousAssemblyPath="%(_IbcFile.PreviousAssemblyDir)\%(_IbcFile.AssemblyFileName)"
+ PreviousAssemblyCopyPath="$(ArtifactsTmpDir)OptimizedAssemblies\$([System.Guid]::NewGuid())"
+ OptimizeAssemblyPath="%(_IbcFile.OptimizeAssemblyPath)"
+ TargetFramework="%(_IbcFile.TargetFramework)"
+ XmlOutputPath="$(_IbcMergeXmlOutputDir)\%(_IbcFile.AssemblyFileName).$([System.Guid]::NewGuid()).temp.ibc.xml" />
+ </ItemGroup>
+
+ <Error Text="No optimization data found for assemblies: @(_AssemblyWithoutRawIbcData, ', ')"
+ Condition="'@(_AssemblyWithoutRawIbcData)' != ''" />
+
+ <Microsoft.DotNet.Arcade.Sdk.GroupItemsBy Items="@(_IbcFileByAssemblyName)" GroupMetadata="IbcFiles">
+ <Output TaskParameter="GroupedItems" ItemName="_AssemblyWithRawIbcData" />
+ </Microsoft.DotNet.Arcade.Sdk.GroupItemsBy>
+
+ <PropertyGroup>
+ <_PartialNgenArg/>
+ <_PartialNgenArg Condition="'$(ApplyNgenOptimization)' == 'partial'">-partialNGEN</_PartialNgenArg>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_IbcMergeInvocation Include="%(_AssemblyWithRawIbcData.AssemblyFileName) [MergeRawToPrevious]">
+ <CopyFilesSource>%(_AssemblyWithRawIbcData.PreviousAssemblyPath)</CopyFilesSource>
+ <CopyFilesDestination>%(_AssemblyWithRawIbcData.PreviousAssemblyCopyPath)</CopyFilesDestination>
+
+ <!--
+ -delete to delete data previously embedded in the binary.
+ -->
+ <IbcMergeArgs>-q -f $(_PartialNgenArg) -minify -delete -mo "%(_AssemblyWithRawIbcData.PreviousAssemblyCopyPath)" "$([MSBuild]::ValueOrDefault('%(_AssemblyWithRawIbcData.IbcFiles)', '').Replace(';', '" "'))"</IbcMergeArgs>
+ </_IbcMergeInvocation>
+
+ <_IbcMergeInvocation Include="%(_AssemblyWithRawIbcData.AssemblyFileName) [MergePreviousToCurrent]">
+ <!--
+ -delete to delete data previously embedded in the binary. This is a no-op for binaries produced by this build, but is needed for dependencies such as System.Reflection.Metadata.
+ -incremental to map data stored in the optimized binary, which comes from a previous build, to the new build of the binary.
+ -->
+ <IbcMergeArgs>-q -f $(_PartialNgenArg) -minify -delete -mo "%(_AssemblyWithRawIbcData.OptimizeAssemblyPath)" -incremental "%(_AssemblyWithRawIbcData.PreviousAssemblyCopyPath)"</IbcMergeArgs>
+ <UnsignFile>%(_AssemblyWithRawIbcData.OptimizeAssemblyPath)</UnsignFile>
+ <XmlOutputPath Condition="'$(EnableNgenOptimizationLogDetails)' == 'true'">%(_AssemblyWithRawIbcData.XmlOutputPath)</XmlOutputPath>
+ <TargetFramework>%(_AssemblyWithRawIbcData.TargetFramework)</TargetFramework>
+ </_IbcMergeInvocation>
+
+ <_IbcMergeInvocation>
+ <IbcMergeArgs Condition="'%(_IbcMergeInvocation.XmlOutputPath)' != ''">%(_IbcMergeInvocation.IbcMergeArgs) -dxml "%(_IbcMergeInvocation.XmlOutputPath)"</IbcMergeArgs>
+ </_IbcMergeInvocation>
+ </ItemGroup>
+ </Target>
+
+ <!--
+ Merges optimization data to assemblies specified in OptimizeAssembly item group.
+
+ Non-incremental. Calling targets need to handle incremental build if necessary.
+ Runs during any CI build. Performs the actual merge only when IBCMerge tool is available. It is expected to be available in an official build.
+ -->
+ <Target Name="ApplyOptimizations"
+ DependsOnTargets="_LocateIbcMerge;_CalculateIbcMergeInvocations"
+ Condition="'@(OptimizeAssembly)' != '' and '$(EnableNgenOptimization)' == 'true' and '$(ApplyNgenOptimization)' != ''">
+
+ <Message Text='IBCMerge tool will be run in an official build with arguments: %(_IbcMergeInvocation.IbcMergeArgs)'
+ Condition="'$(_RunIbcMerge)' != 'true'"
+ Importance="normal"/>
+
+ <MakeDir Directories="$(_IbcMergeXmlOutputDir)" />
+
+ <Copy SourceFiles="%(_IbcMergeInvocation.CopyFilesSource)"
+ DestinationFiles="%(_IbcMergeInvocation.CopyFilesDestination)"
+ Condition="'%(_IbcMergeInvocation.CopyFilesSource)' != ''" />
+
+ <Exec Command='"$(DotNetTool)" exec "$(_IbcMergePath)" %(_IbcMergeInvocation.IbcMergeArgs)' ConsoleToMSBuild="true" Condition="'$(_RunIbcMerge)' == 'true'">
+ <Output TaskParameter="ConsoleOutput" PropertyName="_IbcMergeOutput" />
+ </Exec>
+
+ <Message Text="$(_IbcMergeOutput)" Importance="low" />
+
+ <!-- Remove Authenticode signing record if present. -->
+ <Microsoft.DotNet.Arcade.Sdk.Unsign FilePath="%(_IbcMergeInvocation.UnsignFile)" Condition="'%(_IbcMergeInvocation.UnsignFile)' != ''" />
+ <Microsoft.DotNet.Arcade.Sdk.ExtractNgenMethodList
+ IbcXmlFilePath="%(_IbcMergeInvocation.XmlOutputPath)"
+ AssemblyFilePath="%(_IbcMergeInvocation.UnsignFile)"
+ AssemblyTargetFramework="%(_IbcMergeInvocation.TargetFramework)"
+ OutputDirectory="$(ArtifactsLogNgenDir)"
+ Condition="'%(_IbcMergeInvocation.XmlOutputPath)' != ''"/>
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Performance.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Performance.targets
new file mode 100755
index 0000000000..ad7da0dc12
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Performance.targets
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!-- The 'PerformanceTest' target is only viable for repos building their own performance-test harness. -->
+ <Target Name="PerformanceTest" Condition="'$(IsPerformanceTestProject)' == 'true'">
+ <PropertyGroup>
+ <PerfIterations Condition="'$(PerfIterations)' == ''">10</PerfIterations>
+ <PerfOutputDirectory Condition="'$(PerfOutputDirectory)' == ''">$(ArtifactsTestResultsDir)Performance</PerfOutputDirectory>
+ <PerfCollectionType Condition="'$(PerfCollectionType)' == ''">stopwatch</PerfCollectionType>
+ </PropertyGroup>
+
+ <MakeDir Directories="$(PerfOutputDirectory)"/>
+ <Message Text="Running performance tests: $(TargetPath)" Importance="high"/>
+
+ <!-- Call the repo built performance-test harness directly with the necessary parameters. -->
+ <Exec Command='"$(DotNetTool)" "$(TargetPath)" --perf:iterations $(PerfIterations) --perf:outputdir "$(PerfOutputDirectory)" --perf:collect $(PerfCollectionType)'
+ LogStandardErrorAsError="false"
+ WorkingDirectory="$(OutDir)"
+ IgnoreExitCode="true">
+
+ <Output TaskParameter="ExitCode" PropertyName="_TestErrorCode" />
+ </Exec>
+
+ <Error Text="Performance tests failed: ExitCode = $(_TestErrorCode)" Condition="'$(_TestErrorCode)' != '0'" />
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectDefaults.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectDefaults.props
new file mode 100755
index 0000000000..c2f8ddb677
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectDefaults.props
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <PropertyGroup>
+ <SignAssembly>true</SignAssembly>
+ <StrongNameKeyId>MicrosoftShared</StrongNameKeyId>
+ <ChecksumAlgorithm>SHA256</ChecksumAlgorithm>
+ <HighEntropyVA>true</HighEntropyVA>
+ <NeutralLanguage>en-US</NeutralLanguage>
+ <Company>Microsoft Corporation</Company>
+ <CopyrightMicrosoft>© Microsoft Corporation. All rights reserved.</CopyrightMicrosoft>
+ <CopyrightNetFoundation>© .NET Foundation and Contributors</CopyrightNetFoundation>
+ <Authors>Microsoft</Authors>
+ <Serviceable>true</Serviceable>
+ <DevelopmentDependency>false</DevelopmentDependency>
+ <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
+ <PublishRepositoryUrl>true</PublishRepositoryUrl>
+
+ <PackageIcon>Icon.png</PackageIcon>
+ <PackageIconFullPath>$(MSBuildThisFileDirectory)Assets\DotNetPackageIcon.png</PackageIconFullPath>
+
+ <!-- Disable the message indicating we are using a preview SDK. That is understood and by design -->
+ <SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
+
+ <!-- By default do not build NuGet package for a project. Project may override. -->
+ <IsPackable>false</IsPackable>
+
+ <!--
+ Official build:
+ - Build standalone Portable PDBs to reduce the size of the binaries.
+ - Convert Portable PDBs to Windows PDBs and publish the converted PDBs to Symbol Store to allow WinDBG,
+ Watson and other tools to find symbol format they understand.
+
+ PR validation build:
+ - Embed PDBs to make it easier to debug crash dumps captured on the CI machine.
+
+ Developer build:
+ - Embed PDBs to be consistent with PR validation build.
+ -->
+ <DebugType>portable</DebugType>
+ <DebugType Condition="'$(OfficialBuild)' != 'true'">embedded</DebugType>
+
+ <!--
+ This controls the places MSBuild will consult to resolve assembly references. This is
+ kept as minimal as possible to make our build reliable from machine to machine. Global
+ locations such as GAC, AssemblyFoldersEx, etc ... are deliberately removed from this
+ list as they will not be the same from machine to machine.
+ -->
+ <AssemblySearchPaths>
+ {HintPathFromItem};
+ {TargetFrameworkDirectory};
+ {RawFileName};
+ </AssemblySearchPaths>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <Language Condition="'$(MSBuildProjectExtension)' == '.csproj'">C#</Language>
+ <Language Condition="'$(MSBuildProjectExtension)' == '.vbproj'">VB</Language>
+ <Language Condition="'$(MSBuildProjectExtension)' == '.fsproj'">F#</Language>
+ <Language Condition="'$(MSBuildProjectExtension)' == '.vcxproj'">C++</Language>
+ </PropertyGroup>
+
+ <!--
+ When building WPF / VSIX projects MSBuild will create a temporary project with an extension of
+ tmp_proj. In that case the SDK is unable to determine the target language and cannot pick
+ the correct import. Need to set it explicitly here.
+ See https://github.com/dotnet/project-system/issues/1467
+ -->
+ <Choose>
+ <When Condition="'$(MSBuildProjectExtension)' != '.csproj' and '$(MSBuildProjectExtension)' != '.vbproj' and '$(MSBuildProjectExtension)' != '.shproj'">
+ <Choose>
+ <When Condition="'$(Language)' == 'C#' or Exists('$(MSBuildProjectDirectory)\$(AssemblyName).csproj')">
+ <PropertyGroup>
+ <Language>C#</Language>
+ <LanguageTargets>$(MSBuildToolsPath)\Microsoft.CSharp.targets</LanguageTargets>
+ </PropertyGroup>
+ </When>
+
+ <When Condition="'$(Language)' == 'VB' or Exists('$(MSBuildProjectDirectory)\$(AssemblyName).vbproj')">
+ <PropertyGroup>
+ <Language>VB</Language>
+ <LanguageTargets>$(MSBuildToolsPath)\Microsoft.VisualBasic.targets</LanguageTargets>
+ </PropertyGroup>
+ </When>
+ </Choose>
+ </When>
+ </Choose>
+
+ <Choose>
+ <!-- C# specific settings -->
+ <When Condition="'$(Language)' == 'C#'">
+ <PropertyGroup>
+ <NoWarn>$(NoWarn);1701;1702;1705;1591</NoWarn>
+ </PropertyGroup>
+ </When>
+
+ <!-- VB specific settings -->
+ <When Condition="'$(Language)' == 'VB'">
+ <PropertyGroup>
+ <MyType>Empty</MyType>
+ <OptionCompare>Binary</OptionCompare>
+ <OptionStrict>On</OptionStrict>
+ <RemoveIntegerChecks>true</RemoveIntegerChecks>
+ </PropertyGroup>
+ </When>
+
+ <!-- F# specific settings -->
+ <When Condition="'$(Language)' == 'F#'">
+ <PropertyGroup>
+ <!-- F# compiler doesn't support PathMap (see https://github.com/Microsoft/visualfsharp/issues/3812) -->
+ <DeterministicSourcePaths>false</DeterministicSourcePaths>
+ </PropertyGroup>
+ </When>
+
+ <!-- C++ specific settings -->
+ <When Condition="'$(Language)' == 'C++'">
+ <PropertyGroup>
+ <OutDir>$(OutputPath)</OutDir>
+
+ <!--
+ Disable NuGet package resolution during build - PackageReferences are not fully supported
+ Props and target files are still going to be imported from referenced packages.
+ -->
+ <ResolveNuGetPackages>false</ResolveNuGetPackages>
+ </PropertyGroup>
+ </When>
+
+ </Choose>
+
+ <!--
+ Implements proposal https://github.com/dotnet/designs/pull/33.
+ -->
+ <ItemGroup Condition="'$(UsingToolNetFrameworkReferenceAssemblies)' == 'true'">
+ <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="$(MicrosoftNetFrameworkReferenceAssembliesVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
+ </ItemGroup>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectDefaults.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectDefaults.targets
new file mode 100755
index 0000000000..78b40bec28
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectDefaults.targets
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <PropertyGroup>
+ <DeployProjectOutput Condition="'$(DeployProjectOutput)' == ''">$(__DeployProjectOutput)</DeployProjectOutput>
+
+ <!-- Run Deploy step by default when the solution is build directly via msbuild (from command line or VS). -->
+ <DeployProjectOutput Condition="'$(DeployProjectOutput)' == ''">true</DeployProjectOutput>
+ </PropertyGroup>
+
+ <!-- Default empty deploy target. -->
+ <Target Name="Deploy" AfterTargets="Build" Condition="'$(DeployProjectOutput)' == 'true'" />
+
+ <PropertyGroup>
+ <!--
+ Set PackageOutputPath based on the IsShippingPackage flag set by projects.
+ This distinction allows publishing tools to determine which assets to publish to official channels.
+
+ Visual Studio Build (aka CoreXT) packages are non-shipping packages that are used to insert binaries into an internal
+ Visual Studio repository that builds the product from components. These packages are not standard NuGet packages.
+ -->
+ <PackageOutputPath Condition="'$(IsShippingPackage)' == 'true'">$(ArtifactsShippingPackagesDir)</PackageOutputPath>
+ <PackageOutputPath Condition="'$(IsShippingPackage)' != 'true'">$(ArtifactsNonShippingPackagesDir)</PackageOutputPath>
+ <PackageOutputPath Condition="'$(IsVisualStudioBuildPackage)' == 'true'">$(VisualStudioBuildPackagesDir)</PackageOutputPath>
+
+ <IsSwixProject>false</IsSwixProject>
+ <IsSwixProject Condition="'$(VisualStudioInsertionComponent)' != '' and '$(IsVsixProject)' != 'true'">true</IsSwixProject>
+ </PropertyGroup>
+
+ <!--
+ Closed source license must be added to the package.
+ NuGet.org accepts only OSI or FSF approved licenses when using license type expression.
+ -->
+ <PropertyGroup Condition="'$(PackageLicenseExpressionInternal)' != '' and '$(IsPackable)' == 'true' and '$(PackageLicenseFile)' == ''">
+ <PackageLicenseFile>License.txt</PackageLicenseFile>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(PackageLicenseExpressionInternal)' != '' and '$(IsPackable)' == 'true'">
+ <None Include="$(MSBuildThisFileDirectory)Licenses\$(PackageLicenseExpressionInternal).txt" Pack="true" PackagePath="$(PackageLicenseFile)" Visible="false" />
+ </ItemGroup>
+
+ <!--
+ Include package icon in the package.
+ -->
+ <ItemGroup Condition="'$(PackageIcon)' != '' and '$(IsPackable)' == 'true'">
+ <None Include="$(PackageIconFullPath)" Pack="true" PackagePath="$(PackageIcon)" Visible="false" />
+ </ItemGroup>
+
+ <!--
+ Copyright used for binary assets (assemblies and packages) built by Microsoft must be Microsoft copyright.
+ Override any other value the project may set.
+ -->
+ <PropertyGroup>
+ <Copyright>$(CopyrightMicrosoft)</Copyright>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectLayout.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectLayout.props
new file mode 100755
index 0000000000..61121e29f4
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/ProjectLayout.props
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ Properties describing the layout of the repo specific to the current project.
+ -->
+
+ <Import Project="RepoLayout.props"/>
+
+ <PropertyGroup>
+ <OutDirName Condition="'$(OutDirName)' == ''">$(MSBuildProjectName)</OutDirName>
+
+ <BaseOutputPath Condition="'$(BaseOutputPath)' == ''">$([System.IO.Path]::GetFullPath('$(ArtifactsBinDir)$(OutDirName)\'))</BaseOutputPath>
+ <OutputPath Condition="'$(PlatformName)' == 'AnyCPU'">$(BaseOutputPath)$(Configuration)\</OutputPath>
+ <OutputPath Condition="'$(PlatformName)' != 'AnyCPU'">$(BaseOutputPath)$(PlatformName)\$(Configuration)\</OutputPath>
+
+ <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$([System.IO.Path]::GetFullPath('$(ArtifactsObjDir)$(OutDirName)\'))</BaseIntermediateOutputPath>
+ <IntermediateOutputPath Condition="'$(PlatformName)' == 'AnyCPU'">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
+ <IntermediateOutputPath Condition="'$(PlatformName)' != 'AnyCPU'">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
+ </PropertyGroup>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Publish.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Publish.proj
new file mode 100755
index 0000000000..e70e2b948d
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Publish.proj
@@ -0,0 +1,291 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project DefaultTargets="Publish">
+ <!--
+ Optional variables:
+ AzureFeedUrl Target Azure feed URL.
+ AzureAccountKey Azure account key.
+ DotNetFinalVersionKind Global property that stores the type of the current build: https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/Versioning.md#build-kind
+ DotNetOutputBlobFeedDir Source Build publishing directory
+ DotNetSymbolServerTokenMsdl Personal access token for MSDL symbol server. Available from variable group DotNet-Symbol-Publish.
+ DotNetSymbolServerTokenSymWeb Personal access token for SymWeb symbol server. Available from variable group DotNet-Symbol-Publish.
+ DotNetSymbolExpirationInDays Symbol expiration time in days (defaults to 10 years).
+ -->
+
+ <Import Project="BuildStep.props" />
+
+ <!-- Allow for repo specific Publish properties such as add additional files to be published -->
+ <Import Project="$(RepositoryEngineeringDir)Publishing.props" Condition="Exists('$(RepositoryEngineeringDir)Publishing.props')" />
+
+ <PropertyGroup>
+ <PublishToAzure>false</PublishToAzure>
+ <PublishToAzure Condition="'$(AzureFeedUrl)' != ''">true</PublishToAzure>
+
+ <PublishToSourceBuildStorage>false</PublishToSourceBuildStorage>
+ <PublishToSourceBuildStorage Condition="'$(DotNetOutputBlobFeedDir)' != ''">true</PublishToSourceBuildStorage>
+
+ <PublishToSymbolServer>false</PublishToSymbolServer>
+ <PublishToSymbolServer Condition="'$(UsingToolSymbolUploader)' == 'true' and '$(AzureFeedUrl)' == '' and '$(ContinuousIntegrationBuild)' == 'true'">true</PublishToSymbolServer>
+
+ <!-- Globally set property. -->
+ <IsStableBuild>false</IsStableBuild>
+ <IsStableBuild Condition="'$(DotNetFinalVersionKind)' == 'release'">true</IsStableBuild>
+
+ <AssetManifestOS Condition="'$(AssetManifestOS)' == ''">$(OS)</AssetManifestOS>
+
+ <AssetManifestFileName>$(AssetManifestOS)-$(PlatformName).xml</AssetManifestFileName>
+ <AssetManifestFilePath>$(ArtifactsLogDir)AssetManifest\$(AssetManifestFileName)</AssetManifestFilePath>
+
+ <SymbolPackagesDir>$(ArtifactsTmpDir)SymbolPackages\</SymbolPackagesDir>
+
+ <PublishToBlobFeedFlatContainer Condition="'$(PublishToBlobFeedFlatContainer)' == ''">false</PublishToBlobFeedFlatContainer>
+
+ <PublishDependsOnTargets Condition="$(PublishToAzure) and '$(PublishToAzureDevOpsArtifacts)' != 'true' and '$(PublishToBlobFeedFlatContainer)' != 'true'">$(PublishDependsOnTargets);PublishPackagesToBlobFeed</PublishDependsOnTargets>
+ <PublishDependsOnTargets Condition="$(PublishToAzure) and '$(PublishToAzureDevOpsArtifacts)' != 'true' and '$(PublishToBlobFeedFlatContainer)' == 'true'">$(PublishDependsOnTargets);PublishFilesToBlobFeed</PublishDependsOnTargets>
+ <PublishDependsOnTargets Condition="$(PublishToSymbolServer)">$(PublishDependsOnTargets);PublishSymbols</PublishDependsOnTargets>
+ <PublishDependsOnTargets Condition="$(PublishToSourceBuildStorage)">$(PublishDependsOnTargets);PublishToSourceBuildStorage</PublishDependsOnTargets>
+ <PublishDependsOnTargets Condition="$(PublishToAzure) and '$(PublishToAzureDevOpsArtifacts)' == 'true'">$(PublishDependsOnTargets);PublishToAzureDevOpsArtifacts</PublishDependsOnTargets>
+ <PublishDependsOnTargets>BeforePublish;$(PublishDependsOnTargets)</PublishDependsOnTargets>
+ </PropertyGroup>
+
+ <Import Project="$(NuGetPackageRoot)microsoft.dotnet.build.tasks.feed\$(MicrosoftDotNetBuildTasksFeedVersion)\build\Microsoft.DotNet.Build.Tasks.Feed.targets" Condition="$(PublishToAzure)"/>
+ <Import Project="$(NuGetPackageRoot)microsoft.symboluploader.build.task\$(MicrosoftSymbolUploaderBuildTaskVersion)\build\PublishSymbols.targets" Condition="$(PublishToSymbolServer)"/>
+
+ <Target Name="Publish"
+ DependsOnTargets="$(PublishDependsOnTargets)" />
+
+ <Target Name="BeforePublish">
+ <ItemGroup>
+ <ExistingSymbolPackages Include="$(ArtifactsShippingPackagesDir)**/*.symbols.nupkg" IsShipping="true" />
+ <ExistingSymbolPackages Include="$(ArtifactsNonShippingPackagesDir)**/*.symbols.nupkg" IsShipping="false" />
+
+ <PackagesToPublish Include="$(ArtifactsShippingPackagesDir)*.nupkg" IsShipping="true" />
+ <PackagesToPublish Include="$(ArtifactsNonShippingPackagesDir)*.nupkg" IsShipping="false" />
+ <PackagesToPublish Remove="@(ExistingSymbolPackages)" />
+
+ <PackagesToPublish Update="@(PackagesToPublish)">
+ <SymbolPackageToGenerate Condition="!Exists('%(RootDir)%(Directory)%(Filename).symbols.nupkg')">$(SymbolPackagesDir)%(Filename).symbols.nupkg</SymbolPackageToGenerate>
+ </PackagesToPublish>
+
+ <SymbolPackagesToGenerate Include="@(PackagesToPublish->'%(SymbolPackageToGenerate)')" Condition="'%(PackagesToPublish.SymbolPackageToGenerate)' != ''" Exclude="@(ExistingSymbolPackages -> '$(SymbolPackagesDir)%(Filename)%(Extension)')">
+ <OriginalPackage>%(PackagesToPublish.Identity)</OriginalPackage>
+ <IsShipping>%(PackagesToPublish.IsShipping)</IsShipping>
+ </SymbolPackagesToGenerate>
+ </ItemGroup>
+
+ <!--
+ If a symbol package doesn't exist yet we assume that the regular package contains Portable PDBs.
+ Such packages can act as symbol packages since they have the same structure.
+ We just need to copy them to *.symbols.nupkg.
+ -->
+ <MakeDir Condition="'@(SymbolPackagesToGenerate)' != ''" Directories="$(SymbolPackagesDir)" />
+ <Copy SourceFiles="@(SymbolPackagesToGenerate->'%(OriginalPackage)')" DestinationFiles="@(SymbolPackagesToGenerate)" />
+
+ <!-- Orchestrated Build blob storage -->
+ <ItemGroup>
+ <ItemsToPushToBlobFeed Include="@(PackagesToPublish);@(ExistingSymbolPackages);@(SymbolPackagesToGenerate)">
+ <ManifestArtifactData Condition="'%(IsShipping)' != 'true'">NonShipping=true</ManifestArtifactData>
+ </ItemsToPushToBlobFeed>
+ </ItemGroup>
+
+ <!--
+ Translate properties to those used by the feed package
+ https://github.com/dotnet/arcade/blob/master/src/Microsoft.DotNet.Build.Tasks.Feed/build/Microsoft.DotNet.Build.Tasks.Feed.targets
+ -->
+ <PropertyGroup>
+ <ExpectedFeedUrl>$(AzureFeedUrl)</ExpectedFeedUrl>
+ <AccountKey>$(AzureAccountKey)</AccountKey>
+ <ManifestRepoUri>$(BUILD_REPOSITORY_URI)</ManifestRepoUri>
+ <ManifestBranch>$(BUILD_SOURCEBRANCH)</ManifestBranch>
+ <ManifestBuildData>Location=$(AzureFeedUrl)</ManifestBuildData>
+ <ManifestBuildId>$(BUILD_BUILDNUMBER)</ManifestBuildId>
+ <ManifestCommit>$(BUILD_SOURCEVERSION)</ManifestCommit>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackagesToPublish Remove="@(PackagesToPublish)" />
+ <PackagesToPublish Include="@(ItemsToPushToBlobFeed)" />
+ </ItemGroup>
+ </Target>
+
+ <Target Name="PublishToSourceBuildStorage">
+ <!-- Source Build local storage -->
+ <Copy SourceFiles="@(PackagesToPublish)" DestinationFolder="$(DotNetOutputBlobFeedDir)packages" />
+ <Copy SourceFiles="@(ExistingSymbolPackages);@(SymbolPackagesToGenerate)" DestinationFolder="$(DotNetOutputBlobFeedDir)assets" />
+ </Target>
+
+ <Target Name="PublishToAzureDevOpsArtifacts">
+ <!--
+ Sadly AzDO doesn't have a variable to tell the account name. Also
+ the format of CollectionURI is not precise across different agent
+ configurations. Code below takes care of extracting the account
+ name from the CollectionURI in different formats.
+ -->
+ <PropertyGroup>
+ <CollectionUri>$(SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)</CollectionUri>
+
+ <!-- When we have dev.azure.com/<account>/ -->
+ <AzureDevOpsAccount Condition="$(CollectionUri.IndexOf('dev.azure.com')) >= 0">$(CollectionUri.Split('/')[3])</AzureDevOpsAccount>
+
+ <!-- When we have <account>.visualstudio.com -->
+ <AzureDevOpsAccount Condition="$(CollectionUri.IndexOf('visualstudio.com')) >= 0">$(CollectionUri.Split('.')[0].Split('/')[2])</AzureDevOpsAccount>
+
+ <TempWorkingDirectory>$(ArtifactsDir)\..\AssetsTmpDir\$([System.Guid]::NewGuid())</TempWorkingDirectory>
+ </PropertyGroup>
+
+ <!--
+ The new Maestro/BAR build model keeps separate Azure DevOps and GitHub build information.
+ The GitHub information will be extracted based on the Azure DevOps repository.
+ -->
+ <ItemGroup>
+ <NewManifestBuildData Include="InitialAssetsLocation=$(SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$(SYSTEM_TEAMPROJECT)/_apis/build/builds/$(BUILD_BUILDID)/artifacts" />
+ <NewManifestBuildData Include="AzureDevOpsBuildId=$(BUILD_BUILDID)" />
+ <NewManifestBuildData Include="AzureDevOpsBuildDefinitionId=$(SYSTEM_DEFINITIONID)" />
+ <NewManifestBuildData Include="AzureDevOpsAccount=$(AzureDevOpsAccount)" />
+ <NewManifestBuildData Include="AzureDevOpsProject=$(SYSTEM_TEAMPROJECT)" />
+ <NewManifestBuildData Include="AzureDevOpsBuildNumber=$(BUILD_BUILDNUMBER)" />
+ <NewManifestBuildData Include="AzureDevOpsRepository=$(BUILD_REPOSITORY_URI)" />
+ <NewManifestBuildData Include="AzureDevOpsBranch=$(BUILD_SOURCEBRANCH)" />
+
+ <!--
+ Adding this just to not fail the validation when creating the manifest.
+ TODO: Should be removed once PublishingUsingPipelines is the default.
+ -->
+ <NewManifestBuildData Include="Location=$(AzureFeedUrl)" />
+ </ItemGroup>
+
+ <!--
+ Due to interferences with validate-sdk.ps1 we need to copy a
+ few files to some temporary location until they are published as AzDO artifacts.
+ -->
+ <MakeDir Directories="$(TempWorkingDirectory)"/>
+
+ <PushToAzureDevOpsArtifacts
+ ItemsToPush="@(ItemsToPushToBlobFeed)"
+ ManifestBuildData="@(NewManifestBuildData)"
+ ManifestRepoUri="$(BUILD_REPOSITORY_URI)"
+ ManifestBranch="$(BUILD_SOURCEBRANCH)"
+ ManifestBuildId="$(BUILD_BUILDNUMBER)"
+ ManifestCommit="$(BUILD_SOURCEVERSION)"
+ IsStableBuild="$(IsStableBuild)"
+ PublishFlatContainer="false"
+ AssetManifestPath="$(AssetManifestFilePath)"
+ AssetsTemporaryDirectory="$(TempWorkingDirectory)" />
+
+ <Message
+ Text="##vso[artifact.upload containerfolder=ReleaseConfigs;artifactname=ReleaseConfigs]$(RepositoryEngineeringDir)common/PublishToPackageFeed.proj"
+ Importance="high" />
+
+ <!--
+ The publishing pipeline (implemented by PublishToPackageFeed.proj) will use the Tasks.Feed package
+ to publish packages. The version of Tasks.Feed used will come from DefaultVersions.props
+ -->
+ <Message
+ Text="##vso[artifact.upload containerfolder=ReleaseConfigs;artifactname=ReleaseConfigs]$(MSBuildThisFileDirectory)DefaultVersions.props"
+ Condition="Exists('$(MSBuildThisFileDirectory)DefaultVersions.props')"
+ Importance="high" />
+
+ <Copy
+ SourceFiles="$(AssetManifestFilePath)"
+ DestinationFolder="$(TempWorkingDirectory)\$(AssetManifestFileName)" />
+
+ <Message
+ Text="##vso[artifact.upload containerfolder=AssetManifests;artifactname=AssetManifests]$(TempWorkingDirectory)/$(AssetManifestFileName)"
+ Importance="high" />
+
+ <WriteLinesToFile
+ File="$(MSBuildThisFileDirectory)ArtifactsCategory.props"
+ Lines="&lt;Project>&lt;PropertyGroup>&lt;ArtifactsCategory>$(ArtifactsCategory)&lt;/ArtifactsCategory>&lt;/PropertyGroup>&lt;/Project>"
+ Overwrite="true"
+ Encoding="Unicode" />
+
+ <Message
+ Text="##vso[artifact.upload containerfolder=ReleaseConfigs;artifactname=ReleaseConfigs]$(MSBuildThisFileDirectory)ArtifactsCategory.props"
+ Importance="high" />
+
+
+ <!--
+ Publish Windows PDBs produced by SymStore.targets (by default, only shipping PDBs are placed there).
+ SymbolUploader doesn't support embedded PDBs yet, so let SymStore.targets do the conversion for now.
+ https://github.com/dotnet/core-eng/issues/3645
+ -->
+ <ItemGroup>
+ <FilesToPublishToSymbolServer Include="$(ArtifactsSymStoreDirectory)**\*.pdb"/>
+ </ItemGroup>
+
+ <Message
+ Text="##vso[artifact.upload containerfolder=PdbArtifacts;artifactname=PdbArtifacts]%(FilesToPublishToSymbolServer.Identity)"
+ Importance="high"
+ Condition="'@(FilesToPublishToSymbolServer)' != ''"/>
+
+ <Message
+ Text="##vso[artifact.upload containerfolder=ReleaseConfigs;artifactname=ReleaseConfigs]$(RepositoryEngineeringDir)common/PublishToSymbolServers.proj"
+ Importance="high" />
+
+ <Message
+ Text="##vso[artifact.upload containerfolder=ReleaseConfigs;artifactname=ReleaseConfigs]$(RepositoryEngineeringDir)common/CheckSymbols.ps1"
+ Importance="high" />
+
+ </Target>
+
+ <Target Name="PublishSymbols">
+ <PropertyGroup>
+ <DotNetSymbolExpirationInDays Condition="'$(DotNetSymbolExpirationInDays)' == ''">3650</DotNetSymbolExpirationInDays>
+ <DryRun>false</DryRun>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(OfficialBuild)' != 'true'">
+ <DryRun>true</DryRun>
+ <DotNetSymbolServerTokenSymWeb>DryRunPTA</DotNetSymbolServerTokenSymWeb>
+ <DotNetSymbolServerTokenMsdl>DryRunPTA</DotNetSymbolServerTokenMsdl>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <!--
+ Publish Windows PDBs produced by SymStore.targets (by default, only shipping PDBs are placed there).
+ SymbolUploader doesn't support embedded PDBs yet, so let SymStore.targets do the conversion for now.
+ https://github.com/dotnet/core-eng/issues/3645
+ -->
+ <FilesToPublishToSymbolServer Include="$(ArtifactsSymStoreDirectory)**\*.pdb"/>
+
+ <!--
+ Publish Portable PDBs contained in symbol packages.
+ -->
+ <PackagesToPublishToSymbolServer Include="@(ExistingSymbolPackages);@(SymbolPackagesToGenerate)"/>
+ </ItemGroup>
+
+ <PropertyGroup>
+ <PublishToSymbolServer Condition="'@(FilesToPublishToSymbolServer)' == '' and '@(PackagesToPublishToSymbolServer)' == ''">false</PublishToSymbolServer>
+ </PropertyGroup>
+
+ <!-- Symbol Uploader: MSDL -->
+ <Message Importance="High" Text="Publishing symbol packages to MSDL ..." Condition="$(PublishToSymbolServer)" />
+ <PublishSymbols PackagesToPublish="@(PackagesToPublishToSymbolServer)"
+ FilesToPublish="@(FilesToPublishToSymbolServer)"
+ PersonalAccessToken="$(DotNetSymbolServerTokenMsdl)"
+ SymbolServerPath="https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection"
+ ExpirationInDays="$(DotNetSymbolExpirationInDays)"
+ VerboseLogging="true"
+ DryRun="$(DryRun)"
+ ConvertPortablePdbsToWindowsPdbs="false"
+ PdbConversionTreatAsWarning=""
+ Condition="$(PublishToSymbolServer)"/>
+
+ <!--
+ Symbol Uploader: SymWeb
+ Watson, VS insertion testings and the typical internal dev usage require SymWeb.
+ Currently we need to call the task twice (https://github.com/dotnet/core-eng/issues/3489).
+ -->
+ <Message Importance="High" Text="Publishing symbol packages to SymWeb ..." Condition="$(PublishToSymbolServer)" />
+ <PublishSymbols PackagesToPublish="@(PackagesToPublishToSymbolServer)"
+ FilesToPublish="@(FilesToPublishToSymbolServer)"
+ PersonalAccessToken="$(DotNetSymbolServerTokenSymWeb)"
+ SymbolServerPath="https://microsoft.artifacts.visualstudio.com/DefaultCollection"
+ ExpirationInDays="$(DotNetSymbolExpirationInDays)"
+ VerboseLogging="true"
+ DryRun="$(DryRun)"
+ ConvertPortablePdbsToWindowsPdbs="false"
+ PdbConversionTreatAsWarning=""
+ Condition="$(PublishToSymbolServer)"/>
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepoLayout.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepoLayout.props
new file mode 100755
index 0000000000..aaf1671af0
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepoLayout.props
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ Properties describing the layout of the repo.
+ -->
+
+ <PropertyGroup>
+ <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
+ <Platform Condition="'$(Platform)' == ''">AnyCPU</Platform>
+ <PlatformName Condition="'$(PlatformName)' == ''">$(Platform)</PlatformName>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <!-- Respect environment variable for the NuGet Packages Root if set; otherwise, use the current default location -->
+ <NuGetPackageRoot Condition="'$(NuGetPackageRoot)' != ''">$([MSBuild]::NormalizeDirectory('$(NuGetPackageRoot)'))</NuGetPackageRoot>
+ <NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == '' and '$(NUGET_PACKAGES)' != ''">$([MSBuild]::NormalizeDirectory('$(NUGET_PACKAGES)'))</NuGetPackageRoot>
+ <NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == '' and '$(OS)' == 'Windows_NT'">$([MSBuild]::NormalizeDirectory('$(UserProfile)', '.nuget', 'packages'))</NuGetPackageRoot>
+ <NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == '' and '$(OS)' != 'Windows_NT'">$([MSBuild]::NormalizeDirectory('$(HOME)', '.nuget', 'packages'))</NuGetPackageRoot>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <RepoRoot Condition="'$(RepoRoot)' == ''">$([MSBuild]::NormalizeDirectory('$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'global.json'))'))</RepoRoot>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(DotNetTool)' == ''">
+ <!-- Respect environment variable for the .NET install directory if set; otherwise, use the repo default location -->
+ <DotNetRoot Condition="'$(DOTNET_INSTALL_DIR)' != ''">$(DOTNET_INSTALL_DIR)</DotNetRoot>
+ <DotNetRoot Condition="'$(DotNetRoot)' != ''">$([MSBuild]::NormalizeDirectory('$(DotNetRoot)'))</DotNetRoot>
+ <DotNetRoot Condition="'$(DotNetRoot)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', '.dotnet'))</DotNetRoot>
+
+ <!-- Let the exec task find dotnet on PATH -->
+ <DotNetRoot Condition="!Exists($(DotNetRoot))"/>
+
+ <DotNetTool Condition="'$(OS)' == 'Windows_NT'">$(DotNetRoot)dotnet.exe</DotNetTool>
+ <DotNetTool Condition="'$(OS)' != 'Windows_NT'">$(DotNetRoot)dotnet</DotNetTool>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(MonoTool)' == ''">
+ <MonoTool>mono</MonoTool>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <RepositoryEngineeringDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'eng'))</RepositoryEngineeringDir>
+ <RepositoryToolsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', '.tools'))</RepositoryToolsDir>
+
+ <VersionsPropsPath>$(RepositoryEngineeringDir)Versions.props</VersionsPropsPath>
+
+ <ArtifactsDir Condition="'$(ArtifactsDir)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</ArtifactsDir>
+ <ArtifactsToolsetDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'toolset'))</ArtifactsToolsetDir>
+ <ArtifactsObjDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'obj'))</ArtifactsObjDir>
+ <ArtifactsBinDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'bin'))</ArtifactsBinDir>
+ <ArtifactsLogDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'log', '$(Configuration)'))</ArtifactsLogDir>
+ <ArtifactsLogNgenDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsLogDir)', 'ngen'))</ArtifactsLogNgenDir>
+ <ArtifactsTmpDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'tmp', '$(Configuration)'))</ArtifactsTmpDir>
+ <ArtifactsTestResultsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'TestResults', '$(Configuration)'))</ArtifactsTestResultsDir>
+ <ArtifactsSymStoreDirectory>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'SymStore', '$(Configuration)'))</ArtifactsSymStoreDirectory>
+ <ArtifactsPackagesDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'packages', '$(Configuration)'))</ArtifactsPackagesDir>
+ <ArtifactsShippingPackagesDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsPackagesDir)', 'Shipping'))</ArtifactsShippingPackagesDir>
+ <ArtifactsNonShippingPackagesDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsPackagesDir)', 'NonShipping'))</ArtifactsNonShippingPackagesDir>
+ <VisualStudioSetupOutputPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'VSSetup', '$(Configuration)'))</VisualStudioSetupOutputPath>
+ <VisualStudioSetupInsertionPath>$([MSBuild]::NormalizeDirectory('$(VisualStudioSetupOutputPath)', 'Insertion'))</VisualStudioSetupInsertionPath>
+ <VisualStudioSetupIntermediateOutputPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'VSSetup.obj', '$(Configuration)'))</VisualStudioSetupIntermediateOutputPath>
+ <VisualStudioBuildPackagesDir>$([MSBuild]::NormalizeDirectory('$(VisualStudioSetupOutputPath)', 'DevDivPackages'))</VisualStudioBuildPackagesDir>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepositoryInfo.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepositoryInfo.targets
new file mode 100755
index 0000000000..550ad2987f
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepositoryInfo.targets
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ Include both GitHub and Azure DevOps (formerly VSTS) packages to enable SourceLink in repositories that mirror to Azure DevOps (formerly VSTS).
+ -->
+ <ItemGroup Condition="'$(DotNetBuildFromSource)' != 'true'">
+ <PackageReference Include="Microsoft.SourceLink.GitHub" Version="$(MicrosoftSourceLinkVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
+ <PackageReference Include="Microsoft.SourceLink.Vsts.Git" Version="$(MicrosoftSourceLinkVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
+ </ItemGroup>
+
+ <!--
+ Workarounds for Source Link not being available for source build.
+ Set the SourceRoot to repo root to facilitate deterministic source paths when SCM queries are disabled.
+ Set the RepositoryUrl to the Build.Repository.Uri Azure DevOps build variable if on CI, otherwise to local repo path.
+ -->
+
+ <!-- Disable SourceLink when building from source -->
+ <PropertyGroup Condition="'$(DotNetBuildFromSource)' == 'true'">
+ <EnableSourceControlManagerQueries>false</EnableSourceControlManagerQueries>
+ <EnableSourceLink>false</EnableSourceLink>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(EnableSourceControlManagerQueries)' != 'true'">
+ <SourceRoot Include="$(RepoRoot)" />
+ </ItemGroup>
+
+ <PropertyGroup Condition="'$(EnableSourceControlManagerQueries)' != 'true' and '$(RepositoryUrl)' == ''">
+ <RepositoryUrl Condition="'$(BUILD_REPOSITORY_URI)' != ''">$([System.Text.RegularExpressions.Regex]::Replace($(BUILD_REPOSITORY_URI), $(_TranslateUrlPattern), $(_TranslateUrlReplacement)))</RepositoryUrl>
+ <RepositoryUrl Condition="'$(BUILD_REPOSITORY_URI)' == ''">file://$(RepoRoot)</RepositoryUrl>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(EnableSourceControlManagerQueries)' != 'true' and '$(RepositoryCommit)' == ''">
+ <RepositoryCommit Condition="'$(BUILD_SOURCEVERSION)' != ''">$(BUILD_SOURCEVERSION)</RepositoryCommit>
+ <RepositoryCommit Condition="'$(BUILD_SOURCEVERSION)' == ''">0000000000000000000000000000000000000000</RepositoryCommit>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(EnableSourceControlManagerQueries)' != 'true' and '$(RepositoryType)' == ''">
+ <RepositoryType>git</RepositoryType>
+ </PropertyGroup>
+
+ <!--
+ The convention for names of Azure DevOps repositories mirrored from GitHub is "{GitHub org name}-{GitHub repository name}"
+ -->
+ <PropertyGroup>
+ <!-- There are quite a few git repo forms:
+ https://dnceng@dev.azure.com/dnceng/internal/_git/dotnet-arcade-services
+ https://dev.azure.com/dnceng/internal/_git/dotnet-arcade-services
+ https://dnceng.visualstudio.com/internal/_git/dotnet-arcade-services
+ dnceng@vs-ssh.visualstudio.com:v3/dnceng/internal/dotnet-arcade-services
+ git@ssh.dev.azure.com:v3/dnceng/internal/dotnet-arcade-services
+ -->
+ <_TranslateUrlPattern>(https://dnceng%40dev\.azure\.com/dnceng/internal/_git|https://dev\.azure\.com/dnceng/internal/_git|https://dnceng\.visualstudio\.com/internal/_git|dnceng%40vs-ssh\.visualstudio\.com:v3/dnceng/internal|git%40ssh\.dev\.azure\.com:v3/dnceng/internal)/([^/-]+)-(.+)</_TranslateUrlPattern>
+ <_TranslateUrlReplacement>https://github.com/$2/$3</_TranslateUrlReplacement>
+ </PropertyGroup>
+
+ <Target Name="_TranslateAzureDevOpsUrlToGitHubUrl"
+ DependsOnTargets="$(SourceControlManagerUrlTranslationTargets)"
+ BeforeTargets="SourceControlManagerPublishTranslatedUrls">
+
+ <PropertyGroup>
+ <ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace($(ScmRepositoryUrl), $(_TranslateUrlPattern), $(_TranslateUrlReplacement)))</ScmRepositoryUrl>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <SourceRoot Update="@(SourceRoot)">
+ <ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace(%(SourceRoot.ScmRepositoryUrl), $(_TranslateUrlPattern), $(_TranslateUrlReplacement)))</ScmRepositoryUrl>
+ </SourceRoot>
+ </ItemGroup>
+ </Target>
+
+ <!--
+ Generates and adds {PackageId}.SourceLink.targets file to the build directory of the source package.
+ -->
+
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.GenerateSourcePackageSourceLinkTargetsFile" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+
+ <PropertyGroup Condition="'$(IsPackable)' == 'true' and '$(IsSourcePackage)' == 'true' and '$(EnableSourceLink)' == 'true'">
+ <BeforePack>$(BeforePack);_AddSourcePackageSourceLinkFile</BeforePack>
+ </PropertyGroup>
+
+ <Target Name="_AddSourcePackageSourceLinkFile" DependsOnTargets="_GenerateSourcePackageSourceLinkFile">
+ <ItemGroup>
+ <!-- Add a packable item if the project builds the package with auto-generated .nuspec file -->
+ <None Include="$(_SourcePackageSourceLinkTargetsFilePath)" PackagePath="build" Pack="true" Condition="'$(NuspecFile)' == ''"/>
+
+ <!-- Include path in the nuspec properties if the project builds package using custom .nuspec -->
+ <NuspecProperty Include="SourceLinkTargetsFilePath=$(_SourcePackageSourceLinkTargetsFilePath)" Condition="'$(NuspecFile)' != ''"/>
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_CalculateGenerateSourcePackageSourceLinkFileOutputs">
+ <PropertyGroup>
+ <_SourcePackageSourceLinkTargetsFileName>$([MSBuild]::ValueOrDefault($(SourcePackageSourceLinkTargetsFileName), '$(PackageId).targets'))</_SourcePackageSourceLinkTargetsFileName>
+ <_SourcePackageSourceLinkTargetsFilePath>$(IntermediateOutputPath)$(_SourcePackageSourceLinkTargetsFileName)</_SourcePackageSourceLinkTargetsFilePath>
+ </PropertyGroup>
+ </Target>
+
+ <Target Name="_GenerateSourcePackageSourceLinkFile"
+ DependsOnTargets="InitializeSourceControlInformation;$(SourceLinkUrlInitializerTargets);_CalculateGenerateSourcePackageSourceLinkFileOutputs"
+ Inputs="$(MSBuildAllProjects)"
+ Outputs="$(_SourcePackageSourceLinkTargetsFilePath)">
+
+ <Microsoft.DotNet.Arcade.Sdk.GenerateSourcePackageSourceLinkTargetsFile
+ ProjectDirectory="$(MSBuildProjectDirectory)"
+ PackageId="$(PackageId)"
+ SourceRoots="@(SourceRoot)"
+ OutputPath="$(_SourcePackageSourceLinkTargetsFilePath)"/>
+
+ <ItemGroup>
+ <FileWrites Include="$(_SourcePackageSourceLinkTargetsFilePath)"/>
+ </ItemGroup>
+ </Target>
+
+ <!--
+ Validates repository-wide requirements.
+ MSBuild only evaluates the target project once per each set of values of global properties and caches the results.
+ -->
+ <Target Name="_RepositoryValidation" BeforeTargets="Build" Condition="'$(ContinuousIntegrationBuild)' == 'true'">
+ <MSBuild Projects="$(MSBuildThisFileDirectory)RepositoryValidation.proj"
+ Targets="Validate"
+ RemoveProperties="TargetFramework;Platform"
+ Properties="RepoRoot=$(RepoRoot);PackageLicenseExpression=$(PackageLicenseExpression);PackageLicenseExpressionInternal=$(PackageLicenseExpressionInternal);SuppressLicenseValidation=$(SuppressLicenseValidation)"
+ UseResultsCache="true" />
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepositoryValidation.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepositoryValidation.proj
new file mode 100755
index 0000000000..3592eb3005
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/RepositoryValidation.proj
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project DefaultTargets="Validate">
+
+ <Import Project="BuildTasks.props" />
+
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.ValidateLicense" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.GetLicenseFilePath" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+
+ <Target Name="Validate" DependsOnTargets="_ValidateLicenseFile" >
+ <Message Text="Repository validated." Importance="low" />
+ </Target>
+
+ <Target Name="_ValidateLicenseFile" Condition="('$(PackageLicenseExpression)' != '' or '$(PackageLicenseExpressionInternal)' != '') and '$(SuppressLicenseValidation)' != 'true'">
+
+ <Error Text="Can't specify value for both PackageLicenseExpression ('$(PackageLicenseExpression)') and PackageLicenseExpressionInternal ('$(PackageLicenseExpressionInternal)')"
+ Condition="'$(PackageLicenseExpression)' != '' and '$(PackageLicenseExpressionInternal)' != ''"/>
+
+ <PropertyGroup>
+ <_LicenseExpression>$(PackageLicenseExpression)</_LicenseExpression>
+ <_LicenseExpression Condition="'$(_LicenseExpression)' == ''">$(PackageLicenseExpressionInternal)</_LicenseExpression>
+
+ <_ExpectedLicensePath>$(MSBuildThisFileDirectory)Licenses\$(_LicenseExpression).txt</_ExpectedLicensePath>
+ </PropertyGroup>
+
+ <Error Text="Unknown license expression: '$(_LicenseExpression)'."
+ Condition="!Exists('$(_ExpectedLicensePath)')"/>
+
+ <Microsoft.DotNet.Arcade.Sdk.GetLicenseFilePath Directory="$(RepoRoot)">
+ <Output TaskParameter="Path" PropertyName="_RepositoryLicensePath"/>
+ </Microsoft.DotNet.Arcade.Sdk.GetLicenseFilePath>
+
+ <Microsoft.DotNet.Arcade.Sdk.ValidateLicense LicensePath="$(_RepositoryLicensePath)"
+ ExpectedLicensePath="$(_ExpectedLicensePath)" />
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Directory.Build.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Directory.Build.props
new file mode 100755
index 0000000000..4e52c5a690
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Directory.Build.props
@@ -0,0 +1,9 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project TreatAsLocalProperty="RepoRoot">
+ <PropertyGroup>
+ <RepoRoot>$([System.IO.Path]::GetFullPath('$(RepoRoot)/'))</RepoRoot>
+ </PropertyGroup>
+
+ <Import Project="../RepoLayout.props"/>
+ <Import Project="Versions.props"/>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Directory.Build.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Directory.Build.targets
new file mode 100755
index 0000000000..5d26408a98
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Directory.Build.targets
@@ -0,0 +1,3 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/GenerateBuildManifest.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/GenerateBuildManifest.proj
new file mode 100755
index 0000000000..2df4402477
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/GenerateBuildManifest.proj
@@ -0,0 +1,38 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Execute">
+ <!--
+ Optional variables:
+ AssetManifestFilePath Output file path for manifest file
+ PackagesToPublishPattern Property to declare a file glob for selecting the files to be pushed. (eg. $(OutputPath)*.zip)
+ -->
+ <!-- Allow repos to define sdk task properties -->
+ <Import Project="$(RepositoryEngineeringDir)GenerateBuildManifest.props" Condition="Exists('$(RepositoryEngineeringDir)GenerateBuildManifest.props')" />
+
+ <PropertyGroup>
+ <TargetFramework>net472</TargetFramework>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <AssetManifestFilePath Condition="'$(AssetManifestFilePath)' == ''">$(ArtifactsLogDir)AssetManifest\$(OS)-$(PlatformName).xml</AssetManifestFilePath>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(PackagesToPublishPattern)' != ''">
+ <ItemsToPush Remove="@(ItemsToPush)" />
+ <ItemsToPush Include="$(PackagesToPublishPattern)" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <PackageReference Include="microsoft.dotnet.build.tasks.feed" Version="$(MicrosoftDotNetBuildTasksFeedVersion)" GeneratePathProperty="true"/>
+ </ItemGroup>
+ <UsingTask TaskName="GenerateBuildManifest" AssemblyFile="$(PkgMicrosoft_DotNet_Build_Tasks_Feed)\tools\netcoreapp2.1\Microsoft.DotNet.Build.Tasks.Feed.dll" />
+
+ <Target Name="Execute">
+ <GenerateBuildManifest Artifacts="@(ItemsToPush)"
+ OutputPath="$(AssetManifestFilePath)"
+ BuildId="$(BUILD_BUILDNUMBER)"
+ BuildData="$(ManifestBuildData)"
+ RepoUri="$(BUILD_REPOSITORY_URI)"
+ RepoBranch="$(BUILD_SOURCEBRANCH)"
+ RepoCommit="$(BUILD_SOURCEVERSION)" />
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishArtifactsInManifest.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishArtifactsInManifest.proj
new file mode 100755
index 0000000000..8d08d0964b
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishArtifactsInManifest.proj
@@ -0,0 +1,80 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Execute">
+ <!--
+ The target in this file initially calls `SetupTargetFeeds.proj` to create the list of
+ target feed descriptors for the artifacts and then calls the `PublishArtifactsInManifest`
+ task (from Tasks.Feed) to publish the artifacts described in the informed build manifest.
+
+ Parameters:
+ - ManifestsBasePath
+ - BlobBasePath
+ - PackageBasePath
+ - BARBuildId
+ - MaestroApiEndpoint
+ - BuildAssetRegistryToken
+ - NugetPath
+
+ Parameters required by SetupTargetFeeds.proj:
+ - IsInternalBuild
+ - IsStableBuild
+ - RepositoryName
+ - CommitSha
+ - AzureStorageAccountName
+ - AzureStorageAccountKey
+ - AzureDevOpsFeedsBaseUrl
+ - ArtifactsCategory
+ - AzureStorageTargetFeedPAT
+
+ Optional parameters for SetupTargetFeeds.proj
+ - PublishInstallersAndChecksums : This control whether installers & checksums should be published to public feeds on public builds
+
+ Parameters for public builds:
+ - InstallersTargetStaticFeed
+ - InstallersAzureAccountKey
+ - ChecksumsTargetStaticFeed
+ - ChecksumsAzureAccountKey
+
+ Parameters for internal builds:
+ - InternalInstallersTargetStaticFeed
+ - InternalInstallersTargetStaticFeedKey
+ - InternalChecksumsTargetStaticFeed
+ - InternalChecksumsTargetStaticFeedKey
+ -->
+
+ <PropertyGroup>
+ <TargetFramework>netcoreapp2.1</TargetFramework>
+ </PropertyGroup>
+
+ <Import Project="SetupTargetFeeds.proj" />
+
+ <Target Name="Execute" DependsOnTargets="SetupTargetFeeds">
+ <Error Condition="'$(ManifestsBasePath)' == ''" Text="ManifestsBasePath is empty. Please provide the full path to asset manifest(s) directory." />
+ <Error Condition="'$(BlobBasePath)' == '' OR '$(PackageBasePath)' == ''" Text="A valid full path to BlobBasePath and PackageBasePath is required." />
+
+ <ItemGroup>
+ <ManifestFiles Include="$(ManifestsBasePath)\*.xml" />
+ </ItemGroup>
+
+ <Error
+ Condition="'@(ManifestFiles)' == ''"
+ Text="No manifest file was found in the provided path: $(ManifestsBasePath)" />
+
+ <!--
+ **Iterate** publishing assets from each manifest file.
+ -->
+ <PublishArtifactsInManifest
+ InternalBuild="$(IsInternalBuild)"
+ TargetFeedConfig="@(TargetFeedConfig)"
+ BARBuildId="$(BARBuildId)"
+ MaestroApiEndpoint="$(MaestroApiEndpoint)"
+ BuildAssetRegistryToken="$(BuildAssetRegistryToken)"
+ AssetManifestPath="%(ManifestFiles.Identity)"
+ BlobAssetsBasePath="$(BlobBasePath)"
+ PackageAssetsBasePath="$(PackageBasePath)"
+ NugetPath="$(NugetPath)"/>
+ </Target>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="$(MicrosoftDotNetBuildTasksFeedVersion)" />
+ </ItemGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishBuildAssets.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishBuildAssets.proj
new file mode 100755
index 0000000000..ec4de58cd5
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishBuildAssets.proj
@@ -0,0 +1,36 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Execute">
+ <!--
+ Required variables:
+ ManifestsPath Path to file containing manifest files.
+ BuildAssetRegistryToken Token required to insert metadata into BAR.
+ MaestroApiEndpoint Maestro's endpoint.
+ -->
+ <PropertyGroup>
+ <TargetFramework>net472</TargetFramework>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.DotNet.Maestro.Tasks" Version="$(MicrosoftDotNetMaestroTasksVersion)" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <_MicrosoftDotNetMaestroTasksBaseDir>$(NuGetPackageRoot)microsoft.dotnet.maestro.tasks\$(MicrosoftDotNetMaestroTasksVersion)\tools\</_MicrosoftDotNetMaestroTasksBaseDir>
+ <_MicrosoftDotNetMaestroTasksDir>$(_MicrosoftDotNetMaestroTasksBaseDir)net472</_MicrosoftDotNetMaestroTasksDir>
+ <_MicrosoftDotNetMaestroTasksDir Condition="'$(MSBuildRuntimeType)' == 'Core'">$(_MicrosoftDotNetMaestroTasksBaseDir)netcoreapp2.1</_MicrosoftDotNetMaestroTasksDir>
+ </PropertyGroup>
+
+ <UsingTask TaskName="PushMetadataToBuildAssetRegistry" AssemblyFile="$(_MicrosoftDotNetMaestroTasksDir)\Microsoft.DotNet.Maestro.Tasks.dll"/>
+
+ <Target Name="Execute">
+ <Error Text="The ManifestsPath property must be set on the command line." Condition="'$(ManifestsPath)' == ''" />
+ <Error Text="The BuildAssetRegistryToken property must be set on the command line." Condition="'$(BuildAssetRegistryToken)' == ''" />
+ <Error Text="The MaestroApiEndpoint property must be set on the command line." Condition="'$(MaestroApiEndpoint)' == ''" />
+
+ <PushMetadataToBuildAssetRegistry ManifestsPath="$(ManifestsPath)"
+ BuildAssetRegistryToken="$(BuildAssetRegistryToken)"
+ MaestroApiEndpoint="$(MaestroApiEndpoint)"
+ PublishUsingPipelines="$(PublishUsingPipelines)"
+ RepoRoot="$(RepoRoot)"/>
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishToPackageFeed.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishToPackageFeed.proj
new file mode 100755
index 0000000000..b19b17c1d0
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishToPackageFeed.proj
@@ -0,0 +1,73 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Execute">
+ <!--
+ This MSBuild file is intended to be used as the body of the default
+ publishing release pipeline. The release pipeline will use this file
+ to invoke the PushToStaticFeed task that will read the build asset
+ manifest and publish the assets described in the manifest to
+ informed target feeds.
+ -->
+
+ <PropertyGroup>
+ <TargetFramework>netcoreapp2.1</TargetFramework>
+ </PropertyGroup>
+
+ <Target Name="Execute">
+ <Error Condition="'$(ArtifactsCategory)' == ''" Text="ArtifactsCategory: The artifacts' category produced by the build wasn't provided." />
+ <Error Condition="'$(AccountKeyToStaticFeed)' == ''" Text="AccountKeyToStaticFeed: Account key for target feed wasn't provided." />
+ <Error Condition="'$(ManifestsBasePath)' == ''" Text="Full path to asset manifests directory wasn't provided." />
+ <Error Condition="'$(BlobBasePath)' == '' AND '$(PackageBasePath)' == ''" Text="A valid full path to BlobBasePath of PackageBasePath is required." />
+
+ <ItemGroup>
+ <!-- Include all manifests found in the manifest folder. -->
+ <ManifestFiles Include="$(ManifestsBasePath)*.xml" />
+ </ItemGroup>
+
+ <Error Condition="'@(ManifestFiles)' == ''" Text="No manifest file was found in the provided path: $(ManifestsBasePath)" />
+
+ <!--
+ For now the type of packages being published will be informed for the whole build.
+ Eventually this will be specified on a per package basis:
+ TODO: https://github.com/dotnet/arcade/issues/2266
+ -->
+ <PropertyGroup>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == '.NETCORE'">https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == '.NETCOREVALIDATION'">https://dotnetfeed.blob.core.windows.net/arcade-validation/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETCORE'">https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETCORETOOLING'">https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ENTITYFRAMEWORKCORE'">https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETEXTENSIONS'">https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'CORECLR'">https://dotnetfeed.blob.core.windows.net/dotnet-coreclr/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'CORESDK'">https://dotnetfeed.blob.core.windows.net/dotnet-sdk/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSINTERNAL'">https://dotnetfeed.blob.core.windows.net/dotnet-tools-internal/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSET'">https://dotnetfeed.blob.core.windows.net/dotnet-toolset/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'WINDOWSDESKTOP'">https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'NUGETCLIENT'">https://dotnetfeed.blob.core.windows.net/nuget-nugetclient/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETENTITYFRAMEWORK6'">https://dotnetfeed.blob.core.windows.net/aspnet-entityframework6/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETBLAZOR'">https://dotnetfeed.blob.core.windows.net/aspnet-blazor/index.json</TargetStaticFeed>
+ </PropertyGroup>
+
+ <Error
+ Condition="'$(TargetStaticFeed)' == ''"
+ Text="'$(ArtifactsCategory)' wasn't recognized as a valid artifact category. Valid categories are: '.NetCore' and '.NetCoreValidation'" />
+
+ <!-- Iterate publishing assets from each manifest file. -->
+ <PushArtifactsInManifestToFeed
+ ExpectedFeedUrl="$(TargetStaticFeed)"
+ AccountKey="$(AccountKeyToStaticFeed)"
+ BARBuildId="$(BARBuildId)"
+ MaestroApiEndpoint="$(MaestroApiEndpoint)"
+ BuildAssetRegistryToken="$(BuildAssetRegistryToken)"
+ Overwrite="$(OverrideAssetsWithSameName)"
+ PassIfExistingItemIdentical="$(PassIfExistingItemIdentical)"
+ MaxClients="$(MaxParallelUploads)"
+ UploadTimeoutInMinutes="$(MaxUploadTimeoutInMinutes)"
+ AssetManifestPath="%(ManifestFiles.Identity)"
+ BlobAssetsBasePath="$(BlobBasePath)"
+ PackageAssetsBasePath="$(PackageBasePath)"/>
+ </Target>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="$(MicrosoftDotNetBuildTasksFeedVersion)" />
+ </ItemGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishToSymbolServers.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishToSymbolServers.proj
new file mode 100755
index 0000000000..8eaf583545
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/PublishToSymbolServers.proj
@@ -0,0 +1,102 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Execute">
+ <!--
+ This MSBuild file is intended to be used as the body of the default
+ publishing release pipeline. The release pipeline will use this file
+ to invoke the PublishSymbols tasks to publish symbols to MSDL and SymWeb.
+
+ Parameters:
+
+ - PDBArtifactsDirectory : Full path to directory containing PDB files to be published.
+ - BlobBasePath : Full path containing *.symbols.nupkg packages to be published.
+ - DotNetSymbolServerTokenMsdl : PAT to access MSDL.
+ - DotNetSymbolServerTokenSymWeb : PAT to access SymWeb.
+ - DotNetSymbolExpirationInDays : Expiration days for published packages. Default is 3650.
+ - SymbolPublishingExclusionsFile : Path to file containing exclusion list to be used by Symbol Uploader.
+ -->
+
+ <PropertyGroup>
+ <TargetFramework>netcoreapp2.1</TargetFramework>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <RestoreSources>
+ https://api.nuget.org/v3/index.json;
+ https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
+ https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json;
+ https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json
+ </RestoreSources>
+ </PropertyGroup>
+
+ <Target Name="Execute">
+ <ItemGroup>
+ <FilesToPublishToSymbolServer Include="$(PDBArtifactsDirectory)\*.pdb"/>
+ <PackagesToPublishToSymbolServer Include="$(BlobBasePath)\*.symbols.nupkg"/>
+
+ <!--
+ These packages from Arcade-Services include some native libraries that
+ our current symbol uploader can't handle. Below is a workaround until
+ we get issue: https://github.com/dotnet/arcade/issues/2457 sorted.
+ -->
+ <PackagesToPublishToSymbolServer Remove="$(BlobBasePath)\Microsoft.DotNet.Darc.*" />
+ <PackagesToPublishToSymbolServer Remove="$(BlobBasePath)\Microsoft.DotNet.Maestro.Tasks.*" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <DotNetSymbolExpirationInDays Condition="'$(DotNetSymbolExpirationInDays)' == ''">3650</DotNetSymbolExpirationInDays>
+ <PublishToSymbolServer>true</PublishToSymbolServer>
+ <PublishToSymWeb Condition="'$(PublishToSymWeb)' == ''">true</PublishToSymWeb>
+ <PublishToMSDL Condition="'$(PublishToMSDL)' == ''">true</PublishToMSDL>
+ <PublishToSymbolServer Condition="'@(FilesToPublishToSymbolServer)' == '' and '@(PackagesToPublishToSymbolServer)' == ''">false</PublishToSymbolServer>
+ </PropertyGroup>
+
+ <Message
+ Importance="High"
+ Text="No symbol package(s) were found to publish."
+ Condition="$(PublishToSymbolServer) == false" />
+
+ <ReadLinesFromFile
+ File="$(SymbolPublishingExclusionsFile)"
+ Condition="'$(SymbolPublishingExclusionsFile)' != '' and Exists($(SymbolPublishingExclusionsFile))">
+ <Output
+ TaskParameter="Lines"
+ ItemName="PackageExcludeFiles"/>
+ </ReadLinesFromFile>
+
+ <!-- Symbol Uploader: MSDL -->
+ <Message Importance="High" Text="Publishing symbol packages to MSDL ..." Condition="$(PublishToMSDL)" />
+ <PublishSymbols PackagesToPublish="@(PackagesToPublishToSymbolServer)"
+ FilesToPublish="@(FilesToPublishToSymbolServer)"
+ PackageExcludeFiles="@(PackageExcludeFiles)"
+ PersonalAccessToken="$(DotNetSymbolServerTokenMsdl)"
+ SymbolServerPath="https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection"
+ ExpirationInDays="$(DotNetSymbolExpirationInDays)"
+ VerboseLogging="true"
+ DryRun="false"
+ ConvertPortablePdbsToWindowsPdbs="false"
+ PdbConversionTreatAsWarning=""
+ Condition="$(PublishToSymbolServer) and $(PublishToMSDL)"/>
+
+ <!--
+ Symbol Uploader: SymWeb
+ Watson, VS insertion testings and the typical internal dev usage require SymWeb.
+ Currently we need to call the task twice (https://github.com/dotnet/core-eng/issues/3489).
+ -->
+ <Message Importance="High" Text="Publishing symbol packages to SymWeb ..." Condition="$(PublishToSymWeb)" />
+ <PublishSymbols PackagesToPublish="@(PackagesToPublishToSymbolServer)"
+ FilesToPublish="@(FilesToPublishToSymbolServer)"
+ PackageExcludeFiles="@(PackageExcludeFiles)"
+ PersonalAccessToken="$(DotNetSymbolServerTokenSymWeb)"
+ SymbolServerPath="https://microsoft.artifacts.visualstudio.com/DefaultCollection"
+ ExpirationInDays="$(DotNetSymbolExpirationInDays)"
+ VerboseLogging="true"
+ DryRun="false"
+ ConvertPortablePdbsToWindowsPdbs="false"
+ PdbConversionTreatAsWarning=""
+ Condition="$(PublishToSymbolServer) and $(PublishToSymWeb)"/>
+ </Target>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.SymbolUploader.Build.Task" Version="$(MicrosoftSymbolUploaderBuildTaskVersion)" />
+ </ItemGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/SetupTargetFeeds.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/SetupTargetFeeds.proj
new file mode 100755
index 0000000000..530452e145
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/SetupTargetFeeds.proj
@@ -0,0 +1,363 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ This file main target, namely `SetupTargetFeeds`, is used to create an ItemGroup with
+ feed descriptors that will be used for publishing build assets.
+
+ Summary of the logic implemented here:
+ - A stable build is a non-preview build. Package versions are usually in
+ the format <Major.Minor.Patch>. To create stable builds the user have to
+ set the `DotNetFinalVersionKind` build parameter to `release`.
+
+ - An internal build is a build from a branch that has `internal` on its name.
+ The assets produced from this kind of build aren't meant for public usage.
+
+ - For business reasons package versions for stable builds don't increment
+ automatically. That means that different stable builds may produce packages
+ with different binary content but same version number.
+
+ - Since feeds don't permit overriding packages, the approach we followed
+ to publish assets from stable builds was to create a new _feed_ for every
+ stable build. Therefore, whenever we are publishing packages from a stable
+ build we create a new (public | internal) feed to publish packages to.
+
+ - Non stable builds are the usual ones. Package's version for such builds have
+ a prerelease label, e.g., preview, beta, alpha, etc. Since packages for these
+ builds have their version incremented automatically for every build we can
+ publish the packages always to the same feed.
+
+ - Non-stable internal build's assets are published to a fixed internal feed.
+
+ - Non-stable public build's assets are published to various public feeds.
+
+ Parameters:
+ - IsInternalBuild : true if the build is internal, i.e., created from an branch with internal on its name.
+ - IsStableBuild : true if the build is stable, i.e., `DotNetFinalVersionKind` == `release`.
+ - RepositoryName : Name of the source repo. Used when creating a stable internal feed.
+ - CommitSha : Commit SHA for this build. Used when creating a stable internal feed.
+ - ArtifactsCategory : Used to let user override target feed of public channels.
+ - AzureStorageTargetFeedPAT : Key for Azure storage feed used to publish for non-stable, non-internal builds
+ - PublishInstallersAndChecksums : Whether to publish installers and checksums to a secondary locations
+ - InstallersTargetStaticFeed : Where installers should be published
+ - InstallersAzureAccountKey : Account key for installers location
+ - ChecksumsTargetStaticFeed : Where checksums should be published
+ - ChecksumsAzureAccountKey : Account key forchecksums location
+ - PublishToAzureDevOpsNuGetFeeds : If true, publish NuGet packages to Azure DevOps feeds.
+ - AzureDevOpsStaticShippingFeed : URL of the Azure DevOps NuGet feed to publish non-stable shipping packages to.
+ - AzureDevOpsStaticShippingFeedKey : Key of the Azure DevOps NuGet feed to publish non-stable shipping packages to.
+ - AzureDevOpsStaticTransportFeed : URL of the Azure DevOps NuGet feed to publish transport packages to.
+ - AzureDevOpsStaticTransportFeedKey : Key of the Azure DevOps NuGet feed to publish to transport packages to.
+ - AzureDevOpsStaticSymbolsFeed : URL of the Azure DevOps NuGet feed to publish symbol packages to.
+ - AzureDevOpsStaticSymbolsFeedKey : Key of the Azure DevOps NuGet feed to publish to symbol packages to.
+
+ - CreateTestConfig : If set to true the user will be able to test a TargetFeedConfig
+ constructed using parameters below:
+ - TestFeedCategories
+ - TestFeedURL
+ - TestFeedType
+ - TestFeedToken
+ -->
+
+ <Target Name="SetupTargetFeeds">
+ <Error
+ Condition="'$(IsStableBuild)' == ''"
+ Text="Parameter 'IsStableBuild' is empty. A boolean value is required." />
+
+ <Error
+ Condition="'$(IsInternalBuild)' == ''"
+ Text="Parameter 'IsInternalBuild' is empty. A boolean value is required." />
+
+ <Error
+ Condition="('$(InstallersTargetStaticFeed)' == '' or '$(InstallersAzureAccountKey)' == '') and '$(PublishInstallersAndChecksums)' == 'true'"
+ Text="Parameters 'InstallersTargetStaticFeed/Key' are empty." />
+
+ <Error
+ Condition="('$(ChecksumsTargetStaticFeed)' == '' or '$(ChecksumsAzureAccountKey)' == '') and '$(PublishInstallersAndChecksums)' == 'true'"
+ Text="Parameters 'ChecksumsTargetStaticFeed/Key' are empty." />
+
+ <Error
+ Condition="('$(AzureDevOpsStaticShippingFeed)' == '' or '$(AzureDevOpsStaticShippingFeedKey)' == '') and '$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ Text="Parameters 'AzureDevOpsStaticShippingFeed/AzureDevOpsStaticShippingFeedKey' are empty." />
+
+ <Error
+ Condition="('$(AzureDevOpsStaticTransportFeed)' == '' or '$(AzureDevOpsStaticTransportFeedKey)' == '') and '$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ Text="Parameters 'AzureDevOpsStaticTransportFeed/AzureDevOpsStaticTransportFeedKey' are empty." />
+
+ <Error
+ Condition="('$(AzureDevOpsStaticSymbolsFeed)' == '' or '$(AzureDevOpsStaticSymbolsFeedKey)' == '') and '$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ Text="Parameters 'AzureDevOpsStaticSymbolsFeed/AzureDevOpsStaticSymbolsFeedKey' are empty." />
+
+ <!--
+ If the user wants to use a test configuration we'll create a TargetFeedConfig using
+ optional parameters passed as properties. This should prevent all the other
+ cases below from being activated.
+ -->
+ <ItemGroup Condition="'$(CreateTestConfig)' == 'true'">
+ <TargetFeedConfig
+ Include="$(TestFeedCategories)"
+ TargetURL="$(TestFeedURL)"
+ Type="$(TestFeedType)"
+ Token="$(TestFeedToken)" />
+ </ItemGroup>
+
+ <!--
+ - Adding this to let repos that want to override the TargetFeed be able to do so.
+ - I'm reusing the parameter that was introduced by RM pipelines so that no further
+ changes are needed in customer repos.
+ - Eventually this will be deprecated or at least modified so that the build TargetFeed
+ is selected based on build intent ('channel').
+ -->
+ <PropertyGroup>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == '.NETCORE'">https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == '.NETCOREVALIDATION'">https://dotnetfeed.blob.core.windows.net/arcade-validation/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETCORE'">https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETCORETOOLING'">https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ENTITYFRAMEWORKCORE'">https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETEXTENSIONS'">https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'CORECLR'">https://dotnetfeed.blob.core.windows.net/dotnet-coreclr/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'CORESDK'">https://dotnetfeed.blob.core.windows.net/dotnet-sdk/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSINTERNAL'">https://dotnetfeed.blob.core.windows.net/dotnet-tools-internal/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSET'">https://dotnetfeed.blob.core.windows.net/dotnet-toolset/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'WINDOWSDESKTOP'">https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'NUGETCLIENT'">https://dotnetfeed.blob.core.windows.net/nuget-nugetclient/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETENTITYFRAMEWORK6'">https://dotnetfeed.blob.core.windows.net/aspnet-entityframework6/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETBLAZOR'">https://dotnetfeed.blob.core.windows.net/aspnet-blazor/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'IOT'">https://dotnetfeed.blob.core.windows.net/dotnet-iot/index.json</TargetStaticFeed>
+ <TargetStaticFeed Condition="'$(TargetStaticFeed)' == ''">https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json</TargetStaticFeed>
+ </PropertyGroup>
+
+ <!--
+ When a build is stable we ask `CreateAzureDevOpsFeed` in Tasks.Feed to
+ create two new AzDo feeds. One for symbols and one for packages. Package
+ IDs overlap with symbol package IDs, so they cannot be published to the
+ same azure devops feed.
+ -->
+ <CreateAzureDevOpsFeed
+ Condition="'@(TargetFeedConfig)' == '' AND '$(IsStableBuild)' == 'true'"
+ IsInternal="$(IsInternalBuild)"
+ AzureDevOpsPersonalAccessToken="$(AzdoTargetFeedPAT)"
+ RepositoryName="$(RepositoryName)"
+ CommitSha="$(CommitSha)">
+ <Output TaskParameter="TargetFeedURL" PropertyName="NewAzDoIsolatedPackageFeedURL"/>
+ </CreateAzureDevOpsFeed>
+
+ <CreateAzureDevOpsFeed
+ Condition="'@(TargetFeedConfig)' == '' AND '$(IsStableBuild)' == 'true'"
+ IsInternal="$(IsInternalBuild)"
+ AzureDevOpsPersonalAccessToken="$(AzdoTargetFeedPAT)"
+ RepositoryName="$(RepositoryName)"
+ CommitSha="$(CommitSha)"
+ ContentIdentifier="sym">
+ <Output TaskParameter="TargetFeedURL" PropertyName="NewAzDoIsolatedSymbolsFeedURL"/>
+ </CreateAzureDevOpsFeed>
+
+ <Error
+ Condition="'@(TargetFeedConfig)' == '' AND '$(AzureStorageTargetFeedPAT)' == '' AND '$(IsInternalBuild)' == 'false'"
+ Text="Parameter 'AzureStorageTargetFeedPAT' is empty. A valid storage account key for $(TargetStaticFeed) is required." />
+
+ <!--
+ Config for:
+ - Stable = true
+ - Internal = true/false
+
+ Publish:
+ - Shipping (stable) packages to new azure devops package feed url
+ - Shipping (stable) symbol packages to new azure devops symbol feed url
+ - NonShipping (non-stable) packages to azure devops transport feed url
+ - NonShipping (non-stable) symbol packages to azure devops symbol feed url
+ - NonShipping (non-stable) assets to legacy blob feed url
+ - Installers and checksums to desired storage accounts.
+
+ We leave the 'Internal' property off of these so that the
+ publish task will determine whether the feed is public or private by attempting to access
+ the URL anonymously.
+ -->
+ <ItemGroup Condition="'@(TargetFeedConfig)' == '' AND '$(IsStableBuild)' == 'true'">
+
+ <TargetFeedConfig
+ AssetSelection="ShippingOnly"
+ Include="Package"
+ TargetURL="$(NewAzDoIsolatedPackageFeedURL)"
+ Isolated="true"
+ Type="AzDoNugetFeed"
+ Token="$(AzdoTargetFeedPAT)" />
+
+ <TargetFeedConfig
+ AssetSelection="ShippingOnly"
+ Include="Symbols"
+ TargetURL="$(NewAzDoIsolatedSymbolsFeedURL)"
+ Isolated="true"
+ Type="AzDoNugetFeed"
+ Token="$(AzdoTargetFeedPAT)" />
+
+ <!-- Legacy blob feed. Legacy feed is non-internal so we skip it for this. -->
+ <TargetFeedConfig
+ Condition="'$(IsInternalBuild)' == 'false'"
+ AssetSelection="NonShippingOnly"
+ Include="PACKAGE;SYMBOLS"
+ TargetURL="$(TargetStaticFeed)"
+ Isolated="false"
+ Type="AzureStorageFeed"
+ Token="$(AzureStorageTargetFeedPAT)" />
+
+ <TargetFeedConfig
+ Condition="'$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ AssetSelection="NonShippingOnly"
+ Include="Package"
+ TargetURL="$(AzureDevOpsStaticTransportFeed)"
+ Isolated="false"
+ Type="AzDoNugetFeed"
+ Token="$(AzureDevOpsStaticTransportFeedKey)" />
+
+ <TargetFeedConfig
+ Condition="'$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ AssetSelection="NonShippingOnly"
+ Include="Symbols"
+ TargetURL="$(AzureDevOpsStaticSymbolsFeed)"
+ Isolated="false"
+ Type="AzDoNugetFeed"
+ Token="$(AzureDevOpsStaticSymbolsFeedKey)" />
+
+ <!-- These feeds are marked as isolated even though they are not. We allow overwrite
+ the old data with the new. -->
+ <TargetFeedConfig
+ Condition="'$(PublishInstallersAndChecksums)' == 'true'"
+ Include="OSX;Deb;Rpm;Node;BinaryLayout;Installer;Maven;VSIX;Badge;Other"
+ TargetURL="$(InstallersTargetStaticFeed)"
+ Isolated="true"
+ AllowOverwrite="true"
+ Type="AzureStorageFeed"
+ Token="$(InstallersAzureAccountKey)" />
+
+ <TargetFeedConfig
+ Condition="'$(PublishInstallersAndChecksums)' == 'true'"
+ Include="Checksum"
+ TargetURL="$(ChecksumsTargetStaticFeed)"
+ Isolated="true"
+ AllowOverwrite="true"
+ Type="AzureStorageFeed"
+ Token="$(ChecksumsAzureAccountKey)" />
+ </ItemGroup>
+
+ <!--
+ Config for:
+ - Stable = false
+ - Internal = true
+
+ Publish:
+ - Shipping (non-stable) assets to azure devops shipping feed url
+ - NonShipping (non-stable) assets to azure devops transport feed url
+ - Symbol assets to azure devops symbol feed url
+ - Installers and checksums to desired storage accounts.
+ -->
+ <ItemGroup Condition="'@(TargetFeedConfig)' == '' AND '$(IsStableBuild)' == 'false' AND '$(IsInternalBuild)' == 'true'">
+ <TargetFeedConfig
+ Condition="'$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ AssetSelection="ShippingOnly"
+ Include="Package"
+ TargetURL="$(AzureDevOpsStaticShippingFeed)"
+ Isolated="false"
+ Type="AzDoNugetFeed"
+ Token="$(AzureDevOpsStaticShippingFeedKey)" />
+
+ <TargetFeedConfig
+ Condition="'$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ AssetSelection="NonShippingOnly"
+ Include="Package"
+ TargetURL="$(AzureDevOpsStaticTransportFeed)"
+ Isolated="false"
+ Type="AzDoNugetFeed"
+ Token="$(AzureDevOpsStaticTransportFeedKey)" />
+
+ <TargetFeedConfig
+ Condition="'$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ Include="Symbols"
+ TargetURL="$(AzureDevOpsStaticSymbolsFeed)"
+ Isolated="false"
+ Type="AzDoNugetFeed"
+ Token="$(AzureDevOpsStaticSymbolsFeedKey)" />
+
+ <TargetFeedConfig
+ Condition="'$(PublishInstallersAndChecksums)' == 'true'"
+ Include="OSX;Deb;Rpm;Node;BinaryLayout;Installer;Maven;VSIX;Badge;Other"
+ TargetURL="$(InstallersTargetStaticFeed)"
+ Isolated="false"
+ Type="AzureStorageFeed"
+ Token="$(InstallersAzureAccountKey)" />
+
+ <TargetFeedConfig
+ Condition="'$(PublishInstallersAndChecksums)' == 'true'"
+ Include="Checksum"
+ TargetURL="$(ChecksumsTargetStaticFeed)"
+ Isolated="false"
+ Type="AzureStorageFeed"
+ Token="$(ChecksumsAzureAccountKey)" />
+ </ItemGroup>
+
+ <!--
+ Config for:
+ - Stable = false
+ - Internal = false
+
+ Publish:
+ - Shipping (non-stable) package assets to azure devops shipping feed url
+ - NonShipping (non-stable) package assets to azure devops transport feed url
+ - Shipping and NonShipping symbol package assets to azure devops symbol feed url
+ - All assets to legacy blob feed url
+ - Installers and checksums to desired storage accounts.
+ -->
+ <ItemGroup Condition="'@(TargetFeedConfig)' == '' AND '$(IsStableBuild)' == 'false' AND '$(IsInternalBuild)' == 'false'">
+ <TargetFeedConfig
+ Include="Package;Symbols;OSX;Deb;Rpm;Node;BinaryLayout;Installer;Checksum;Maven;VSIX;Badge;Other"
+ TargetURL="$(TargetStaticFeed)"
+ Isolated="false"
+ Type="AzureStorageFeed"
+ Token="$(AzureStorageTargetFeedPAT)" />
+
+ <TargetFeedConfig Condition="'$(PublishInstallersAndChecksums)' == 'true'"
+ Include="OSX;Deb;Rpm;Node;BinaryLayout;Installer;Maven;VSIX;Badge;Other"
+ TargetURL="$(InstallersTargetStaticFeed)"
+ Isolated="false"
+ Type="AzureStorageFeed"
+ Token="$(InstallersAzureAccountKey)" />
+
+ <TargetFeedConfig Condition="'$(PublishInstallersAndChecksums)' == 'true'"
+ Include="Checksum"
+ TargetURL="$(ChecksumsTargetStaticFeed)"
+ Isolated="false"
+ Type="AzureStorageFeed"
+ Token="$(ChecksumsAzureAccountKey)" />
+
+ <TargetFeedConfig Condition="'$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ Include="Package"
+ TargetURL="$(AzureDevOpsStaticShippingFeed)"
+ Isolated="false"
+ Type="AzDoNugetFeed"
+ Token="$(AzureDevOpsStaticShippingFeedKey)"
+ AssetSelection="ShippingOnly" />
+
+ <TargetFeedConfig Condition="'$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ Include="Package"
+ TargetURL="$(AzureDevOpsStaticTransportFeed)"
+ Isolated="false"
+ Type="AzDoNugetFeed"
+ Token="$(AzureDevOpsStaticTransportFeedKey)"
+ AssetSelection="NonShippingOnly" />
+
+ <TargetFeedConfig Condition="'$(PublishToAzureDevOpsNuGetFeeds)' == 'true'"
+ Include="Symbols"
+ TargetURL="$(AzureDevOpsStaticSymbolsFeed)"
+ Isolated="false"
+ Type="AzDoNugetFeed"
+ Token="$(AzureDevOpsStaticSymbolsFeedKey)" />
+ </ItemGroup>
+
+ <Error
+ Condition="'@(TargetFeedConfig)' == ''"
+ Text="It wasn't possible to determine which target feed configuration to use." />
+
+ <Message
+ Text="Artifacts with category '%(TargetFeedConfig.Identity)', Isolated='%(TargetFeedConfig.Isolated)', Internal='%(TargetFeedConfig.Internal)', AssetSelection='%(TargetFeedConfig.AssetSelection)' should go to %(TargetFeedConfig.Type) -> '%(TargetFeedConfig.TargetURL)'"
+ Importance="high" />
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/SigningValidation.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/SigningValidation.proj
new file mode 100755
index 0000000000..c7a8acf648
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/SigningValidation.proj
@@ -0,0 +1,69 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Execute">
+ <!--
+ This MSBuild file is intended to be used as the body of the default
+ publishing release pipeline. The release pipeline will use this file
+ to invoke the SignCheck tool to validate that packages about to
+ be published are correctly signed.
+
+ Parameters:
+
+ - PackageBasePath : Directory containing all files that need to be validated.
+ - SignCheckExclusionsFile : Path to file containing exclusion list to be used by SignCheck.
+ - EnableJarSigningCheck : Whether .jar files should be validated.
+ - EnableStrongNameCheck : Whether strong name check should be performed.
+ -->
+
+ <PropertyGroup>
+ <TargetFramework>netcoreapp2.1</TargetFramework>
+ </PropertyGroup>
+
+ <Target Name="Execute">
+ <PropertyGroup>
+ <SignCheckToolPath>$(NuGetPackageRoot)Microsoft.DotNet.SignCheck\$(MicrosoftDotNetSignCheckVersion)\tools\Microsoft.DotNet.SignCheck.exe</SignCheckToolPath>
+
+ <SignCheckInputDir>$(PackageBasePath)</SignCheckInputDir>
+ <SignCheckLog>signcheck.log</SignCheckLog>
+ <SignCheckErrorLog>signcheck.errors.log</SignCheckErrorLog>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <!--
+ Documentation for these arguments is available here:
+ https://github.com/dotnet/arcade/tree/master/src/SignCheck
+ -->
+ <SignCheckArgs Include="--recursive" />
+ <SignCheckArgs Include="--traverse-subfolders" />
+ <SignCheckArgs Include="--file-status AllFiles" />
+ <SignCheckArgs Include="--log-file $(SignCheckLog)" />
+ <SignCheckArgs Include="--error-log-file $(SignCheckErrorLog)" />
+ <SignCheckArgs Include="--input-files &quot;$(SignCheckInputDir)&quot;" />
+
+ <SignCheckArgs Include="--exclusions-file &quot;$(SignCheckExclusionsFile)&quot;" Condition="'$(SignCheckExclusionsFile)' != '' and Exists($(SignCheckExclusionsFile))" />
+ <SignCheckArgs Include="--verify-jar" Condition="'$(EnableJarSigningCheck)' == 'true'" />
+ <SignCheckArgs Include="--verify-strongname" Condition="'$(EnableStrongNameCheck)' == 'true'" />
+ </ItemGroup>
+
+ <!--
+ IgnoreExitCode='true' because the tool doesn't return '0' on success.
+ -->
+ <Exec
+ Command="&quot;$(SignCheckToolPath)&quot; @(SignCheckArgs, ' ')"
+ IgnoreExitCode='true'
+ ConsoleToMsBuild="false"
+ StandardErrorImportance="high" />
+
+ <Error
+ Text="Signing validation failed. Check $(SignCheckErrorLog) for more information."
+ Condition="Exists($(SignCheckErrorLog)) and '$([System.IO.File]::ReadAllText($(SignCheckErrorLog)))' != ''" />
+
+ <Message
+ Text="##vso[artifact.upload containerfolder=LogFiles;artifactname=LogFiles]{SignCheckErrorLog}"
+ Condition="Exists($(SignCheckErrorLog)) and '$([System.IO.File]::ReadAllText($(SignCheckErrorLog)))' != ''" />
+
+ </Target>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.DotNet.SignCheck" Version="$(MicrosoftDotNetSignCheckVersion)" />
+ </ItemGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Versions.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Versions.props
new file mode 100755
index 0000000000..f5a4fa560d
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/Versions.props
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!-- TODO: remove conditions on the following imports (see https://github.com/dotnet/arcade/issues/1982) -->
+ <Import Project="..\DefaultVersions.Generated.props" Condition="Exists('..\DefaultVersions.Generated.props')"/>
+
+ <PropertyGroup>
+ <MicrosoftDotNetMaestroTasksVersion>1.1.0-beta.19401.2</MicrosoftDotNetMaestroTasksVersion>
+ <MicrosoftDotNetBuildTasksVisualStudioVersion>$(ArcadeSdkVersion)</MicrosoftDotNetBuildTasksVisualStudioVersion>
+ <MicrosoftDotNetBuildTasksFeedVersion>2.2.0-beta.19514.1</MicrosoftDotNetBuildTasksFeedVersion>
+ <MicrosoftDotNetSignCheckVersion Condition="'$(MicrosoftDotNetSignCheckVersion)' == ''">1.0.0-beta.19509.6</MicrosoftDotNetSignCheckVersion>
+ <MicrosoftSymbolUploaderBuildTaskVersion Condition="'$(MicrosoftSymbolUploaderBuildTaskVersion)' == ''">1.0.0-beta-64414-01</MicrosoftSymbolUploaderBuildTaskVersion>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <RestoreAdditionalProjectSources>
+ $(RestoreAdditionalProjectSources);
+ https://api.nuget.org/v3/index.json;
+ https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
+ https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json;
+ https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json;
+ </RestoreAdditionalProjectSources>
+ </PropertyGroup>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/VisualStudio.BuildIbcTrainingSettings.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/VisualStudio.BuildIbcTrainingSettings.proj
new file mode 100755
index 0000000000..ef64022706
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/VisualStudio.BuildIbcTrainingSettings.proj
@@ -0,0 +1,46 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project DefaultTargets="Execute">
+ <!--
+ Required parameters:
+ VisualStudioDropName Product drop name, e.g. 'Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)'
+ BootstrapperInfoPath Path to the BootstrapperInfo.json
+
+ Optional parameters:
+ Configuration Build configuration (defaults to 'Debug')
+ VisualStudioIbcTrainingSettingsPath Path to .runsettings file to be used as a template for the generated .runsettings file.
+ The SessionConfiguration node is replaced with a generated value.
+
+ This project is supposed to be executed from build definition after the repository is built and VS bootstrapper produced.
+ Dependencies are expected to have been already restored as part of toolset restore (Tools.proj).
+ Ideally this would be done in AfterSigning.proj but we can't currently build VS bootstrapper from an msbuild build task
+ as it is only available as a DevOps Pipeline task.
+ -->
+
+ <Import Project="Directory.Build.props" />
+ <Import Project="Directory.Build.targets" />
+
+ <PropertyGroup>
+ <_VisualStudioBuildTasksAssembly>$(NuGetPackageRoot)microsoft.dotnet.build.tasks.visualstudio\$(MicrosoftDotNetBuildTasksVisualStudioVersion)\tools\net472\Microsoft.DotNet.Build.Tasks.VisualStudio.dll</_VisualStudioBuildTasksAssembly>
+ </PropertyGroup>
+
+ <UsingTask AssemblyFile="$(_VisualStudioBuildTasksAssembly)" TaskName="Microsoft.DotNet.Build.Tasks.VisualStudio.GetRunSettingsSessionConfiguration"/>
+
+ <PropertyGroup>
+ <_OutputFilePath>$(VisualStudioSetupInsertionPath)OptProf\Training.runsettings</_OutputFilePath>
+ <VisualStudioIbcTrainingSettingsPath Condition="'$(VisualStudioIbcTrainingSettingsPath)' == ''">$(MSBuildThisFileDirectory)VisualStudio.IbcTraining.runsettings</VisualStudioIbcTrainingSettingsPath>
+ </PropertyGroup>
+
+ <Target Name="Execute">
+ <GetRunSettingsSessionConfiguration ConfigurationFile="$(RepositoryEngineeringDir)config\OptProf.json"
+ ProductDropName="$(VisualStudioDropName)"
+ BootstrapperInfoPath="$(BootstrapperInfoPath)">
+ <Output TaskParameter="SessionConfiguration" PropertyName="_SessionConfiguration"/>
+ </GetRunSettingsSessionConfiguration>
+
+ <Copy SourceFiles="$(VisualStudioIbcTrainingSettingsPath)" DestinationFiles="$(_OutputFilePath)" />
+
+ <XmlPoke XmlInputPath="$(_OutputFilePath)"
+ Query="/RunSettings/SessionConfiguration"
+ Value="$(_SessionConfiguration)" />
+ </Target>
+</Project> \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/VisualStudio.IbcTraining.runsettings b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/VisualStudio.IbcTraining.runsettings
new file mode 100755
index 0000000000..28eedca4c0
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SdkTasks/VisualStudio.IbcTraining.runsettings
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RunSettings>
+ <RunConfiguration>
+ <ResultsDirectory>C:\Test\Results</ResultsDirectory>
+ <TargetPlatform>X86</TargetPlatform>
+ <MaxCpuCount>1</MaxCpuCount>
+ <BatchSize>10</BatchSize>
+ <TestSessionTimeout>21600000</TestSessionTimeout>
+ <DesignMode>False</DesignMode>
+ <InIsolation>False</InIsolation>
+ <CollectSourceInformation>False</CollectSourceInformation>
+ <DisableAppDomain>False</DisableAppDomain>
+ <DisableParallelization>False</DisableParallelization>
+ <TargetFrameworkVersion>.NETFramework,Version=v4.0</TargetFrameworkVersion>
+ <ExecutionThreadApartmentState>STA</ExecutionThreadApartmentState>
+ <TestAdaptersPaths>%SystemDrive%\Test</TestAdaptersPaths>
+ <TreatTestAdapterErrorsAsWarnings>False</TreatTestAdapterErrorsAsWarnings>
+ </RunConfiguration>
+ <SessionConfiguration>
+ <!-- Generated -->
+ </SessionConfiguration>
+ <DataCollectionRunSettings>
+ <DataCollectors>
+ <DataCollector uri="datacollector://microsoft/DevDiv/TestExtensions/ProcDumpCollector/v1" friendlyName="ProcDump Collector" enabled="True">
+ <Configuration>
+ <RootDumpDirectory>C:\Test\Dumps</RootDumpDirectory>
+ <Deployment PackageName = "Microsoft.DevDiv.TestExtensions.ProcDumpCollector" />
+ </Configuration>
+ </DataCollector>
+ <DataCollector uri="datacollector://microsoft/DevDiv/TestExtensions/LingeringProcessCollector/v1" friendlyName="Lingering Process Collector" enabled="True">
+ <Configuration>
+ <KillLingeringProcesses>true</KillLingeringProcesses>
+ <ShutdownCommands>
+ <ShutdownCommand Process="VBCSCompiler" Command="%ProcessPath%" Arguments="-shutdown" Timeout="60000" />
+ </ShutdownCommands>
+ <LoggingBehavior>Warning</LoggingBehavior>
+ <Deployment PackageName = "Microsoft.DevDiv.TestExtensions.LingeringProcessCollector" />
+ </Configuration>
+ </DataCollector>
+ <DataCollector uri="datacollector://microsoft/DevDiv/VideoRecorder/2.0" friendlyName="Screen and Voice Recorder" enabled="True">
+ <Configuration>
+ <Deployment PackageName = "Microsoft.DevDiv.Validation.MediaRecorder" />
+ </Configuration>
+ </DataCollector>
+ </DataCollectors>
+ </DataCollectionRunSettings>
+ <InProcDataCollectionRunSettings>
+ <InProcDataCollectors>
+ <InProcDataCollector uri="datacollector://microsoft/DevDiv/TestExtensions/OptProfDataCollector/v2" assemblyQualifiedName="Microsoft.DevDiv.TestExtensions.OptProfDataCollector, Microsoft.DevDiv.TestExtensions.OptProfDataCollector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" friendlyName="OptProf Data Collector" enabled="True" codebase="C:\Test\Extensions\Microsoft.DevDiv.TestExtensions.OptProfDataCollector\lib\net461\Microsoft.DevDiv.TestExtensions.OptProfDataCollector.dll">
+ <Configuration>
+ <WorkingDirectory>C:\OptProf</WorkingDirectory>
+ <ProfilesDirectory>C:\Profiles</ProfilesDirectory>
+ <IgnoreProfileNotGeneratedExceptions>true</IgnoreProfileNotGeneratedExceptions>
+ <Deployment PackageName="Microsoft.DevDiv.TestExtensions.OptProfDataCollector" />
+ </Configuration>
+ </InProcDataCollector>
+ </InProcDataCollectors>
+ </InProcDataCollectionRunSettings>
+ <TestRunParameters />
+ <LoggerRunSettings>
+ <Loggers />
+ </LoggerRunSettings>
+</RunSettings>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Settings.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Settings.props
new file mode 100755
index 0000000000..037b78eaa4
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Settings.props
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <PropertyGroup>
+ <_ArcadeOverriddenCustomBeforeMicrosoftCommonTargets>$(CustomBeforeMicrosoftCommonTargets)</_ArcadeOverriddenCustomBeforeMicrosoftCommonTargets>
+ <_ArcadeOverriddenCustomBeforeMicrosoftCommonCrossTargetingTargets>$(CustomBeforeMicrosoftCommonCrossTargetingTargets)</_ArcadeOverriddenCustomBeforeMicrosoftCommonCrossTargetingTargets>
+ <CustomBeforeMicrosoftCommonTargets>$(MSBuildThisFileDirectory)BeforeCommonTargets.targets</CustomBeforeMicrosoftCommonTargets>
+ <CustomBeforeMicrosoftCommonCrossTargetingTargets>$(MSBuildThisFileDirectory)BeforeCommonTargets.CrossTargeting.targets</CustomBeforeMicrosoftCommonCrossTargetingTargets>
+ <!-- MSBuild has "global" variables (ie command-line or MSBuild task properties) override local declarations. That's generally not the behavior that we want in Arcade.
+ We want to be able to have Arcade MSBuild a project / target with the property set as a default, but let the project override that value. To work around MSBuild,
+ we pass in `_blah` and set it to a local property (`blah`) which is not global. -->
+ <NETCORE_ENGINEERING_TELEMETRY Condition="'$(NETCORE_ENGINEERING_TELEMETRY)' == ''">$(_NETCORE_ENGINEERING_TELEMETRY)</NETCORE_ENGINEERING_TELEMETRY>
+ </PropertyGroup>
+
+ <Import Project="BuildTasks.props" />
+ <Import Project="ProjectLayout.props" />
+ <Import Project="DefaultVersions.props"/>
+ <Import Project="StrongName.props"/>
+ <Import Project="ProjectDefaults.props"/>
+ <Import Project="Tests.props" Condition="'$(DisableArcadeTestFramework)' != 'true'" />
+ <Import Project="Workarounds.props"/>
+
+ <Import Project="Compiler.props" Condition="'$(UsingToolMicrosoftNetCompilers)' == 'true'" />
+ <Import Project="VisualStudio.props" Condition="'$(UsingToolVSSDK)' == 'true' and '$(MSBuildRuntimeType)' != 'Core'"/>
+
+ <!--
+ Import NuGet props to WPF temp projects (workaround for https://github.com/dotnet/sourcelink/issues/91)
+ -->
+ <Import Project="$(_WpfTempProjectNuGetFilePathNoExt).props" Condition="'$(_WpfTempProjectNuGetFilePathNoExt)' != '' and Exists('$(_WpfTempProjectNuGetFilePathNoExt).props')"/>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Sign.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Sign.proj
new file mode 100755
index 0000000000..84a37cb61d
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Sign.proj
@@ -0,0 +1,114 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project DefaultTargets="Sign">
+ <Import Project="BuildStep.props" />
+
+ <Import Project="$(NuGetPackageRoot)microsoft.dotnet.signtool\$(MicrosoftDotNetSignToolVersion)\build\Microsoft.DotNet.SignTool.props" />
+
+ <ItemGroup>
+ <!--
+ This is intended to hold information about the certificates used for signing.
+ For now the only information required is whether or not the certificate can be
+ used for signing already signed files - DualSigningAllowed==true.
+ -->
+ <CertificatesSignInfo Include="3PartyDual" DualSigningAllowed="true" />
+ <CertificatesSignInfo Include="3PartySHA2" DualSigningAllowed="true" />
+
+ <!-- List of container files that will be opened and checked for files that need to be signed. -->
+ <ItemsToSign Include="$(ArtifactsPackagesDir)**\*.nupkg" />
+ <ItemsToSign Include="$(VisualStudioSetupOutputPath)**\*.vsix" />
+ <ItemsToSign Include="$(VisualStudioBuildPackagesDir)**\*.nupkg" />
+
+ <!-- Default certificate/strong-name to be used for all files with PKT=="31bf3856ad364e35". -->
+ <StrongNameSignInfo Include="MsSharedLib72" PublicKeyToken="31bf3856ad364e35" CertificateName="Microsoft400" />
+ <StrongNameSignInfo Include="SilverlightCert121" PublicKeyToken="7cec85d7bea7798e" CertificateName="Microsoft400" />
+ <StrongNameSignInfo Include="StrongName" PublicKeyToken="b77a5c561934e089" CertificateName="Microsoft400" />
+ <StrongNameSignInfo Include="StrongName" PublicKeyToken="b03f5f7f11d50a3a" CertificateName="Microsoft400" />
+ <StrongNameSignInfo Include="$(MSBuildThisFileDirectory)snk\Open.snk" PublicKeyToken="cc7b13ffcd2ddd51" CertificateName="Microsoft400" />
+
+ <!--
+ Map of file extensions to default certificate name. Files with these extensions are
+ signed with the specified certificate. Particularly useful for files that don't have
+ a public key token.
+ The certificate can be overriden using the StrongNameSignInfo or the FileSignInfo item group.
+ -->
+ <FileExtensionSignInfo Include=".jar" CertificateName="MicrosoftJARSHA2" />
+ <FileExtensionSignInfo Include=".js;.ps1;.psd1;.psm1;.psc1;.py" CertificateName="Microsoft400" />
+ <FileExtensionSignInfo Include=".dll;.exe" CertificateName="Microsoft400" />
+ <FileExtensionSignInfo Include=".nupkg" CertificateName="NuGet" />
+ <FileExtensionSignInfo Include=".vsix" CertificateName="VsixSHA2" />
+ <FileExtensionSignInfo Include=".zip" CertificateName="None" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <!-- Control whether an empty ItemsToSign item group is allowed when calling SignToolTask. -->
+ <AllowEmptySignList>false</AllowEmptySignList>
+ </PropertyGroup>
+
+ <!-- Allow repository to customize signing configuration -->
+ <Import Project="$(RepositoryEngineeringDir)Signing.props" Condition="Exists('$(RepositoryEngineeringDir)Signing.props')" />
+
+ <Target Name="Sign">
+ <Error Text="The value of DotNetSignType is invalid: '$(DotNetSignType)'"
+ Condition="'$(DotNetSignType)' != 'real' and '$(DotNetSignType)' != 'test' and '$(DotNetSignType)' != ''" />
+
+ <PropertyGroup>
+ <_DryRun>true</_DryRun>
+ <_DryRun Condition="'$(OfficialBuild)' == 'true'">false</_DryRun>
+
+ <_TestSign>false</_TestSign>
+ <_TestSign Condition="'$(DotNetSignType)' == 'test'">true</_TestSign>
+
+ <_DesktopMSBuildRequired>false</_DesktopMSBuildRequired>
+ <_DesktopMSBuildRequired Condition="'$(_DryRun)' != 'true' and '$(MSBuildRuntimeType)' == 'Core'">true</_DesktopMSBuildRequired>
+ </PropertyGroup>
+
+ <!-- We only need this if we are going to use the executable version. -->
+ <Exec Command='"$(NuGetPackageRoot)vswhere\$(VSWhereVersion)\tools\vswhere.exe" -latest -prerelease -property installationPath -requires Microsoft.Component.MSBuild'
+ ConsoleToMsBuild="true"
+ StandardErrorImportance="high"
+ Condition="$(_DesktopMSBuildRequired)">
+ <Output TaskParameter="ConsoleOutput" PropertyName="_VSInstallDir" />
+ </Exec>
+
+ <PropertyGroup Condition="$(_DesktopMSBuildRequired)">
+ <_DesktopMSBuildPath>$(_VSInstallDir)\MSBuild\Current\Bin\msbuild.exe</_DesktopMSBuildPath>
+ <_DesktopMSBuildPath Condition="!Exists('$(_DesktopMSBuildPath)')">$(_VSInstallDir)\MSBuild\15.0\Bin\msbuild.exe</_DesktopMSBuildPath>
+ </PropertyGroup>
+
+ <Error Condition="'$(AllowEmptySignList)' != 'true' AND '@(ItemsToSign)' == ''"
+ Text="List of files to sign is empty. Make sure that ItemsToSign is configured correctly." />
+
+ <Microsoft.DotNet.SignTool.SignToolTask
+ DryRun="$(_DryRun)"
+ TestSign="$(_TestSign)"
+ DoStrongNameCheck="$(DoStrongNameCheck)"
+ AllowEmptySignList="$(AllowEmptySignList)"
+ CertificatesSignInfo="$(CertificatesSignInfo)"
+ ItemsToSign="@(ItemsToSign)"
+ StrongNameSignInfo="@(StrongNameSignInfo)"
+ FileSignInfo="@(FileSignInfo)"
+ FileExtensionSignInfo="@(FileExtensionSignInfo)"
+ TempDir="$(ArtifactsTmpDir)"
+ LogDir="$(ArtifactsLogDir)"
+ MSBuildPath="$(_DesktopMSBuildPath)"
+ SNBinaryPath="$(NuGetPackageRoot)sn\$(SNVersion)\sn.exe"
+ MicroBuildCorePath="$(NuGetPackageRoot)microbuild.core\$(MicroBuildCoreVersion)"/>
+
+ <!--
+ Signing.props can be used to include configurations used by signing validation during publishing.
+ -->
+ <Message
+ Text="##vso[artifact.upload containerfolder=ReleaseConfigs;artifactname=ReleaseConfigs]$(RepositoryEngineeringDir)Signing.props"
+ Condition="Exists('$(RepositoryEngineeringDir)Signing.props')"
+ Importance="high" />
+
+ <!--
+ SigningValidation.proj includes the logic to call SignCheck and will be used during release to validate signed packages.
+ -->
+ <Message
+ Text="##vso[artifact.upload containerfolder=ReleaseConfigs;artifactname=ReleaseConfigs]$(RepositoryEngineeringDir)common\SigningValidation.proj"
+ Importance="high" />
+
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/StrongName.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/StrongName.props
new file mode 100755
index 0000000000..84dfe4af46
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/StrongName.props
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <PropertyGroup>
+ <MicrosoftSharedPublicKey>0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9</MicrosoftSharedPublicKey>
+ <MicrosoftPublicKey>002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293</MicrosoftPublicKey>
+ <MicrosoftAspNetCorePublicKey>0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb</MicrosoftAspNetCorePublicKey>
+ <ECMAPublicKey>00000000000000000400000000000000</ECMAPublicKey>
+ <OpenPublicKey>00240000048000009400000006020000002400005253413100040000010001004b86c4cb78549b34bab61a3b1800e23bfeb5b3ec390074041536a7e3cbd97f5f04cf0f857155a8928eaa29ebfd11cfbbad3ba70efea7bda3226c6a8d370a4cd303f714486b6ebc225985a638471e6ef571cc92a4613c00b8fa65d61ccee0cbe5f36330c9a01f4183559f1bef24cc2917c6d913e3a541333a1d05d9bed22b38cb</OpenPublicKey>
+ <SilverlightPlatformPublicKey>00240000048000009400000006020000002400005253413100040000010001008d56c76f9e8649383049f383c44be0ec204181822a6c31cf5eb7ef486944d032188ea1d3920763712ccb12d75fb77e9811149e6148e5d32fbaab37611c1878ddc19e20ef135d0cb2cff2bfec3d115810c3d9069638fe4be215dbf795861920e5ab6f7db2e2ceef136ac23d5dd2bf031700aec232f6c6b1c785b4305c123b37ab</SilverlightPlatformPublicKey>
+ </PropertyGroup>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/StrongName.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/StrongName.targets
new file mode 100755
index 0000000000..12ed647fdf
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/StrongName.targets
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ Reads variables:
+ SignAssembly "true" to sign the output assembly of the current project
+ StrongNameKeyId The id of the key used for strong name generation
+
+ Writes variables:
+ DelaySign
+ PublicSign
+ PublicKey
+ PublicKeyToken
+ AssemblyOriginatorKeyFile
+ -->
+
+ <PropertyGroup Condition="'$(SignAssembly)' != 'false'">
+ <DelaySign>false</DelaySign>
+ <PublicSign>true</PublicSign>
+ </PropertyGroup>
+
+ <!-- Binaries are delay or public-signed with one of these keys; later, the signing system will finish the strong-name signing. -->
+ <Choose>
+ <When Condition="'$(SignAssembly)' == 'false'" />
+ <When Condition="'$(StrongNameKeyId)' == 'Microsoft'">
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)snk/MSFT.snk</AssemblyOriginatorKeyFile>
+ <PublicKey>$(MicrosoftPublicKey)</PublicKey>
+ <PublicKeyToken>b03f5f7f11d50a3a</PublicKeyToken>
+ </PropertyGroup>
+ </When>
+ <When Condition="'$(StrongNameKeyId)' == 'MicrosoftShared'">
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)snk/35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
+ <PublicKey>$(MicrosoftSharedPublicKey)</PublicKey>
+ <PublicKeyToken>31BF3856AD364E35</PublicKeyToken>
+ </PropertyGroup>
+ </When>
+ <When Condition="'$(StrongNameKeyId)' == 'MicrosoftAspNetCore'">
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)snk/AspNetCore.snk</AssemblyOriginatorKeyFile>
+ <PublicKey>$(MicrosoftAspNetCorePublicKey)</PublicKey>
+ <PublicKeyToken>adb9793829ddae60</PublicKeyToken>
+ <PublicSign>false</PublicSign> <!-- The MicrosoftAspNetCore strong name key is a full key -->
+ </PropertyGroup>
+ </When>
+ <When Condition="'$(StrongNameKeyId)' == 'ECMA'">
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)snk/ECMA.snk</AssemblyOriginatorKeyFile>
+ <PublicKey>$(ECMAPublicKey)</PublicKey>
+ <PublicKeyToken>b77a5c561934e089</PublicKeyToken>
+ </PropertyGroup>
+ </When>
+ <!--
+ The Open key can be used by any library that needs strong name signing that doesn't
+ have to be protected by the closed MS based keys. The idea is to have a key for identity but
+ not for any security purposes.
+ -->
+ <When Condition="'$(StrongNameKeyId)' == 'Open'">
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)snk/Open.snk</AssemblyOriginatorKeyFile>
+ <PublicKey>$(OpenPublicKey)</PublicKey>
+ <PublicKeyToken>cc7b13ffcd2ddd51</PublicKeyToken>
+ <DelaySign>false</DelaySign>
+ <PublicSign>false</PublicSign> <!-- The Open strong name key is a full key -->
+ </PropertyGroup>
+ </When>
+ <When Condition="'$(StrongNameKeyId)' == 'SilverlightPlatform'">
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)snk/SilverlightPlatformPublicKey.snk</AssemblyOriginatorKeyFile>
+ <PublicKey>$(SilverlightPlatformPublicKey)</PublicKey>
+ <PublicKeyToken>7cec85d7bea7798e</PublicKeyToken>
+ </PropertyGroup>
+ </When>
+ </Choose>
+
+ <!-- Build Flag Verification -->
+ <PropertyGroup>
+ <PrepareForBuildDependsOn>$(PrepareForBuildDependsOn);VerifyBuildFlags</PrepareForBuildDependsOn>
+ </PropertyGroup>
+
+ <Target Name="VerifyBuildFlags">
+ <Error Condition="'$(SignAssembly)' != 'false' and
+ ('$(PublicKey)' == '' or '$(PublicKeyToken)' == '' or '$(AssemblyOriginatorKeyFile)' == '')"
+ Text="PublicKey, PublicKeyToken and AssemblyOriginatorKeyFile must be specified" />
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SymStore.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SymStore.targets
new file mode 100755
index 0000000000..26bb35d617
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/SymStore.targets
@@ -0,0 +1,107 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <PropertyGroup>
+ <_DeployToSymStoreTargetName Condition="'$(TargetFrameworks)' == ''">_InnerDeployToSymStore</_DeployToSymStoreTargetName>
+ <_DeployToSymStoreTargetName Condition="'$(TargetFrameworks)' != ''">_OuterDeployToSymStore</_DeployToSymStoreTargetName>
+ </PropertyGroup>
+
+ <Target Name="DeployToSymStore" AfterTargets="Pack" DependsOnTargets="$(_DeployToSymStoreTargetName)" />
+
+ <Target Name="_OuterDeployToSymStore">
+ <ItemGroup>
+ <_TargetFramework Include="$(TargetFrameworks)" />
+ </ItemGroup>
+ <MSBuild Projects="$(MSBuildProjectFile)"
+ Condition="'$(TargetFrameworks)' != ''"
+ Targets="_InnerDeployToSymStore"
+ Properties="TargetFramework=%(_TargetFramework.Identity)">
+ </MSBuild>
+ </Target>
+
+ <Target Name="_InnerDeployToSymStore">
+ <PropertyGroup>
+ <_TargetPdbPath />
+ <_TargetPdbPath Condition="'$(DebugType)' != 'embedded'">$([System.IO.Path]::ChangeExtension($(TargetPath), '.pdb'))</_TargetPdbPath>
+
+ <_SymStoreOutputDir>$(ArtifactsSymStoreDirectory)$(MSBuildProjectName)\$(TargetFramework)\</_SymStoreOutputDir>
+ <_SymStorePdbPath>$(_SymStoreOutputDir)$(TargetName).pdb</_SymStorePdbPath>
+ <_SymStoreAssemblyPath>$(_SymStoreOutputDir)$(TargetName)$(TargetExt)</_SymStoreAssemblyPath>
+
+ <!-- By default publish Windows PDBs only for shipping components -->
+ <PublishWindowsPdb Condition="'$(PublishWindowsPdb)' == '' and '$(IsShippingAssembly)' == 'true' and Exists('$(TargetPath)') and ('$(DebugType)' == 'embedded' or Exists('$(_TargetPdbPath)'))">true</PublishWindowsPdb>
+ </PropertyGroup>
+ </Target>
+
+ <!--
+ Convert Portable and Embedded PDBs.
+ We publish converted PDBs to Symbol Store so that WinDBG can find them when debugging crash dumps.
+ Convert source link to srcsvr so that both WinDBG and VS can open the source files.
+
+ We add SRC_INDEX=public srcsvr variable in order to preserve the source server stream when
+ it's published to the public symbol server (msdl.microsoft.com).
+ -->
+ <Target Name="_DeployPortableSymbolsToSymStore"
+ AfterTargets="_InnerDeployToSymStore"
+ Inputs="$(TargetPath);$(_TargetPdbPath)"
+ Outputs="$(_SymStorePdbPath)"
+ Condition="'$(PublishWindowsPdb)' == 'true' and ('$(DebugType)' == 'portable' or '$(DebugType)' == 'embedded')">
+
+ <PropertyGroup>
+ <_PdbConverterPath>$(NuGetPackageRoot)microsoft.diasymreader.pdb2pdb\$(MicrosoftDiaSymReaderPdb2PdbVersion)\tools\Pdb2Pdb.exe</_PdbConverterPath>
+ <_PdbConverterCommandLineArgs>"$(TargetPath)" /out "$(_SymStorePdbPath)" /verbose /srcsvrvar SRC_INDEX=public</_PdbConverterCommandLineArgs>
+ </PropertyGroup>
+
+ <Error Text="Attempt to publish Portable PDB to SymStore without conversion: UsingToolPdbConverter property is false in project $(MSBuildProjectName)"
+ Condition="'$(UsingToolPdbConverter)' != 'true'"
+ ContinueOnError="false"/>
+
+ <MakeDir Directories="$(_SymStoreOutputDir)"/>
+
+ <Exec Command='"$(_PdbConverterPath)" $(_PdbConverterCommandLineArgs)' IgnoreExitCode="false" />
+
+ <ItemGroup>
+ <FileWrites Include="$(_SymStorePdbPath)"/>
+ </ItemGroup>
+ </Target>
+
+ <!--
+ The current MicroBuild symbol indexing task doesn't support specifying list of files to index.
+ Therefore we create hardlinks to the files in output directory, where DLLs and EXEs are signed.
+ These targets are executed after the signing phase so that we publish signed binaries to the
+ symbol store even if the files are copies and not hardlinked.
+ -->
+ <Target Name="_DeployWindowsSymbolsToSymStore"
+ AfterTargets="_InnerDeployToSymStore"
+ Condition="'$(PublishWindowsPdb)' == 'true' and ('$(DebugType)' == 'full' or '$(DebugType)' == 'pdbonly')"
+ Inputs="$(_TargetPdbPath)"
+ Outputs="$(_SymStorePdbPath)">
+
+ <MakeDir Directories="$(_SymStoreOutputDir)"/>
+
+ <Copy SourceFiles="$(_TargetPdbPath)"
+ DestinationFiles="$(_SymStorePdbPath)"
+ UseHardlinksIfPossible="true"/>
+
+ <ItemGroup>
+ <FileWrites Include="$(_SymStorePdbPath)"/>
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_DeployAssembliesToSymStore"
+ AfterTargets="_InnerDeployToSymStore"
+ Condition="'$(PublishWindowsPdb)' == 'true' and '$(UsingToolSymbolUploader)' != 'true'"
+ Inputs="$(TargetPath)"
+ Outputs="$(_SymStoreAssemblyPath)">
+
+ <MakeDir Directories="$(_SymStoreOutputDir)"/>
+
+ <Copy SourceFiles="$(TargetPath)"
+ DestinationFiles="$(_SymStoreAssemblyPath)"
+ UseHardlinksIfPossible="true"/>
+
+ <ItemGroup>
+ <FileWrites Include="$(_SymStoreAssemblyPath)"/>
+ </ItemGroup>
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tests.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tests.props
new file mode 100755
index 0000000000..fc7c90d7e0
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tests.props
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <PropertyGroup Condition="'$(IsPerformanceTestProject)' == ''">
+ <IsPerformanceTestProject>false</IsPerformanceTestProject>
+ <IsPerformanceTestProject Condition="$(MSBuildProjectName.EndsWith('.PerformanceTests'))">true</IsPerformanceTestProject>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(IsIntegrationTestProject)' == ''">
+ <IsIntegrationTestProject>false</IsIntegrationTestProject>
+ <IsIntegrationTestProject Condition="$(MSBuildProjectName.EndsWith('.IntegrationTests'))">true</IsIntegrationTestProject>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(IsUnitTestProject)' == ''">
+ <IsUnitTestProject>false</IsUnitTestProject>
+ <IsUnitTestProject Condition="$(MSBuildProjectName.EndsWith('.UnitTests')) or $(MSBuildProjectName.EndsWith('.Tests'))">true</IsUnitTestProject>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <IsTestProject>false</IsTestProject>
+ <IsTestProject Condition="'$(IsUnitTestProject)' == 'true' or '$(IsIntegrationTestProject)' == 'true' or '$(IsPerformanceTestProject)' == 'true'">true</IsTestProject>
+
+ <!-- Disable building Integration Test projects in LUT. -->
+ <BuildForLiveUnitTesting Condition="'$(BuildForLiveUnitTesting)' == '' and '$(IsIntegrationTestProject)' == 'true'">false</BuildForLiveUnitTesting>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(IsTestProject)' == 'true'">
+ <!-- VS TestExplorer uses this to identify a test project -->
+ <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
+
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkVersion)" IsImplicitlyDefined="true" />
+ </ItemGroup>
+
+ <PropertyGroup Condition="'$(IsTestProject)' == 'true'">
+ <!-- Treat test assemblies as non-shipping (do not publish or sign them). -->
+ <IsShipping Condition="'$(IsShipping)' == ''">false</IsShipping>
+
+ <!-- Default test runner -->
+ <TestRunnerName Condition="'$(UsingToolXUnit)' == 'true'">XUnit</TestRunnerName>
+
+ <!-- exclude test projects from source-build by default -->
+ <ExcludeFromSourceBuild Condition="'$(ExcludeFromSourceBuild)' == ''">true</ExcludeFromSourceBuild>
+ </PropertyGroup>
+
+ <!-- Import specialized props files of supported test runners -->
+ <Import Project="$(MSBuildThisFileDirectory)$(TestRunnerName)\$(TestRunnerName).props" Condition="'$(TestRunnerName)' != '' and Exists('$(MSBuildThisFileDirectory)$(TestRunnerName)\$(TestRunnerName).props')"/>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tests.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tests.targets
new file mode 100755
index 0000000000..e3cedb18a2
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tests.targets
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <PropertyGroup Condition="'$(IsTestProject)' == 'true'">
+ <AutoGenerateBindingRedirects Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">true</AutoGenerateBindingRedirects>
+
+ <_GetTestsToRunTarget Condition="'$(TargetFrameworks)' == ''">_InnerGetTestsToRun</_GetTestsToRunTarget>
+ <_GetTestsToRunTarget Condition="'$(TargetFrameworks)' != ''">_OuterGetTestsToRun</_GetTestsToRunTarget>
+
+ <!-- The runtime to run tests on: 'Core', 'Mono', 'Full' (desktop FX). -->
+ <TestRuntime Condition="'$(TestRuntime)' == '' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'">Core</TestRuntime>
+ <TestRuntime Condition="'$(TestRuntime)' == '' and '$(MSBuildRuntimeType)' == 'Mono'">Mono</TestRuntime>
+ <TestRuntime Condition="'$(TestRuntime)' == '' and '$(OS)' == 'Windows_NT'">Full</TestRuntime>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(IsTestProject)' == 'true' and '$(TestArchitectures)' == ''">
+ <TestArchitectures>$(PlatformTarget)</TestArchitectures>
+ <TestArchitectures Condition="'$(PlatformTarget)' == '' or '$(PlatformTarget)' == 'AnyCpu'">x64</TestArchitectures>
+ </PropertyGroup>
+
+ <Target Name="Test" DependsOnTargets="$(_GetTestsToRunTarget);RunTests" Condition="'$(IsUnitTestProject)' == 'true' or '$(IsPerformanceTestProject)' == 'true'" />
+ <Target Name="IntegrationTest" DependsOnTargets="$(_GetTestsToRunTarget);RunTests" Condition="'$(IsIntegrationTestProject)' == 'true'" />
+
+ <ItemGroup>
+ <_TestArchitectureItems Include="$(TestArchitectures)" />
+ </ItemGroup>
+
+ <!-- Using Inputs/Outputs just to loop over test architectures -->
+ <Target Name="_InnerGetTestsToRun"
+ Inputs="*%(_TestArchitectureItems.Identity)"
+ Outputs="*%(_TestArchitectureItems.Identity)"
+ Returns="@(TestToRun)"
+ Condition="'$(TestRuntime)' != '' and '$(SkipTests)' != 'true' and
+ ('$(TestTargetFrameworks)' == '' or $([System.String]::new(';$(TestTargetFrameworks);').Contains(';$(TargetFramework);')))">
+
+ <PropertyGroup>
+ <_TestArchitecture>%(_TestArchitectureItems.Identity)</_TestArchitecture>
+ <_ResultFileNameNoExt>$(MSBuildProjectName)_$(TargetFramework)_$(_TestArchitecture)</_ResultFileNameNoExt>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <TestToRun Include="$(TargetPath)">
+ <TargetFramework>$(TargetFramework)</TargetFramework>
+ <TargetFrameworkIdentifier>$(TargetFrameworkIdentifier)</TargetFrameworkIdentifier>
+ <TestRuntime>$(TestRuntime)</TestRuntime>
+ <Architecture>$(_TestArchitecture)</Architecture>
+ <EnvironmentDisplay>$(TargetFramework)|$(_TestArchitecture)</EnvironmentDisplay>
+ <ResultsFilePathWithoutExtension>$(_ResultFileNameNoExt)</ResultsFilePathWithoutExtension>
+ <ResultsXmlPath>$(ArtifactsTestResultsDir)$(_ResultFileNameNoExt).xml</ResultsXmlPath>
+ <ResultsHtmlPath>$(ArtifactsTestResultsDir)$(_ResultFileNameNoExt).html</ResultsHtmlPath>
+ <ResultsStdOutPath>$(ArtifactsLogDir)$(_ResultFileNameNoExt).log</ResultsStdOutPath>
+ <TestRunnerAdditionalArguments>$(TestRunnerAdditionalArguments)</TestRunnerAdditionalArguments>
+ </TestToRun>
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_OuterGetTestsToRun" Returns="@(TestToRun)">
+ <ItemGroup>
+ <_TargetFramework Include="$(TargetFrameworks)" />
+ </ItemGroup>
+ <MSBuild Projects="$(MSBuildProjectFile)"
+ Condition="'$(TargetFrameworks)' != ''"
+ Targets="_InnerGetTestsToRun"
+ Properties="TargetFramework=%(_TargetFramework.Identity)">
+ <Output ItemName="TestToRun" TaskParameter="TargetOutputs" />
+ </MSBuild>
+ </Target>
+
+ <!-- Import specialized targets files of supported test runners -->
+ <Import Project="$(MSBuildThisFileDirectory)$(TestRunnerName)\$(TestRunnerName).targets" Condition="'$(TestRunnerName)' != '' and Exists('$(MSBuildThisFileDirectory)$(TestRunnerName)\$(TestRunnerName).targets')"/>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tools.proj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tools.proj
new file mode 100755
index 0000000000..a3fa9cee22
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Tools.proj
@@ -0,0 +1,49 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project Sdk="Microsoft.NET.Sdk">
+ <Import Project="BuildStep.props" />
+
+ <PropertyGroup>
+ <TargetFramework>net472</TargetFramework>
+ </PropertyGroup>
+
+ <!--
+ Configure NuGet Restore to use NuGet.config file in the repository root.
+ We could drop a custom NuGet.config to the containing directory but it's simpler
+ if we use the same config for all restore operations.
+ -->
+ <PropertyGroup>
+ <RestoreConfigFile>$(RepoRoot)NuGet.config</RestoreConfigFile>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(DotNetBuildFromSource)' != 'true'">
+ <!-- Copy of 'sn.exe' in form of NuGet package. -->
+ <PackageReference Include="sn" Version="$(SNVersion)" IsImplicitlyDefined="true" />
+ <PackageReference Include="MicroBuild.Core" Version="$(MicroBuildCoreVersion)" IsImplicitlyDefined="true" />
+ <PackageReference Include="MicroBuild.Core.Sentinel" Version="1.0.0" IsImplicitlyDefined="true" />
+ <PackageReference Include="vswhere" Version="$(VSWhereVersion)" IsImplicitlyDefined="true" />
+ <PackageReference Include="Microsoft.DiaSymReader.Pdb2Pdb" Version="$(MicrosoftDiaSymReaderPdb2PdbVersion)" Condition="'$(UsingToolPdbConverter)' == 'true'" IsImplicitlyDefined="true" />
+ <PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="$(MicrosoftDotNetBuildTasksFeedVersion)" Condition="'$(PublishingToBlobStorage)' == 'true'" IsImplicitlyDefined="true" />
+ <PackageReference Include="Microsoft.DotNet.NuGetRepack.Tasks" Version="$(MicrosoftDotnetNuGetRepackTasksVersion)" Condition="'$(UsingToolNuGetRepack)' == 'true'" IsImplicitlyDefined="true" />
+ <PackageReference Include="Microsoft.DotNet.SignTool" Version="$(MicrosoftDotNetSignToolVersion)" IsImplicitlyDefined="true" />
+ <PackageReference Include="Microsoft.SymbolUploader.Build.Task" Version="$(MicrosoftSymbolUploaderBuildTaskVersion)" Condition="'$(UsingToolSymbolUploader)' == 'true'" IsImplicitlyDefined="true" />
+ <PackageReference Include="Microsoft.DotNet.Build.Tasks.VisualStudio" Version="$(MicrosoftDotNetBuildTasksVisualStudioVersion)" Condition="'$(UsingToolVSSDK)' == 'true'" IsImplicitlyDefined="true" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <_RepoToolManifest>$([MSBuild]::NormalizePath('$(RepoRoot)', '.config', 'dotnet-tools.json'))</_RepoToolManifest>
+ </PropertyGroup>
+
+ <Target Name="RestoreRepoTools"
+ Condition="'$(DotNetBuildFromSource)' != 'true' and Exists('$(_RepoToolManifest)')"
+ AfterTargets="Restore">
+
+ <Exec Command='"$(DotNetTool)" tool restore' WorkingDirectory="$(RepoRoot)" />
+ </Target>
+
+ <!-- Repository extensibility point -->
+ <Import Project="$(RepositoryEngineeringDir)Tools.props" Condition="Exists('$(RepositoryEngineeringDir)Tools.props')" />
+
+ <Import Project="InstallDotNetCore.targets" Condition="'$(DotNetBuildFromSource)' != 'true'" />
+
+ <Import Project="VisualStudio.AcquireOptimizationData.targets" Condition="'$(UsingToolVisualStudioIbcTraining)' == 'true'" />
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Version.BeforeCommonTargets.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Version.BeforeCommonTargets.targets
new file mode 100755
index 0000000000..f3340a5a31
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Version.BeforeCommonTargets.targets
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ Compute the IsShipping* properties
+
+ Unless specified otherwise project is assumed to produce artifacts (assembly, package, vsix, etc.) that ship.
+ Test projects automatically set IsShipping to false.
+
+ Some projects may produce packages that contain shipping assemblies but the packages themselves do not ship.
+ Thes projects shall specify IsShippingPackage=false and leave IsShipping unset (will default to true).
+
+ Targets that need to determine whether an artifact is shipping shall use the artifact specific IsShippingXxx property,
+ if available for the kind of artifact they operate on.
+ -->
+ <PropertyGroup>
+ <IsShipping Condition="'$(IsShipping)' == ''">true</IsShipping>
+
+ <IsShippingAssembly Condition="'$(IsShippingAssembly)' == ''">$(IsShipping)</IsShippingAssembly>
+ <IsShippingPackage Condition="'$(IsVisualStudioBuildPackage)' == 'true'">false</IsShippingPackage>
+ <IsShippingPackage Condition="'$(IsShippingPackage)' == ''">$(IsShipping)</IsShippingPackage>
+ <IsShippingVsix Condition="'$(IsShippingVsix)' == ''">$(IsShipping)</IsShippingVsix>
+ </PropertyGroup>
+
+ <!--
+ Specification: https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/Versioning.md
+
+ Workaround for https://github.com/dotnet/sdk/issues/3173:
+ The following must be evaluated after the project file is imported but before Microsoft.NET.DefaultAssemblyInfo.targets from .NET Core SDK is imported.
+ The project may set VersionPrefix, MajorVersion, MinorVersion, or AutoGenerateAssemblyVersion properties, which are consumed below.
+ Microsoft.NET.DefaultAssemblyInfo.targets consumes VersionPrefix property, which may be set below.
+ -->
+
+ <!--
+ Version numbers calculated here are date-based. In official builds this is given by OfficialBuildId parameter,
+ but other builds do not have such input and would therefore be non-deterministic.
+ -->
+ <PropertyGroup Condition="'$(OfficialBuild)' == 'true' or '$(DotNetUseShippingVersions)' == 'true'">
+ <!--
+ Building MSIs from dev build requires file versions to be increasing.
+ Use the current date in non-official builds. Note that this reduces the deterministic properties of the build
+ and should only be enabled when it's necessary to test-install the MSIs produced by the build.
+ -->
+ <_BuildNumber>$(OfficialBuildId)</_BuildNumber>
+ <_BuildNumber Condition="'$(OfficialBuildId)' == ''">$([System.DateTime]::Now.ToString(yyyyMMdd)).1</_BuildNumber>
+
+ <!--
+ OfficialBuildId is assumed to have format "20yymmdd.r" (the assumption is checked later in a target).
+ -->
+ <_BuildNumberYY>$(_BuildNumber.Substring(2, 2))</_BuildNumberYY>
+ <_BuildNumberMM>$(_BuildNumber.Substring(4, 2))</_BuildNumberMM>
+ <_BuildNumberDD>$(_BuildNumber.Substring(6, 2))</_BuildNumberDD>
+ <_BuildNumberR>$(_BuildNumber.Substring(9))</_BuildNumberR>
+
+ <!-- SHORT_DATE := yy * 1000 + mm * 50 + dd -->
+ <VersionSuffixDateStamp>$([MSBuild]::Add($([MSBuild]::Add($([MSBuild]::Multiply($(_BuildNumberYY), 1000)), $([MSBuild]::Multiply($(_BuildNumberMM), 50)))), $(_BuildNumberDD)))</VersionSuffixDateStamp>
+
+ <!-- REVISION := r -->
+ <VersionSuffixBuildOfTheDay>$(_BuildNumberR)</VersionSuffixBuildOfTheDay>
+ <VersionSuffixBuildOfTheDayPadded>$(VersionSuffixBuildOfTheDay.PadLeft(2, $([System.Convert]::ToChar(`0`))))</VersionSuffixBuildOfTheDayPadded>
+
+ <!-- PATCH_NUMBER := (SHORT_DATE - VersionBaseShortDate) * 100 + r -->
+ <_PatchNumber>$([MSBuild]::Add($([MSBuild]::Multiply($([MSBuild]::Subtract($(VersionSuffixDateStamp), $([MSBuild]::ValueOrDefault($(VersionBaseShortDate), 19000)))), 100)), $(_BuildNumberR)))</_PatchNumber>
+ </PropertyGroup>
+
+ <!--
+ Calculate VersionPrefix.
+ -->
+
+ <!--
+ The project can specify version either directly using the .NET SDK recognized property VersionPrefix, or using MajorVersion and MinorVersion properties.
+ Note that .NET Core SDK sets VersionPrefix to 1.0.0 if not set by the project. Override it here if the project sets MajorVersion, MinorVersion, and optionally a PatchVersion.
+ -->
+ <PropertyGroup>
+ <VersionPrefix Condition="'$(MajorVersion)' != '' and '$(MinorVersion)' != ''">$(MajorVersion).$(MinorVersion).$([MSBuild]::ValueOrDefault('$(PatchVersion)', '0'))</VersionPrefix>
+ <_OriginalVersionPrefix>$(VersionPrefix)</_OriginalVersionPrefix>
+ </PropertyGroup>
+
+ <!--
+ If a package is designated to be a release-only package (PreReleaseVersionLabel is empty) its package version does
+ not include any pre-release labels in official build. The 3rd component of the version prefix is overwritten either
+ by PATCH_NUMBER or '0' in non-official builds.
+ -->
+ <PropertyGroup Condition="'$(PreReleaseVersionLabel)' == ''">
+ <_VersionPrefixMajor>$(VersionPrefix.Split('.')[0])</_VersionPrefixMajor>
+ <_VersionPrefixMinor>$(VersionPrefix.Split('.')[1])</_VersionPrefixMinor>
+ <VersionPrefix>$(_VersionPrefixMajor).$(_VersionPrefixMinor).$([MSBuild]::ValueOrDefault($(_PatchNumber), '0'))</VersionPrefix>
+ <VersionSuffix/>
+ </PropertyGroup>
+
+ <!--
+ Calculate VersionSuffix.
+ -->
+ <PropertyGroup Condition="'$(PreReleaseVersionLabel)' != '' or '$(VersionSuffixDateStamp)' == ''">
+ <_PreReleaseLabel>$(PreReleaseVersionLabel)</_PreReleaseLabel>
+ <_PreReleaseLabel Condition="'$(ContinuousIntegrationBuild)' == 'true' and '$(OfficialBuild)' != 'true'">ci</_PreReleaseLabel>
+ <_PreReleaseLabel Condition="'$(ContinuousIntegrationBuild)' != 'true'">dev</_PreReleaseLabel>
+
+ <_BuildNumberLabels Condition="'$(VersionSuffixDateStamp)' != '' and '$(SemanticVersioningV1)' != 'true'">.$(VersionSuffixDateStamp).$(VersionSuffixBuildOfTheDay)</_BuildNumberLabels>
+ <_BuildNumberLabels Condition="'$(VersionSuffixDateStamp)' != '' and '$(SemanticVersioningV1)' == 'true'">-$(VersionSuffixDateStamp)-$(VersionSuffixBuildOfTheDayPadded)</_BuildNumberLabels>
+
+ <!--
+ If DotNetFinalVersionKind is specified, overrides the package version produced by the build like so:
+ "" 1.2.3-beta.12345.67
+ "prerelease" 1.2.3-beta
+ "release" 1.2.3
+ -->
+ <VersionSuffix Condition="'$(DotNetFinalVersionKind)' == 'release'"/>
+ <VersionSuffix Condition="'$(DotNetFinalVersionKind)' == 'prerelease' and '$(SemanticVersioningV1)' != 'true'">$(_PreReleaseLabel).final</VersionSuffix>
+ <VersionSuffix Condition="'$(DotNetFinalVersionKind)' == 'prerelease' and '$(SemanticVersioningV1)' == 'true'">$(_PreReleaseLabel)-final</VersionSuffix>
+ <VersionSuffix Condition="'$(DotNetFinalVersionKind)' == ''">$(_PreReleaseLabel)$(_BuildNumberLabels)</VersionSuffix>
+
+ <!--
+ Some projects want to remain producing prerelease packages even if we are doing a final stable build because
+ they don't ship or aren't ready to ship stable. Those projects can set SuppressFinalPackageVersion property to true.
+
+ TODO: BlockStable is obsolete. Remove once repos update. https://github.com/dotnet/arcade/issues/1213
+ -->
+ <VersionSuffix Condition="'$(BlockStable)' == 'true' or '$(SuppressFinalPackageVersion)' == 'true'">$(_PreReleaseLabel)$(_BuildNumberLabels)</VersionSuffix>
+
+ <!--
+ If a project produces non-shipping packages, these packages should always include the build number label
+ -->
+ <VersionSuffix Condition="'$(IsShippingPackage)' != 'true'">$(_PreReleaseLabel)$(_BuildNumberLabels)</VersionSuffix>
+
+ <!--
+ Disable NuGet Pack warning that the version is SemVer 2.0.
+ SemVer 2.0 is supported by NuGet since 3.0.0 (July 2015) in some capacity, and fully since 3.5.0 (October 2016).
+ -->
+ <NoWarn Condition="'$(SemanticVersioningV1)' != 'true'">$(NoWarn);NU5105</NoWarn>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(VersionSuffixDateStamp)' == ''">
+ <!--
+ Don't include a commit SHA to AssemblyInformationalVersion.
+ It would reduce the possibility of sharing otherwise unchanged build artifacts across deterministic builds.
+ -->
+ <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
+ </PropertyGroup>
+
+ <!--
+ Workaround for https://github.com/dotnet/sdk/issues/3173.
+ Overwrite the value of Version set in Microsoft.NET.DefaultAssemblyInfo.targets.
+ -->
+ <PropertyGroup>
+ <VersionPrefix Condition="'$(VersionPrefix)' == ''">1.0.0</VersionPrefix>
+ <Version>$(VersionPrefix)</Version>
+ <Version Condition="'$(VersionSuffix)' != ''">$(Version)-$(VersionSuffix)</Version>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Version.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Version.targets
new file mode 100755
index 0000000000..f87550cf69
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Version.targets
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ Specification: https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/Versioning.md
+
+ Properties:
+ SemanticVersioningV1 "true" if the Version needs to respect SemVer 1.0. Default is false, which means format following SemVer 2.0.
+ -->
+
+ <UsingTask TaskName="Microsoft.DotNet.Arcade.Sdk.CalculateAssemblyAndFileVersions" AssemblyFile="$(ArcadeSdkBuildTasksAssembly)" />
+
+ <Target Name="_InitializeAssemblyVersion" BeforeTargets="GetAssemblyVersion">
+ <Warning Text="AssemblyVersion '$(AssemblyVersion)' overridden by auto-generated version" Condition="'$(AssemblyVersion)' != '' and '$(AutoGenerateAssemblyVersion)' == 'true'"/>
+
+ <Microsoft.DotNet.Arcade.Sdk.CalculateAssemblyAndFileVersions
+ VersionPrefix="$(_OriginalVersionPrefix)"
+ BuildNumber="$(_BuildNumber)"
+ PatchNumber="$(_PatchNumber)"
+ AutoGenerateAssemblyVersion="$(AutoGenerateAssemblyVersion)"
+ Condition="'$(VersionSuffixDateStamp)' != ''">
+
+ <Output TaskParameter="AssemblyVersion" PropertyName="AssemblyVersion" Condition="'$(AssemblyVersion)' == '' or '$(AutoGenerateAssemblyVersion)' == 'true'"/>
+ <Output TaskParameter="FileVersion" PropertyName="FileVersion"/>
+ </Microsoft.DotNet.Arcade.Sdk.CalculateAssemblyAndFileVersions>
+
+ <PropertyGroup Condition="'$(VersionSuffixDateStamp)' == ''">
+ <!--
+ Set FileVersion to a distinct version that's greater than any shipping version.
+ This makes it possible to install binaries produced by a dev build over product binaries,
+ provided that the installer only requires higher version.
+ -->
+ <FileVersion>42.42.42.42424</FileVersion>
+
+ <!--
+ Respect version explicitly set by the project.
+ The default .NET Core SDK implementation sets AssemblyVersion from NuGet package version,
+ which we want to override in dev builds.
+ -->
+ <AssemblyVersion Condition="'$(AssemblyVersion)' == ''">42.42.42.42</AssemblyVersion>
+ </PropertyGroup>
+ </Target>
+
+ <!--
+ GenerateNativeVersionFile target is a standalone target intended to be pulled into a build once as
+ a pre-step before kicking off a native build. It will generate a _version.h or _version.c depending
+ on the OS it is targeting.
+ -->
+ <Target Name="GenerateNativeVersionFile"
+ DependsOnTargets="_InitializeAssemblyVersion;InitializeSourceControlInformationFromSourceControlManager">
+
+ <Error Condition="'$(SourceRevisionId)' == ''" Text="SourceRevisionId is not set, which means the SourceLink targets are not included in the build. Those are needed to produce a correct sha for our build outputs." />
+
+ <PropertyGroup>
+ <_SourceBuildInfo> %40Commit: $(SourceRevisionId)</_SourceBuildInfo>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(OS)' == 'Windows_NT'">
+ <NativeVersionFile Condition="'$(NativeVersionFile)' == ''">$(IntermediateOutputPath)_version.h</NativeVersionFile>
+ <_WindowsFileVersion>$(FileVersion.Replace('.', ','))</_WindowsFileVersion>
+ <_Windows_VER_DEBUG>0</_Windows_VER_DEBUG>
+ <_Windows_VER_DEBUG Condition="'$(Configuration)'=='Debug'">VS_FF_DEBUG</_Windows_VER_DEBUG>
+
+ <_NativeVersionFileContents>
+<![CDATA[
+#ifndef VER_COMPANYNAME_STR
+#define VER_COMPANYNAME_STR "Microsoft Corporation"
+#endif
+#ifndef VER_FILEDESCRIPTION_STR
+#define VER_FILEDESCRIPTION_STR "$(AssemblyName)"
+#endif
+#ifndef VER_INTERNALNAME_STR
+#define VER_INTERNALNAME_STR VER_FILEDESCRIPTION_STR
+#endif
+#ifndef VER_ORIGINALFILENAME_STR
+#define VER_ORIGINALFILENAME_STR VER_FILEDESCRIPTION_STR
+#endif
+#ifndef VER_PRODUCTNAME_STR
+#define VER_PRODUCTNAME_STR "Microsoft\xae .NET Framework"
+#endif
+#undef VER_PRODUCTVERSION
+#define VER_PRODUCTVERSION $(_WindowsFileVersion)
+#undef VER_PRODUCTVERSION_STR
+#define VER_PRODUCTVERSION_STR "$(_WindowsFileVersion)$(_SourceBuildInfo)"
+#undef VER_FILEVERSION
+#define VER_FILEVERSION $(_WindowsFileVersion)
+#undef VER_FILEVERSION_STR
+#define VER_FILEVERSION_STR "$(_WindowsFileVersion)$(_SourceBuildInfo)"
+#ifndef VER_LEGALCOPYRIGHT_STR
+#define VER_LEGALCOPYRIGHT_STR "\xa9 Microsoft Corporation. All rights reserved."
+#endif
+#ifndef VER_DEBUG
+#define VER_DEBUG $(_Windows_VER_DEBUG)
+#endif
+]]>
+ </_NativeVersionFileContents>
+ </PropertyGroup>
+
+ <!--
+ Copy the NativeVersion.rc file next to the version header so that it can be picked
+ up and used in the native build along with the version.h file.
+ -->
+ <Copy SourceFiles="$(MSBuildThisFileDirectory)NativeVersion.rc"
+ DestinationFolder="$([System.IO.Path]::GetDirectoryName($(NativeVersionFile)))"
+ Condition="'$(OS)' == 'Windows_NT'" />
+
+ <PropertyGroup Condition="'$(OS)' != 'Windows_NT'">
+ <NativeVersionFile Condition="'$(NativeVersionFile)' == ''">$(ArtifactsObjDir)_version.c</NativeVersionFile>
+
+ <!--
+ There isn't a defacto standard for including version information in a native binary on unix so we defined a static
+ variable which contains the version information we want which can be retrieved by using What(1) or strings+grep.
+ See https://github.com/dotnet/coreclr/issues/3133 for further discussion on this approach.
+ -->
+ <_NativeVersionFileContents>
+<![CDATA[
+static char sccsid[] __attribute__((used)) = "@(#)Version $(FileVersion)$(_SourceBuildInfo)";
+ ]]>
+ </_NativeVersionFileContents>
+ </PropertyGroup>
+
+ <MakeDir Directories="$([System.IO.Path]::GetDirectoryName($(NativeVersionFile)))" />
+
+ <WriteLinesToFile
+ File="$(NativeVersionFile)"
+ Lines="$(_NativeVersionFileContents.Replace(';', '%3B'))"
+ Overwrite="true"
+ WriteOnlyWhenDifferent="true" />
+
+ <ItemGroup>
+ <FileWrites Include="$(NativeVersionFile)" />
+ </ItemGroup>
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.AcquireOptimizationData.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.AcquireOptimizationData.targets
new file mode 100755
index 0000000000..66113c20b6
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.AcquireOptimizationData.targets
@@ -0,0 +1,82 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ Properties:
+ RepositoryName Current repository name (e.g. 'dotnet/roslyn').
+ VisualStudioIbcSourceBranchName The name of the branch of the repository that was used to produce the IBC data to be acquired (e.g. 'master').
+ VisualStudioIbcDropId The id of the drop. If specified, drop named 'OptimizationData/$(RepositoryName)/$(VisualStudioIbcSourceBranchName)/$(VisualStudioIbcDropId)' is used.
+ Otherwise, the most recent drop of name that matches 'OptimizationData/$(RepositoryName)/$(VisualStudioIbcSourceBranchName)/*' is used.
+ -->
+
+ <PropertyGroup>
+ <_VisualStudioBuildTasksAssembly>$(NuGetPackageRoot)microsoft.dotnet.build.tasks.visualstudio\$(MicrosoftDotNetBuildTasksVisualStudioVersion)\tools\net472\Microsoft.DotNet.Build.Tasks.VisualStudio.dll</_VisualStudioBuildTasksAssembly>
+ </PropertyGroup>
+
+ <UsingTask AssemblyFile="$(_VisualStudioBuildTasksAssembly)" TaskName="Microsoft.DotNet.Build.Tasks.VisualStudio.FindLatestDrop"/>
+
+ <PropertyGroup>
+ <!-- TODO: remove (https://github.com/dotnet/arcade/issues/2092) -->
+ <EnablePartialNgenOptimization Condition="'$(EnablePartialNgenOptimization)' == '' and '$(Configuration)' == 'Release' and '$(OfficialBuild)' == 'true'">true</EnablePartialNgenOptimization>
+
+ <EnableNgenOptimization Condition="'$(EnableNgenOptimization)' == ''">$(EnablePartialNgenOptimization)</EnableNgenOptimization>
+ </PropertyGroup>
+
+ <!--
+ Acquire optimization data from VS drop, unless suppressed by setting EnableNgenOptimization to false.
+ Find the latest optimization data drop and downloads it to IbcOptimizationDataDir directory.
+ -->
+ <Target Name="_AcquireVisualStudioOptimizationData"
+ DependsOnTargets="_PrepareAcquireVisualStudioOptimizationData;_DownloadVisualStudioOptimizationDataOpt"
+ AfterTargets="Restore"
+ Condition="'$(EnableNgenOptimization)' == 'true'">
+ </Target>
+
+ <Target Name="_PrepareAcquireVisualStudioOptimizationData">
+ <PropertyGroup>
+ <_DropToolPath>$(NuGetPackageRoot)drop.app\$(DropAppVersion)\lib\net45\drop.exe</_DropToolPath>
+ <_DropToolExists>false</_DropToolExists>
+ <_DropToolExists Condition="Exists('$(_DropToolPath)')">true</_DropToolExists>
+ </PropertyGroup>
+
+ <!--
+ Only report error when running in an official build.
+ Allows to test optimization data operations locally by running
+ cibuild.cmd after manually restoring internal tools project.
+ -->
+ <Error Text='Internal tool not found: "$(_DropToolPath)". Run restore on "$(RepositoryEngineeringDir)common\internal\Tools.csproj".'
+ Condition="'$(OfficialBuild)' == 'true' and !$(_DropToolExists)"/>
+ </Target>
+
+ <Target Name="_DownloadVisualStudioOptimizationDataOpt" Condition="$(_DropToolExists)">
+ <Error Text="VisualStudioDropAccessToken property has to be specified when EnableNgenOptimization and OfficialBuild is true" Condition="'$(VisualStudioDropAccessToken)' == '' and '$(OfficialBuild)' == 'true'"/>
+ <Error Text="RepositoryName property has to be specified when EnableNgenOptimization is true" Condition="'$(RepositoryName)' == ''"/>
+ <Error Text="VisualStudioIbcSourceBranchName property has to be specified when EnableNgenOptimization is true" Condition="'$(VisualStudioIbcSourceBranchName)' == ''"/>
+
+ <PropertyGroup>
+ <_DropServiceUrl>https://devdiv.artifacts.visualstudio.com</_DropServiceUrl>
+ <_PatAuthArg Condition="'$(VisualStudioDropAccessToken)' != ''">--patAuth "$(VisualStudioDropAccessToken)"</_PatAuthArg>
+ <_DestArg>$(IbcOptimizationDataDir.TrimEnd('\'))</_DestArg>
+ <_DropsJsonPath>$(ArtifactsLogDir)OptimizationDataDrops.json</_DropsJsonPath>
+ <_DropsLogPath>$(ArtifactsLogDir)OptimizationDataAcquisition.log</_DropsLogPath>
+ <_DropNamePrefix>OptimizationData/$(RepositoryName)/$(VisualStudioIbcSourceBranchName)</_DropNamePrefix>
+ <_DropName>$(_DropNamePrefix)/$(VisualStudioIbcDropId)</_DropName>
+ </PropertyGroup>
+
+ <Message Text="Acquiring optimization data" Importance="high"/>
+
+ <Exec Command='"$(_DropToolPath)" list --dropservice "$(_DropServiceUrl)" $(_PatAuthArg) --pathPrefixFilter "$(_DropNamePrefix)" --toJsonFile "$(_DropsJsonPath)" --traceto "$(_DropsLogPath)"'
+ Condition="'$(VisualStudioIbcDropId)' == ''"/>
+
+ <FindLatestDrop DropListPath="$(_DropsJsonPath)" Condition="'$(VisualStudioIbcDropId)' == ''">
+ <Output TaskParameter="DropName" PropertyName="_DropName"/>
+ </FindLatestDrop>
+
+ <Error Text="No drop matching given name found: $(_DropServiceUrl)/$(_DropNamePrefix)/*" Condition="'$(_DropName)' == ''"/>
+
+ <MakeDir Directories="$(IbcOptimizationDataDir)" />
+
+ <Message Text="Downloading optimization data from service $(_DropServiceUrl), drop $(_DropName)" Importance="high"/>
+ <Exec Command='"$(_DropToolPath)" get --dropservice "$(_DropServiceUrl)" $(_PatAuthArg) --name "$(_DropName)" --dest "$(_DestArg)" --traceto "$(_DropsLogPath)"' />
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.BuildIbcTrainingInputs.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.BuildIbcTrainingInputs.targets
new file mode 100755
index 0000000000..61beb3cd1c
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.BuildIbcTrainingInputs.targets
@@ -0,0 +1,29 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ Properties:
+ RepositoryName Current repository name (e.g. 'dotnet/roslyn').
+ VisualStudioDropName Product drop name, e.g. 'Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)'
+ -->
+
+ <PropertyGroup>
+ <_VisualStudioBuildTasksAssembly>$(NuGetPackageRoot)microsoft.dotnet.build.tasks.visualstudio\$(MicrosoftDotNetBuildTasksVisualStudioVersion)\tools\net472\Microsoft.DotNet.Build.Tasks.VisualStudio.dll</_VisualStudioBuildTasksAssembly>
+ </PropertyGroup>
+
+ <UsingTask TaskName="Microsoft.DotNet.Build.Tasks.VisualStudio.GenerateTrainingInputFiles" AssemblyFile="$(_VisualStudioBuildTasksAssembly)" />
+ <UsingTask TaskName="Microsoft.DotNet.Build.Tasks.VisualStudio.GenerateTrainingPropsFile" AssemblyFile="$(_VisualStudioBuildTasksAssembly)" />
+
+ <Target Name="_BuildTrainingInputs" AfterTargets="Build">
+ <Error Condition="('$(VisualStudioDropName)' == '' or '$(RepositoryName)' == '') and '$(OfficialBuild)' == 'true'"
+ Text="Properties VisualStudioDropName and RepositoryName must be specified in official build that produces Visual Studio insertion components." />
+
+ <GenerateTrainingInputFiles ConfigurationFile="$(RepositoryEngineeringDir)config\OptProf.json"
+ InsertionDirectory="$(VisualStudioSetupInsertionPath)"
+ OutputDirectory="$(ArtifactsDir)OptProf\$(Configuration)\Data" />
+
+ <GenerateTrainingPropsFile ProductDropName="$(VisualStudioDropName)"
+ RepositoryName="$(RepositoryName)"
+ OutputDirectory="$(VisualStudioSetupInsertionPath)OptProf"/>
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.ImportSdk.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.ImportSdk.targets
new file mode 100755
index 0000000000..46539b648e
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.ImportSdk.targets
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <Import Project="$(VSToolsPath)\vssdk\Microsoft.VsSDK.targets"/>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.InsertionManifests.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.InsertionManifests.targets
new file mode 100755
index 0000000000..e7c35b5a4a
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.InsertionManifests.targets
@@ -0,0 +1,42 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <ItemGroup>
+ <_StubFiles Include="$(VisualStudioSetupIntermediateOutputPath)**\*.stub"/>
+ <_StubDirs Include="@(_StubFiles->'%(RecursiveDir)')"/>
+ </ItemGroup>
+
+ <!---
+ This target is invoked in a separate phase after all input VSIX files are signed.
+ This is important since the manifest contain hashes of the VSIX files.
+ -->
+ <Target Name="GenerateVisualStudioInsertionManifests"
+ AfterTargets="Pack"
+ Outputs="%(_StubDirs.Identity)"
+ Condition="'@(_StubDirs)' != ''">
+ <PropertyGroup>
+ <_ComponentDir>%(_StubDirs.Identity)</_ComponentDir>
+ <_ComponentName>$(_ComponentDir.TrimEnd('\'))</_ComponentName>
+ </PropertyGroup>
+
+ <Message Text="Generating manifest for VS component '$(_ComponentName)'" Importance="high"/>
+
+ <Error Condition="'$(VisualStudioDropName)' == '' and '$(OfficialBuild)' == 'true'"
+ Text="Property VisualStudioDropName must be specified in official build that produces Visual Studio insertion components." />
+
+ <ItemGroup>
+ <_Args Include="OfficialBuild=$(OfficialBuild)" />
+ <_Args Include="ComponentName=$(_ComponentName)"/>
+ <_Args Include="SetupOutputPath=$(VisualStudioSetupInsertionPath)"/>
+ <_Args Include="ComponentIntermediateOutputPath=$(VisualStudioSetupIntermediateOutputPath)$(_ComponentName)\"/>
+ <_Args Include="SwixBuildPath=$(NuGetPackageRoot)microbuild.plugins.swixbuild\$(MicroBuildPluginsSwixBuildVersion)\"/>
+ <_Args Include="VisualStudioDropName=$(VisualStudioDropName)" />
+ </ItemGroup>
+
+ <!--
+ Invoke GenerateSetupManifest target directly (instead of Build) to skip logic in common targets that is not needed
+ and adds unnecessary dependency on .NET Framework reference assemblies.
+ -->
+ <MSBuild Projects="VisualStudio.SetupPackage.vsmanproj" Properties="@(_Args)" Targets="_BuildManifest"/>
+ </Target>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.SetupPackage.swixproj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.SetupPackage.swixproj
new file mode 100755
index 0000000000..b728f97bae
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.SetupPackage.swixproj
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ Required variables:
+ SwrProperties Properties and their values ("Prop1=Value1;Prop2=Value2;...") to be substituted in the swr files.
+ SwrFiles Files to be included.
+ SwrPackageName Name of the component (VSIX)
+ IntermediateOutputPath Intermediate output path.
+ SwixBuildPath SwixBuild package path.
+ -->
+
+ <PropertyGroup>
+ <OutputArchitecture>neutral</OutputArchitecture>
+ <OutputLocalized>false</OutputLocalized>
+ <OutputType>vsix</OutputType>
+ <IsPackage>true</IsPackage>
+ <OutputName>$(SwrPackageName)</OutputName>
+ </PropertyGroup>
+
+ <Import Project="$(SwixBuildPath)build\MicroBuild.Plugins.*.props" />
+
+ <ItemGroup>
+ <_SwrProperties Include="$([MSBuild]::Unescape($(SwrProperties)))" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);@(_SwrProperties)</PackagePreprocessorDefinitions>
+ <OutputPath>$(IntermediateOutputPath)</OutputPath>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <Package Include="$(SwrFiles)" />
+ </ItemGroup>
+
+ <Import Project="$(SwixBuildPath)build\MicroBuild.Plugins.*.targets" />
+</Project> \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.SetupPackage.vsmanproj b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.SetupPackage.vsmanproj
new file mode 100755
index 0000000000..00f787fa09
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.SetupPackage.vsmanproj
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ Required variables:
+ OfficialBuild True for official builds.
+ ComponentName Name of the component (VSIX)
+ SetupOutputPath Directory to drop Willow manifests to.
+ ComponentIntermediateOutputPath Intermediate directory where the component is being built.
+ SwixBuildPath SwixBuild package path.
+ VisualStudioDropName The name of Visual Studio drop, e.g.
+ "Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)"
+ The manifest will be published with URI
+ https://vsdrop.corp.microsoft.com/file/v1/$(VisualStudioDropName)
+ -->
+
+ <PropertyGroup>
+ <ResolveNuGetPackages>false</ResolveNuGetPackages>
+ <ImportDirectoryBuildProps>false</ImportDirectoryBuildProps>
+ <ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
+ </PropertyGroup>
+
+ <Import Project="$(SwixBuildPath)build\MicroBuild.Plugins.*.props" />
+
+ <PropertyGroup>
+ <FinalizeManifest>true</FinalizeManifest>
+ <FinalizeSkipLayout>true</FinalizeSkipLayout>
+ <IsPackage>true</IsPackage>
+ <TargetName>$(ComponentName)</TargetName>
+ <OutputPath>$(SetupOutputPath)</OutputPath>
+ <IntermediateOutputPath>$(ComponentIntermediateOutputPath)</IntermediateOutputPath>
+
+ <!-- Note that the url is expected to end with ';' (%3B) -->
+ <ManifestPublishUrl Condition="'$(VisualStudioDropName)' != ''">https://vsdrop.corp.microsoft.com/file/v1/$(VisualStudioDropName)%3B</ManifestPublishUrl>
+ <ManifestPublishUrl Condition="'$(VisualStudioDropName)' == ''">http://localhost/non-official-build%3B</ManifestPublishUrl>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_PackageStubFiles Include="$(ComponentIntermediateOutputPath)*.stub"/>
+ <MergeManifest Include="@(_PackageStubFiles->'$(SetupOutputPath)%(Filename).json')"/>
+ </ItemGroup>
+
+ <Import Project="$(SwixBuildPath)build\MicroBuild.Plugins.*.targets" />
+
+ <Target Name="_BuildManifest" DependsOnTargets="_SetManifestBuildVersion;GenerateSetupManifest" />
+
+ <!--
+ Each stub file contains VSIX version of the respective VSIX file.
+ We require that all VSIXes included in a single VS insertion component have the same version.
+ This version will be set to ManifestBuildVersion.
+ -->
+ <Target Name="_SetManifestBuildVersion">
+
+ <ReadLinesFromFile File="%(_PackageStubFiles.Identity)">
+ <Output TaskParameter="Lines" ItemName="_StubLine"/>
+ </ReadLinesFromFile>
+
+ <ItemGroup>
+ <_StubLineSplit Include="@(_StubLine)"
+ Name="$([MSBuild]::ValueOrDefault('%(_StubLine.Identity)', '').Split('/')[0])"
+ Version="$([MSBuild]::ValueOrDefault('%(_StubLine.Identity)', '').Split('/')[1])" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <_VsixVersion Include="%(_StubLineSplit.Version)" Name="%(_StubLineSplit.Name)" />
+ </ItemGroup>
+
+ <RemoveDuplicates Inputs="@(_VsixVersion)">
+ <Output TaskParameter="Filtered" ItemName="_VsixVersionNoDuplicates"/>
+ </RemoveDuplicates>
+
+ <Error Text="Visual Studio component '$(ComponentName)' contains multiple VSIX files with different versions: @(_VsixVersionNoDuplicates->'%(Name) (version %(Identity))', ', ')"
+ Condition="@(_VsixVersionNoDuplicates->Count()) != 1"/>
+
+ <PropertyGroup>
+ <ManifestBuildVersion>@(_VsixVersionNoDuplicates)</ManifestBuildVersion>
+ </PropertyGroup>
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.VsixBuild.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.VsixBuild.targets
new file mode 100755
index 0000000000..093a2c34b5
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.VsixBuild.targets
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ There are three kinds of projects that use targets defined here:
+ 1) Projects using VS SDK to build VSIX packages: IsVsixProject == true, CreateVsixContainer == true
+ 2) Projects using VS SDK to generate .pkgdef files: IsVsixProject == true, GeneratePkgDefFile == true
+ 3) Projects that pack Willow packages (swix): SwrFile items present
+
+ The main targets in this file are:
+ 1) FinalizeInsertionVsixFiles
+ Removes Experimental flag from VSIXes that comprise VS insertion components and copies the updated VSIXes to VSSetup\Insertion directory.
+
+ Writes a stub file to component intermediate directory for each VSIX project that belongs to this component.
+ This stub file is used by VisualStudio.Insertion.proj to compose insertion components.
+
+ 2) SwixBuild
+ Builds a Willow component out of SwrFiles.
+ Writes a stub file to component intermediate directory.
+ -->
+
+ <PropertyGroup>
+ <_VisualStudioBuildTasksAssembly>$(NuGetPackageRoot)microsoft.dotnet.build.tasks.visualstudio\$(MicrosoftDotNetBuildTasksVisualStudioVersion)\tools\net472\Microsoft.DotNet.Build.Tasks.VisualStudio.dll</_VisualStudioBuildTasksAssembly>
+ </PropertyGroup>
+
+ <UsingTask TaskName="Microsoft.DotNet.Build.Tasks.VisualStudio.FinalizeInsertionVsixFile" AssemblyFile="$(_VisualStudioBuildTasksAssembly)" />
+
+ <PropertyGroup>
+ <!--
+ TODO: Currently we need to erase Experimental flag from VSIXes that are inserted into VS.
+ The build produces VSIXes with the flag on and FinalizeInsertionVsixFiles target then makes a copy to VisualStudioSetupInsertionPath
+ and updates the manifest.
+ Instead the VSIX installer should allow to override the experimental flag, so that we can only produce a single VSIX and
+ build VSIX that is going to be inserted into VS directly to directory $(VisualStudioSetupInsertionPath).
+ -->
+ <_TargetVsixContainerDir>$(VisualStudioSetupOutputPath)</_TargetVsixContainerDir>
+
+ <TargetVsixContainerName Condition="'$(TargetVsixContainerName)' == ''">$(TargetName).vsix</TargetVsixContainerName>
+ <TargetVsixContainer Condition="'$(TargetVsixContainer)' == ''">$(_TargetVsixContainerDir)$(TargetVsixContainerName)</TargetVsixContainer>
+
+ <DeployExtension Condition="'$(DeployProjectOutput)' == 'true'">true</DeployExtension>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(VisualStudioInsertionComponent)' != ''">
+ <_ComponentIntermediateDir>$(VisualStudioSetupIntermediateOutputPath)$(VisualStudioInsertionComponent)\</_ComponentIntermediateDir>
+
+ <IsProductComponent>true</IsProductComponent>
+
+ <Ngen Condition="'$(Ngen)' == ''">true</Ngen>
+ <NgenArchitecture Condition="'$(NgenArchitecture)' == ''">All</NgenArchitecture>
+ <NgenPriority Condition="'$(NgenPriority)' == ''">3</NgenPriority>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(VisualStudioInsertionComponent)' != ''">
+ <ProjectReference Update="@(ProjectReference)">
+ <Ngen Condition="'%(Ngen)' == ''">true</Ngen>
+ <NgenArchitecture Condition="'%(NgenArchitecture)' == '' and '%(Ngen)' != 'false'">All</NgenArchitecture>
+ <NgenPriority Condition="'%(NgenPriority)' == '' and '%(Ngen)' != 'false'">3</NgenPriority>
+ </ProjectReference>
+ </ItemGroup>
+
+ <!--
+ Assemblies that are NGEN'd should be loaded to Load context, otherwise NGEN would not work.
+ UseCodebase causes assemblies to be loaded to LoadFrom context, so it's incompatible with NGEN setting.
+ -->
+ <Target Name="_WarnOnUsingCodebaseWithNgen"
+ BeforeTargets="GeneratePkgDef"
+ Condition="'$(Ngen)' == 'true' and '$(UseCodebase)' == 'true'">
+ <Warning Text="UseCodebase should not be true for VSIX project that turns NGEN on." />
+ </Target>
+
+ <!--
+ Calculate name of a stub file that will be saved to ComponentIntermediateDir (Setup.obj subdirectory for the target insertion component).
+ -->
+ <Target Name="_SetStubFileNameFromManifest">
+ <PropertyGroup>
+ <_VsxXmlNamespace>&lt;Namespace Prefix='vsx' Uri='http://schemas.microsoft.com/developer/vsx-schema/2011'/&gt;</_VsxXmlNamespace>
+ </PropertyGroup>
+
+ <!--
+ Read package id from the extension.vsixmanifest file. VS SDK doesn't expose this value in any msbuild property.
+ -->
+ <XmlPeek Namespaces="$(_VsxXmlNamespace)"
+ XmlInputPath="$(IntermediateVsixManifest)"
+ Query="/vsx:PackageManifest/vsx:Metadata/vsx:PackageId/text()">
+ <Output TaskParameter="Result" PropertyName="_VsixPackageId" />
+ </XmlPeek>
+
+ <XmlPeek Namespaces="$(_VsxXmlNamespace)"
+ XmlInputPath="$(IntermediateVsixManifest)"
+ Query="/vsx:PackageManifest/vsx:Metadata/vsx:Identity/@Id"
+ Condition="'$(_VsixPackageId)' == ''">
+ <Output TaskParameter="Result" PropertyName="_VsixPackageId" />
+ </XmlPeek>
+
+ <Error Text="Unable to determine VSIX package id for project '$(MSBuildProjectFullPath)'." Condition="'$(_VsixPackageId)' == ''"/>
+
+ <PropertyGroup>
+ <_PackageStubFile>$(_ComponentIntermediateDir)$(_VsixPackageId).stub</_PackageStubFile>
+ </PropertyGroup>
+ </Target>
+
+ <!--
+ Create VSIX container directory.
+ -->
+ <Target Name="_MakeTargetVsixContainerDir"
+ BeforeTargets="CreateVsixContainer"
+ Condition="'$(CreateVsixContainer)' == 'true'"
+ Outputs="$(_TargetVsixContainerDir)">
+
+ <MakeDir Directories="$(_TargetVsixContainerDir)" />
+ </Target>
+
+ <!--
+ Create VSIX container directory and a stub file that can be used in Pack phase to identify what VSIXes belong to the component.
+ -->
+ <Target Name="_WriteComponentStubFile" Outputs="$(_PackageStubFile)">
+ <Error Text="VisualStudioInsertionComponent property must only be set for projects with extension.vsixmanifest or SWR files." Condition="'$(_PackageStubFile)' == ''"/>
+
+ <MakeDir Directories="$(_ComponentIntermediateDir)" />
+ <WriteLinesToFile File="$(_PackageStubFile)" Lines="$(TargetVsixContainerName)/$(VsixVersion)" Overwrite="true" />
+
+ <ItemGroup>
+ <FileWrites Include="$(_PackageStubFile)"/>
+ </ItemGroup>
+ </Target>
+
+ <!--
+ Currently we need to erase Experimental flag from VSIXes that are inserted into VS.
+ The build produces VSIXes to VisualStudioSetupPath that need this treatment.
+ This task copies them to VisualStudioSetupInsertionPath and removes the flag from the manifest.
+ VSIX files that are already in VisualStudioSetupInsertionPath are already non-experimental.
+ -->
+
+ <Target Name="_CalculateFinalizeInsertionVsixFilesInputsOutputs"
+ DependsOnTargets="_SetStubFileNameFromManifest">
+ <PropertyGroup>
+ <_JsonFileName>$(_VsixPackageId).json</_JsonFileName>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_FinalizeInsertionVsixFilesInputs Include="$(VisualStudioSetupOutputPath)$(TargetVsixContainerName)" />
+ <_FinalizeInsertionVsixFilesInputs Include="$(VisualStudioSetupOutputPath)$(_JsonFileName)" />
+
+ <_FinalizeInsertionVsixFilesOutputs Include="$(VisualStudioSetupInsertionPath)$(TargetVsixContainerName)" />
+ <_FinalizeInsertionVsixFilesOutputs Include="$(VisualStudioSetupInsertionPath)$(_JsonFileName)" />
+ </ItemGroup>
+ </Target>
+
+ <Target Name="FinalizeInsertionVsixFiles"
+ AfterTargets="Build"
+ DependsOnTargets="CreateVsixContainer;_CalculateFinalizeInsertionVsixFilesInputsOutputs;_WriteComponentStubFile"
+ Condition="'$(CreateVsixContainer)' == 'true' and '$(VisualStudioInsertionComponent)' != ''"
+ Inputs="@(_FinalizeInsertionVsixFilesInputs)"
+ Outputs="@(_FinalizeInsertionVsixFilesOutputs)">
+
+ <MakeDir Directories="$(VisualStudioSetupInsertionPath)"/>
+
+ <Copy SourceFiles="@(_FinalizeInsertionVsixFilesInputs)" DestinationFolder="$(VisualStudioSetupInsertionPath)" />
+
+ <Microsoft.DotNet.Build.Tasks.VisualStudio.FinalizeInsertionVsixFile VsixFilePath="$(VisualStudioSetupInsertionPath)$(TargetVsixContainerName)" />
+
+ <ItemGroup>
+ <FileWrites Include="@(_FinalizeInsertionVsixFilesOutputs)"/>
+ </ItemGroup>
+ </Target>
+
+ <!--
+ Build Willow VSIX from SWR files.
+ -->
+ <Target Name="SwixBuild"
+ DependsOnTargets="_CalculateSwixBuildOutputs;_WriteComponentStubFile"
+ AfterTargets="Build"
+ Outputs="$(_SwixBuildOutputs)"
+ Condition="'$(IsSwixProject)' == 'true'">
+
+ <Error Text="Visual Studio insertion component must either have extension.vsixmanifest or specify SwrFile items"
+ Condition="'@(SwrFile)' == ''" />
+
+ <PropertyGroup>
+ <_SwrProperties>@(SwrProperty)</_SwrProperties>
+ <_SwrFiles>@(SwrFile->'%(FullPath)')</_SwrFiles>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_SwixArgs Include="SwrProperties=$([MSBuild]::Escape($(_SwrProperties)))"/>
+ <_SwixArgs Include="SwrFiles=$([MSBuild]::Escape($(_SwrFiles)))"/>
+ <_SwixArgs Include="SwrPackageName=$(_VsixPackageId)"/>
+ <_SwixArgs Include="IntermediateOutputPath=$(IntermediateOutputPath)"/>
+ <_SwixArgs Include="SwixBuildPath=$(NuGetPackageRoot)microbuild.plugins.swixbuild\$(MicroBuildPluginsSwixBuildVersion)\"/>
+ </ItemGroup>
+
+ <MSBuild Projects="$(MSBuildThisFileDirectory)VisualStudio.SetupPackage.swixproj" Properties="@(_SwixArgs)" Targets="Build"/>
+
+ <Copy SourceFiles="$(IntermediateOutputPath)$(TargetVsixContainerName);$(IntermediateOutputPath)$(_JsonFileName)"
+ DestinationFolder="$(VisualStudioSetupInsertionPath)" />
+
+ <ItemGroup>
+ <FileWrites Include="@(_SwixBuildOutputs)"/>
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_CalculateSwixBuildOutputs">
+ <PropertyGroup>
+ <_VsixPackageId>$([System.IO.Path]::GetFileNameWithoutExtension($(TargetVsixContainerName)))</_VsixPackageId>
+ <_PackageStubFile>$(_ComponentIntermediateDir)$(_VsixPackageId).stub</_PackageStubFile>
+ <_JsonFileName>$(_VsixPackageId).json</_JsonFileName>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_SwixBuildOutputs Include="$(VisualStudioSetupInsertionPath)$(TargetVsixContainerName)" />
+ <_SwixBuildOutputs Include="$(VisualStudioSetupInsertionPath)$(_JsonFileName)" />
+ </ItemGroup>
+ </Target>
+
+ <!--
+ This is a workaround for allowing neutral CTO resource produced from *.vsct to go in the main assembly.
+
+ We move the neutral *.cto file to be categorized as WithCulture=true,Culture=en to prevent the tools from falsely reporting:
+ error VSSDK1006: Two CTO files have the same Menus.ctmenu resource name.
+
+ Note that this categorization does not apply to the items that actually produce the .resources.dll and so it will
+ not cause an English satellite to be generated.
+
+ The documented way around this is to put all resources (including neutral/en) in satellites:
+ https://msdn.microsoft.com/en-us/library/ee943168.aspx
+
+ However, that has consequences we do not want:
+ - It breaks resx code-gen to *.designer.cs
+ - It causes extra dll loads in en case
+ - If we ever split satellites in to language packs, the english fallback satellites would become a special case.
+ -->
+ <Target Name="AssignEnCultureToNeutralCto" BeforeTargets="MergeCtoResource">
+ <ItemGroup>
+ <_GeneratedCTOFilesWithCulture Include="@(_GeneratedCTOFilesWithNoCulture)">
+ <Culture>en</Culture>
+ <WithCulture>true</WithCulture>
+ </_GeneratedCTOFilesWithCulture>
+ <_GeneratedCTOFilesWithNoCulture Remove="@(_GeneratedCTOFilesWithNoCulture)" />
+ <_ResourcesToMergeWithCTOWithCultureMetadata Condition="'%(WithCulture)' != 'true'">
+ <Culture>en</Culture>
+ <WithCulture>true</WithCulture>
+ </_ResourcesToMergeWithCTOWithCultureMetadata>
+ </ItemGroup>
+ </Target>
+
+ <!--
+ VSSDK is needed in projects generating VSIX packages or pkgdef files.
+ -->
+ <Import Project="VisualStudio.ImportSdk.targets" Condition="'$(VSToolsPath)' != '' and ('$(IsVsixProject)' == 'true' or '$(GeneratePkgDefFile)' == 'true')" />
+
+ <!--
+ Support for templates.
+ -->
+ <Target Name="_GetVsixTemplateItems" DependsOnTargets="ZipProjects;ZipItems" Condition="'@(VSTemplate)' != ''">
+ <ItemGroup>
+ <VSIXSourceItem Include="@(IntermediateZipItem)">
+ <VSIXSubPath>%(IntermediateZipItem.Filename)\%(IntermediateZipItem.Language)\%(IntermediateZipItem.OutputSubPath)\%(IntermediateZipItem.Culture)</VSIXSubPath>
+ </VSIXSourceItem>
+ <VSIXSourceItem Include="@(IntermediateZipProject)">
+ <VSIXSubPath>%(IntermediateZipProject.Filename)\%(IntermediateZipProject.Language)\%(IntermediateZipProject.OutputSubPath)\%(IntermediateZipProject.Culture)</VSIXSubPath>
+ </VSIXSourceItem>
+ </ItemGroup>
+ </Target>
+ <PropertyGroup>
+ <GetVsixSourceItemsDependsOn>$(GetVsixSourceItemsDependsOn);_GetVsixTemplateItems</GetVsixSourceItemsDependsOn>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.props
new file mode 100755
index 0000000000..2d94658c2e
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.props
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!-- Default settings for VSIX projects -->
+
+ <PropertyGroup>
+ <VsixSourceManifestPath>$(MSBuildProjectDirectory)\source.extension.vsixmanifest</VsixSourceManifestPath>
+ <IsVsixProject>false</IsVsixProject>
+ <IsVsixProject Condition="Exists('$(VsixSourceManifestPath)')">true</IsVsixProject>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(IsVsixProject)' == 'true'">
+ <BuildForLiveUnitTesting>false</BuildForLiveUnitTesting>
+ <DeployExtension>false</DeployExtension>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.targets
new file mode 100755
index 0000000000..acc6912de5
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/VisualStudio.targets
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <!--
+ Initialize VsixVersion. The project may specify 3-part prefix if it's different from VersionPrefix.
+ -->
+ <PropertyGroup>
+ <VsixVersionPrefix Condition="'$(VsixVersionPrefix)' == ''">$(VersionPrefix)</VsixVersionPrefix>
+ <VsixVersion>42.42.42.4242424</VsixVersion>
+ <VsixVersion Condition="'$(VersionSuffixDateStamp)' != ''">$(VsixVersionPrefix).$(VersionSuffixDateStamp)$(VersionSuffixBuildOfTheDayPadded)</VsixVersion>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(IsVsixProject)' == 'true' and '$(VSSDKTargetPlatformRegRootSuffix)' != ''">
+ <StartAction>Program</StartAction>
+ <StartProgram>$(DevEnvDir)devenv.exe</StartProgram>
+ <StartArguments>/rootsuffix $(VSSDKTargetPlatformRegRootSuffix) /log</StartArguments>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.DotNet.Build.Tasks.VisualStudio" Version="$(MicrosoftDotNetBuildTasksVisualStudioVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
+ </ItemGroup>
+
+ <ItemGroup Condition="'$(VisualStudioInsertionComponent)' != ''">
+ <PackageReference Include="MicroBuild.Plugins.SwixBuild" Version="$(MicroBuildPluginsSwixBuildVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
+ </ItemGroup>
+
+ <ItemGroup Condition="'$(IsVsixProject)' == 'true' or '$(GeneratePkgDefFile)' == 'true'">
+ <PackageReference Include="Microsoft.VSSDK.BuildTools" Version="$(MicrosoftVSSDKBuildToolsVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
+ </ItemGroup>
+
+ <!-- Returns the current build version. Used in .vsixmanifests to substitute our build version into them -->
+ <Target Name="GetVsixVersion" Returns="$(VsixVersion)" />
+
+ <!--
+ Do not import targets that build VSIXes at design time or when running in LUT.
+
+ It is unnecessary to build the VSIXes, but also avoids VSSDK issue
+ https://dev.azure.com/devdiv/DevDiv/_workitems?id=365685&fullScreen=false&_a=edit.
+ The VSSDK implements targets VSIXIdentifierProjectOutputGroup, VSIXNameProjectOutputGroup.
+ Since their name ends with OutputGroup, these targets would run during design time builds per convention.
+ If the project is not a VSIX project and sets CreateVsixContainer=false these targets should be
+ a no-op. However they dont check for that and that's a bug.
+ -->
+ <Import Project="VisualStudio.VsixBuild.targets" Condition="'$(DesignTimeBuild)' != 'true' and '$(BuildingForLiveUnitTesting)' != 'true'"/>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Workarounds.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Workarounds.props
new file mode 100755
index 0000000000..08b750e449
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Workarounds.props
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!--
+ Determine whether the project is WPF temp project.
+ Since .NET Framework 4.7.2 WPF temp project name ends with _wpftmp suffix and keeps the language specific extension (e.g. csproj).
+ -->
+ <PropertyGroup Condition="'$(IsWpfTempProject)' == ''">
+ <IsWpfTempProject>false</IsWpfTempProject>
+ <IsWpfTempProject Condition="$(MSBuildProjectName.EndsWith('_wpftmp'))">true</IsWpfTempProject>
+ </PropertyGroup>
+
+ <!--
+ WPF temp-projects do not import .props and .targets files from NuGet packages.
+ (see https://github.com/dotnet/sourcelink/issues/91).
+
+ Property _TargetAssemblyProjectName is set by GenerateTemporaryTargetAssembly task.
+
+ Disable Source Link and Xliff in WPF temp projects to avoid generating non-deterministic file names to obj dir.
+ The project name is non-deterministic and is included in the Source Link json file name and xlf directory names.
+ It's also not necessary to generate these assets.
+ -->
+ <PropertyGroup Condition="'$(IsWpfTempProject)' == 'true'">
+ <_WpfTempProjectNuGetFilePathNoExt>$(ArtifactsObjDir)$(_TargetAssemblyProjectName)\$(_TargetAssemblyProjectName)$(MSBuildProjectExtension).nuget.g</_WpfTempProjectNuGetFilePathNoExt>
+
+ <EnableSourceLink>false</EnableSourceLink>
+ <DeterministicSourcePaths>false</DeterministicSourcePaths>
+ <EnableXlfLocalization>false</EnableXlfLocalization>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Workarounds.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Workarounds.targets
new file mode 100755
index 0000000000..04749819ba
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/Workarounds.targets
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <!-- Workaround for https://github.com/Microsoft/msbuild/issues/1310 -->
+ <Target Name="ForceGenerationOfBindingRedirects"
+ AfterTargets="ResolveAssemblyReferences"
+ BeforeTargets="GenerateBindingRedirects"
+ Condition="'$(AutoGenerateBindingRedirects)' == 'true'">
+ <PropertyGroup>
+ <!-- Needs to be set in a target because it has to be set after the initial evaluation in the common targets -->
+ <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
+ </PropertyGroup>
+ </Target>
+
+ <!--
+ Workaround to fix IntelliSense file generation for XAML projects
+ https://github.com/dotnet/project-system/issues/2488
+ -->
+ <Target Name="WorkaroundForXamlIntelliSenseBuildIssue" AfterTargets="_CheckCompileDesignTimePrerequisite">
+ <PropertyGroup>
+ <BuildingProject>false</BuildingProject>
+ </PropertyGroup>
+ </Target>
+
+ <!--
+ WPF temp project sets OutDir, which makes the SDK create an empty directory for it,
+ polluting the output dir. Avoid creating these directories.
+ https://github.com/dotnet/sdk/issues/1367
+ -->
+ <PropertyGroup Condition="'$(IsWpfTempProject)' == 'true'">
+ <OutDir/>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(IsWpfTempProject)' == 'true' and '$(TargetFrameworkIdentifier)' == '.NETFramework'">
+ <Reference Include="mscorlib" Pack="false" />
+ </ItemGroup>
+
+ <!--
+ Workaround for a race condition https://github.com/Microsoft/msbuild/issues/1479.
+ -->
+ <PropertyGroup>
+ <TargetFrameworkMonikerAssemblyAttributesPath>$(IntermediateOutputPath)$(TargetFrameworkMoniker).AssemblyAttributes$(DefaultLanguageSourceExtension)</TargetFrameworkMonikerAssemblyAttributesPath>
+ <TargetFrameworkMonikerAssemblyAttributesFileClean>true</TargetFrameworkMonikerAssemblyAttributesFileClean>
+ </PropertyGroup>
+
+ <!--
+ Portable PDBs are not included in .nupkg by default. Include them unless the project produces symbol packages.
+ Remove this once we migrate to .snupkg. See https://github.com/dotnet/arcade/issues/1959.
+ -->
+ <PropertyGroup Condition="'$(DebugType)' == 'portable' and '$(IncludeSymbols)' != 'true'">
+ <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
+ </PropertyGroup>
+
+ <!--
+ Workarounds for insufficient support for tools packages by NuGet Pack: https://github.com/NuGet/Home/issues/6321.
+
+ Project that produce tools packages use .nuspec file in order to include all the needed dependencies.
+ This target translates common msbuild properties to NuSpec properties.
+ -->
+ <Target Name="InitializeStandardNuspecProperties"
+ BeforeTargets="GenerateNuspec"
+ DependsOnTargets="_InitializeNuspecRepositoryInformationPropertiesWorkaround"
+ Condition="'$(IsPackable)' == 'true'">
+
+ <PropertyGroup>
+ <PackageId Condition="'$(NuspecPackageId)' != ''">$(NuspecPackageId)</PackageId>
+ <PackageProjectUrl Condition="'$(PackageProjectUrl)' == ''">$(RepositoryUrl)</PackageProjectUrl>
+ </PropertyGroup>
+
+ <Error Text="PackageDescription must be specified" Condition="'$(PackageDescription)' == ''"/>
+ <Error Text="PackageProjectUrl must be specified" Condition="'$(PackageProjectUrl)' == ''"/>
+ <Error Text="RepositoryUrl must be specified" Condition="'$(RepositoryUrl)' == ''"/>
+ <Error Text="RepositoryCommit must be specified" Condition="'$(RepositoryCommit)' == ''"/>
+ <Error Text="RepositoryType must be specified" Condition="'$(RepositoryType)' == ''"/>
+ <Error Text="Either PackageLicenseExpression or PackageLicenseFile must be specified" Condition="'$(PackageLicenseExpression)' == '' and '$(PackageLicenseFile)' == ''"/>
+
+ <PropertyGroup Condition="'$(NuspecFile)' != '' and '$(NuspecProperties)' == ''">
+ <_LicenseElement/>
+ <_LicenseElement Condition="'$(PackageLicenseExpression)' != ''">
+ <license type="expression">$(PackageLicenseExpression)</license>
+ </_LicenseElement>
+ <_LicenseElement Condition="'$(PackageLicenseFile)' != ''">
+ <license type="file">$(PackageLicenseFile)</license>
+ </_LicenseElement>
+
+ <_TagsElement/>
+ <_TagsElement Condition="'$(PackageTags)' != ''">
+ <tags>$(PackageTags.Replace(';', ' '))</tags>
+ </_TagsElement>
+
+ <_IconUrlElement/>
+ <_IconUrlElement Condition="'$(PackageIcon)' == '' and '$(PackageIconUrl)' != ''">
+ <iconUrl>$(PackageIconUrl)</iconUrl>
+ </_IconUrlElement>
+
+ <_IconElement/>
+ <_IconElement Condition="'$(PackageIcon)' != ''">
+ <icon>$(PackageIcon)</icon>
+ </_IconElement>
+
+ <_IconFileElement/>
+ <_IconFileElement Condition="'$(PackageIcon)' != ''">
+ <file src="$(PackageIconFullPath)" target="$(PackageIcon)" />
+ </_IconFileElement>
+
+ <_ReleaseNotesElement/>
+ <_ReleaseNotesElement Condition="'$(PackageReleaseNotes)' != ''">
+ <releaseNotes>$(PackageReleaseNotes)</releaseNotes>
+ </_ReleaseNotesElement>
+
+ <_CommonMetadataElements>
+ <id>$(PackageId)</id>
+ <description>$(PackageDescription)</description>
+ <version>$(PackageVersion)</version>
+ <authors>$(Authors)</authors>
+ <requireLicenseAcceptance>$(PackageRequireLicenseAcceptance)</requireLicenseAcceptance>
+ $(_TagsElement)
+ $(_LicenseElement)
+ $(_IconElement)
+ $(_IconUrlElement)
+ $(_ReleaseNotesElement)
+ <projectUrl>$(PackageProjectUrl)</projectUrl>
+ <copyright>$(Copyright)</copyright>
+ <developmentDependency>$(DevelopmentDependency)</developmentDependency>
+ <serviceable>$(Serviceable)</serviceable>
+ <repository type="$(RepositoryType)" url="$(RepositoryUrl)" commit="$(RepositoryCommit)" />
+ </_CommonMetadataElements>
+
+ <_CommonFileElements>
+ $(_IconFileElement)
+ </_CommonFileElements>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(NuspecFile)' != '' and '$(NuspecProperties)' == ''">
+ <NuspecProperty Include="CommonMetadataElements=$(_CommonMetadataElements)"/>
+ <NuspecProperty Include="CommonFileElements=$(_CommonFileElements)"/>
+ <NuspecProperty Include="PackageId=$(PackageId)"/>
+ <NuspecProperty Include="Version=$(PackageVersion)"/>
+ <NuspecProperty Include="ProjectDirectory=$(MSBuildProjectDirectory)"/>
+ </ItemGroup>
+ <PropertyGroup Condition="'$(NuspecFile)' != '' and '$(NuspecProperties)' == ''">
+ <NuspecProperties>@(NuspecProperty, ';')</NuspecProperties>
+ </PropertyGroup>
+ </Target>
+
+ <!--
+ Initialize Repository* properties from properties set by a source control package, if available in the project.
+ -->
+ <Target Name="_InitializeNuspecRepositoryInformationPropertiesWorkaround"
+ DependsOnTargets="InitializeSourceControlInformation"
+ Condition="'$(SourceControlInformationFeatureSupported)' == 'true'">
+ <PropertyGroup>
+ <!-- The project must specify PublishRepositoryUrl=true in order to publish the URL, in order to prevent inadvertent leak of internal URL. -->
+ <RepositoryUrl Condition="'$(RepositoryUrl)' == '' and '$(PublishRepositoryUrl)' == 'true'">$(PrivateRepositoryUrl)</RepositoryUrl>
+ <RepositoryCommit Condition="'$(RepositoryCommit)' == ''">$(SourceRevisionId)</RepositoryCommit>
+ </PropertyGroup>
+ </Target>
+
+ <!--
+ NuGet Restore uses PackageId and project name in the same namespace, so that project reference can be interchanged with a package reference.
+ This causes issues however for leaf packages that are not to be referenced (such as analyzer or tools packages) when we want to name the package
+ the same as an existing project in the solution. In that case we set PackageId to an invalid but unique value for Restore and override it for Pack
+ with the desired name stored in $(NuspecPackageId).
+ -->
+ <PropertyGroup Condition="'$(NuspecPackageId)' != ''">
+ <PackageId>*$(MSBuildProjectName)*</PackageId>
+ </PropertyGroup>
+
+ <!--
+ Source packaging helpers.
+ -->
+
+ <PropertyGroup Condition="'$(IsPackable)' == 'true' and '$(IsSourcePackage)' == 'true'">
+ <TargetsForTfmSpecificContentInPackage Condition="'$(NuspecFile)' == ''">$(TargetsForTfmSpecificContentInPackage);_AddSourceFilesToSourcePackage</TargetsForTfmSpecificContentInPackage>
+ </PropertyGroup>
+
+ <Target Name="_AddSourceFilesToSourcePackage">
+ <PropertyGroup>
+ <!-- TODO: language to dir name mapping (https://github.com/Microsoft/msbuild/issues/2101) -->
+ <_LanguageDirName>$(DefaultLanguageSourceExtension.TrimStart('.'))</_LanguageDirName>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_File Remove="@(_File)"/>
+ <_File Include="$(MSBuildProjectDirectory)\**\*$(DefaultLanguageSourceExtension)" TargetDir="contentFiles/$(_LanguageDirName)/$(TargetFramework)" BuildAction="Compile" />
+
+ <TfmSpecificPackageFile Include="@(_File)" PackagePath="%(_File.TargetDir)/%(_File.RecursiveDir)%(_File.FileName)%(_File.Extension)"/>
+ </ItemGroup>
+ </Target>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/XUnit.props b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/XUnit.props
new file mode 100755
index 0000000000..77cdedf008
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/XUnit.props
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <PropertyGroup>
+ <!--
+ Default settings file for Desktop FX that sets shadowCopy to false, to allow loading public-signed assemblies to xunit AppDomain.
+ -->
+ <XUnitDesktopSettingsFile>$(MSBuildThisFileDirectory)xunit.runner.json</XUnitDesktopSettingsFile>
+ </PropertyGroup>
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/XUnit.targets b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/XUnit.targets
new file mode 100755
index 0000000000..e25da54ae4
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/XUnit.targets
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+ <ItemGroup>
+ <PackageReference Include="xunit" Version="$(XUnitVersion)" IsImplicitlyDefined="true" PrivateAssets="all" Publish="true"/>
+ <PackageReference Include="xunit.runner.visualstudio" Version="$(XUnitRunnerVisualStudioVersion)" IsImplicitlyDefined="true" PrivateAssets="all" Publish="true"/>
+ <PackageReference Include="xunit.runner.console" Version="$(XUnitRunnerConsoleVersion)" IsImplicitlyDefined="true" PrivateAssets="all" Publish="true"/>
+ </ItemGroup>
+
+ <!--
+ Include settings file (xunit.runner.json) if specified.
+ -->
+ <ItemGroup>
+ <None Include="$(XUnitDesktopSettingsFile)"
+ CopyToOutputDirectory="PreserveNewest"
+ Visible="false"
+ Condition="'$(XUnitDesktopSettingsFile)' != '' and '$(TargetFrameworkIdentifier)' == '.NETFramework'" />
+
+ <None Include="$(XUnitCoreSettingsFile)"
+ CopyToOutputDirectory="PreserveNewest"
+ Visible="false"
+ Condition="'$(XUnitCoreSettingsFile)' != '' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'" />
+ </ItemGroup>
+
+ <!--
+ Include '*' target to force running tests even if the input assemblies haven't changed and the outputs are present.
+ This matches the common expectations that test command always runs all tests in scope.
+ -->
+ <Target Name="RunTests"
+ Inputs="@(TestToRun);*"
+ Outputs="%(TestToRun.ResultsStdOutPath);%(TestToRun.ResultsXmlPath);%(TestToRun.ResultsHtmlPath)">
+ <Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Test" />
+ <PropertyGroup>
+ <_TestEnvironment>%(TestToRun.EnvironmentDisplay)</_TestEnvironment>
+ <_TestAssembly>%(TestToRun.Identity)</_TestAssembly>
+ <_TestRuntime>%(TestToRun.TestRuntime)</_TestRuntime>
+ <_TestRunnerAdditionalArguments>%(TestToRun.TestRunnerAdditionalArguments)</_TestRunnerAdditionalArguments>
+
+ <!-- Always use net472 for desktop to enable displaying source location from Portable PDBs in stack traces -->
+ <_TestRunnerTargetFramework>net472</_TestRunnerTargetFramework>
+ <_TestRunnerTargetFramework Condition="'$(_TestRuntime)' == 'Core'">netcoreapp2.0</_TestRunnerTargetFramework>
+ <_TestRunnerTargetFramework Condition="%(TestToRun.TargetFramework) == 'netcoreapp1.1' or %(TestToRun.TargetFramework) == 'netcoreapp1.0'">netcoreapp1.0</_TestRunnerTargetFramework>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(_TestRuntime)' == 'Core'">
+ <_TargetFileNameNoExt>$([System.IO.Path]::GetFileNameWithoutExtension('$(_TestAssembly)'))</_TargetFileNameNoExt>
+ <_TargetDir>$([System.IO.Path]::GetDirectoryName('$(_TestAssembly)'))\</_TargetDir>
+ <_CoreRuntimeConfigPath>$(_TargetDir)$(_TargetFileNameNoExt).runtimeconfig.json</_CoreRuntimeConfigPath>
+ <_CoreDepsPath>$(_TargetDir)$(_TargetFileNameNoExt).deps.json</_CoreDepsPath>
+
+ <_TestRunner Condition="'%(TestToRun.Architecture)'=='x86' And Exists('$(DotNetRoot)x86\dotnet.exe')">$(DotNetRoot)x86\dotnet.exe</_TestRunner>
+ <_TestRunner Condition="'$(_TestRunner)'==''">$(DotNetTool)</_TestRunner>
+
+ <_TestRunnerArgs>exec --depsfile "$(_CoreDepsPath)" --runtimeconfig "$(_CoreRuntimeConfigPath)" $(TestRuntimeAdditionalArguments) "$(NuGetPackageRoot)xunit.runner.console/$(XUnitVersion)/tools/$(_TestRunnerTargetFramework)/xunit.console.dll" "$(_TestAssembly)" -noautoreporters -xml "%(TestToRun.ResultsXmlPath)" -html "%(TestToRun.ResultsHtmlPath)" $(_TestRunnerAdditionalArguments)</_TestRunnerArgs>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(_TestRuntime)' != 'Core'">
+ <_XUnitConsoleExe>xunit.console.exe</_XUnitConsoleExe>
+ <_XUnitConsoleExe Condition="'%(TestToRun.Architecture)' == 'x86'">xunit.console.x86.exe</_XUnitConsoleExe>
+ <_XUnitConsoleExePath>$(NuGetPackageRoot)xunit.runner.console\$(XUnitVersion)\tools\$(_TestRunnerTargetFramework)\$(_XUnitConsoleExe)</_XUnitConsoleExePath>
+
+ <_TestRunnerArgs>"$(_TestAssembly)" -noshadow -xml "%(TestToRun.ResultsXmlPath)" -html "%(TestToRun.ResultsHtmlPath)" $(_TestRunnerAdditionalArguments)</_TestRunnerArgs>
+ <_TestRunnerArgs Condition="'$(_TestRuntime)' == 'Mono'">$(TestRuntimeAdditionalArguments) "$(_XUnitConsoleExePath)" $(_TestRunnerArgs)</_TestRunnerArgs>
+
+ <_TestRunner Condition="'$(_TestRuntime)' == 'Mono'">$(MonoTool)</_TestRunner>
+ <_TestRunner Condition="'$(_TestRuntime)' != 'Mono'">$(_XUnitConsoleExePath)</_TestRunner>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <_TestRunnerCommand>"$(_TestRunner)" $(_TestRunnerArgs)</_TestRunnerCommand>
+
+ <!--
+ Redirect std output of the runner.
+ Note that xUnit outputs failure info to both STDOUT (stack trace, message) and STDERR (failed test name)
+ -->
+ <_TestRunnerCommand Condition="'$(TestCaptureOutput)' != 'false'">$(_TestRunnerCommand) > "%(TestToRun.ResultsStdOutPath)" 2>&amp;1</_TestRunnerCommand>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_OutputFiles Include="%(TestToRun.ResultsXmlPath)" />
+ <_OutputFiles Include="%(TestToRun.ResultsHtmlPath)" />
+ <_OutputFiles Include="%(TestToRun.ResultsStdOutPath)" />
+ </ItemGroup>
+
+ <MakeDir Directories="@(_OutputFiles->'%(RootDir)%(Directory)')"/>
+ <Delete Files="@(_OutputFiles)" />
+
+ <Message Text="Running tests: $(_TestAssembly) [$(_TestEnvironment)]" Importance="high"/>
+ <Exec Command='$(_TestRunnerCommand)' LogStandardErrorAsError="false" WorkingDirectory="$(_TargetDir)" IgnoreExitCode="true">
+ <Output TaskParameter="ExitCode" PropertyName="_TestErrorCode" />
+ </Exec>
+
+ <!--
+ Add command line to the log.
+ -->
+ <WriteLinesToFile File="%(TestToRun.ResultsStdOutPath)"
+ Overwrite="false"
+ Lines=";=== COMMAND LINE ===;$(_TestRunnerCommand)"
+ Condition="'$(TestCaptureOutput)' != 'false'" />
+
+ <!--
+ Report test status.
+ -->
+ <Message Text="Tests succeeded: $(_TestAssembly) [$(_TestEnvironment)]" Condition="'$(_TestErrorCode)' == '0'" Importance="high" />
+
+ <PropertyGroup>
+ <_ResultsFileToDisplay>%(TestToRun.ResultsHtmlPath)</_ResultsFileToDisplay>
+ <_ResultsFileToDisplay Condition="!Exists('$(_ResultsFileToDisplay)')">%(TestToRun.ResultsStdOutPath)</_ResultsFileToDisplay>
+ </PropertyGroup>
+
+ <!--
+ Ideally we would set ContinueOnError="ErrorAndContinue" so that when a test fails in multi-targeted test project
+ we'll still run tests for all target frameworks. ErrorAndContinue doesn't work well on Linux though: https://github.com/Microsoft/msbuild/issues/3961.
+ -->
+ <Error Text="Tests failed: $(_ResultsFileToDisplay) [$(_TestEnvironment)]" Condition="'$(_TestErrorCode)' != '0'" File="XUnit" />
+
+ <ItemGroup>
+ <FileWrites Include="@(_OutputFiles)"/>
+ </ItemGroup>
+ </Target>
+
+ <!-- Workaround for https://github.com/xunit/xunit/issues/1651 -->
+ <ItemGroup>
+ <None Remove="$(NuGetPackageRoot)xunit.runner.visualstudio\$(XUnitRunnerVisualStudioVersion)\build\net20\..\_common\xunit.abstractions.dll" />
+ </ItemGroup>
+
+</Project>
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/xunit.runner.json b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/xunit.runner.json
new file mode 100755
index 0000000000..928f9bb6b9
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/XUnit/xunit.runner.json
@@ -0,0 +1,3 @@
+{
+ "shadowCopy": false
+} \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/Microsoft.DotNet.Arcade.Sdk.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/Microsoft.DotNet.Arcade.Sdk.dll
new file mode 100755
index 0000000000..189b0b501d
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/Microsoft.DotNet.Arcade.Sdk.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/Microsoft.DotNet.Arcade.Sdk.dll.config b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/Microsoft.DotNet.Arcade.Sdk.dll.config
new file mode 100755
index 0000000000..0cdcb972bb
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/Microsoft.DotNet.Arcade.Sdk.dll.config
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-1.2.1.0" newVersion="1.2.1.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration> \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/NuGet.Versioning.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/NuGet.Versioning.dll
new file mode 100755
index 0000000000..8695097c92
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/NuGet.Versioning.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Buffers.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Buffers.dll
new file mode 100755
index 0000000000..c517a3b62c
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Buffers.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Memory.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Memory.dll
new file mode 100755
index 0000000000..078aa5562a
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Memory.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Numerics.Vectors.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Numerics.Vectors.dll
new file mode 100755
index 0000000000..ce46d5be85
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Numerics.Vectors.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Reflection.Metadata.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Reflection.Metadata.dll
new file mode 100755
index 0000000000..ee68731c05
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Reflection.Metadata.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Runtime.CompilerServices.Unsafe.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100755
index 0000000000..0b45903440
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Threading.Tasks.Extensions.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Threading.Tasks.Extensions.dll
new file mode 100755
index 0000000000..63bf0edb2b
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/net472/System.Threading.Tasks.Extensions.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.deps.json b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.deps.json
new file mode 100755
index 0000000000..04a0acdb48
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.deps.json
@@ -0,0 +1,1434 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v2.1",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v2.1": {
+ "Microsoft.DotNet.Arcade.Sdk/1.0.0-beta.19577.5": {
+ "dependencies": {
+ "Microsoft.Bcl.Json.Sources": "4.6.0-preview4.19202.2",
+ "Microsoft.Build": "15.7.179",
+ "Microsoft.Build.Tasks.Core": "15.7.179",
+ "Microsoft.NETFramework.ReferenceAssemblies": "1.0.0-preview.2",
+ "Microsoft.SourceLink.GitHub": "1.0.0-beta2-19367-01",
+ "Microsoft.SourceLink.Vsts.Git": "1.0.0-beta2-19367-01",
+ "NuGet.Versioning": "4.4.0",
+ "System.Buffers": "4.5.0",
+ "System.Collections.Immutable": "1.3.1",
+ "System.Memory": "4.5.1",
+ "System.Net.Http": "4.3.3",
+ "System.Numerics.Vectors": "4.4.0",
+ "System.Reflection.Metadata": "1.4.2",
+ "System.Runtime.CompilerServices.Unsafe": "4.5.0",
+ "System.Threading.Tasks.Extensions": "4.5.1"
+ },
+ "runtime": {
+ "Microsoft.DotNet.Arcade.Sdk.dll": {}
+ }
+ },
+ "Microsoft.Bcl.Json.Sources/4.6.0-preview4.19202.2": {},
+ "Microsoft.Build/15.7.179": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "15.7.179",
+ "System.Collections.Immutable": "1.3.1",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Pipes.AccessControl": "4.3.0",
+ "System.Reflection.Metadata": "1.4.2",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Text.Encoding.CodePages": "4.4.0",
+ "System.Threading.Tasks.Dataflow": "4.6.0"
+ }
+ },
+ "Microsoft.Build.Framework/15.7.179": {
+ "dependencies": {
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Threading.Thread": "4.3.0"
+ }
+ },
+ "Microsoft.Build.Tasks.Core/15.7.179": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "15.7.179",
+ "Microsoft.Build.Utilities.Core": "15.7.179",
+ "System.Collections.Immutable": "1.3.1",
+ "System.Linq.Parallel": "4.0.1",
+ "System.Reflection.Metadata": "1.4.2",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.Writer": "4.0.0"
+ }
+ },
+ "Microsoft.Build.Tasks.Git/1.0.0-beta2-19367-01": {},
+ "Microsoft.Build.Utilities.Core/15.7.179": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "15.7.179",
+ "System.Collections.Immutable": "1.3.1",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Text.Encoding.CodePages": "4.4.0"
+ }
+ },
+ "Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2": {},
+ "Microsoft.SourceLink.Common/1.0.0-beta2-19367-01": {},
+ "Microsoft.SourceLink.GitHub/1.0.0-beta2-19367-01": {
+ "dependencies": {
+ "Microsoft.Build.Tasks.Git": "1.0.0-beta2-19367-01",
+ "Microsoft.SourceLink.Common": "1.0.0-beta2-19367-01"
+ }
+ },
+ "Microsoft.SourceLink.Vsts.Git/1.0.0-beta2-19367-01": {
+ "dependencies": {
+ "Microsoft.Build.Tasks.Git": "1.0.0-beta2-19367-01",
+ "Microsoft.SourceLink.Common": "1.0.0-beta2-19367-01"
+ }
+ },
+ "Microsoft.Win32.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "NuGet.Versioning/4.4.0": {
+ "runtime": {
+ "lib/netstandard1.0/NuGet.Versioning.dll": {
+ "assemblyVersion": "4.4.0.3",
+ "fileVersion": "4.4.0.4475"
+ }
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.native.System/4.3.0": {},
+ "runtime.native.System.IO.Compression/4.3.0": {},
+ "runtime.native.System.Net.Http/4.3.0": {},
+ "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {},
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "System.Buffers/4.5.0": {},
+ "System.Collections/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Collections.Immutable/1.3.1": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource/4.0.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime/4.0.11": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Globalization/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars/4.3.0": {
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions/4.3.0": {
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression/4.3.0": {
+ "dependencies": {
+ "System.Buffers": "4.5.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem/4.3.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.Pipes/4.3.0": {
+ "dependencies": {
+ "System.Buffers": "4.5.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes.AccessControl/4.3.0": {
+ "dependencies": {
+ "System.IO.Pipes": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.AccessControl": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0"
+ }
+ },
+ "System.Linq/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions/4.1.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Linq.Parallel/4.0.1": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Memory/4.5.1": {},
+ "System.Net.Http/4.3.3": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Net.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets/4.3.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Numerics.Vectors/4.4.0": {},
+ "System.ObjectModel/4.0.12": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Reflection/4.3.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit/4.0.1": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration/4.0.1": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight/4.0.1": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions/4.3.0": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata/1.4.2": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Collections.Immutable": "1.3.1",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions/4.1.0": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.Writer/4.0.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Runtime/4.3.0": {},
+ "System.Runtime.CompilerServices.Unsafe/4.5.0": {
+ "runtime": {
+ "lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll": {
+ "assemblyVersion": "4.0.4.0",
+ "fileVersion": "0.0.0.0"
+ }
+ }
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader/4.0.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics/4.3.0": {
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives/4.1.1": {
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Thread": "4.3.0"
+ }
+ },
+ "System.Security.Claims/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Security.Principal": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Security.Cryptography.Cng/4.3.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp/4.3.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Security.Cryptography.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Security.Principal/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows/4.3.0": {
+ "dependencies": {
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Claims": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Text.Encoding/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages/4.4.0": {},
+ "System.Text.Encoding.Extensions/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Threading/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped/4.3.0": {
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Dataflow/4.6.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions/4.5.1": {},
+ "System.Threading.Thread/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.DotNet.Arcade.Sdk/1.0.0-beta.19577.5": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Bcl.Json.Sources/4.6.0-preview4.19202.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-x8iaj2UR3w7ml2O9IZVKDClGm9VMCYfziBZlZv7NuyDoiO2uixiCCHaeMNk3k4eXL0PYgdEqNGpElPUOHc9gOw==",
+ "path": "microsoft.bcl.json.sources/4.6.0-preview4.19202.2",
+ "hashPath": "microsoft.bcl.json.sources.4.6.0-preview4.19202.2.nupkg.sha512"
+ },
+ "Microsoft.Build/15.7.179": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6dlTH4krOxTDd0EQY05VgH7RgSWLoxHvI5pfGXBKccfhKyOnkySQwgu2LVsBS0uIcjXdGuvOPJ1olUD6C6y5YA==",
+ "path": "microsoft.build/15.7.179",
+ "hashPath": "microsoft.build.15.7.179.nupkg.sha512"
+ },
+ "Microsoft.Build.Framework/15.7.179": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5ThHhQLruyqwv0wKu32rI88JK8/MgG8f2Ztb1g3facEshsFHF9npp0w7bhmwEO5d8dvj43wCGRYhfPit8roGZg==",
+ "path": "microsoft.build.framework/15.7.179",
+ "hashPath": "microsoft.build.framework.15.7.179.nupkg.sha512"
+ },
+ "Microsoft.Build.Tasks.Core/15.7.179": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-IcyaCiuYzK4RU/ctgJiziv1OyURo0WYtqfvqI9u8Iru8Tw57oLILEXQQKRATJYZZN1uFvlGR0sro1GzdgdTaKQ==",
+ "path": "microsoft.build.tasks.core/15.7.179",
+ "hashPath": "microsoft.build.tasks.core.15.7.179.nupkg.sha512"
+ },
+ "Microsoft.Build.Tasks.Git/1.0.0-beta2-19367-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3kbkb7aUF41YuJnQzoCJRbjb6bgYY3KHlJ9GGJZ30Y5ytdFusLAC5o3/kfE+Vm6slvu4EBgIwMUknL6U+Pu9uA==",
+ "path": "microsoft.build.tasks.git/1.0.0-beta2-19367-01",
+ "hashPath": "microsoft.build.tasks.git.1.0.0-beta2-19367-01.nupkg.sha512"
+ },
+ "Microsoft.Build.Utilities.Core/15.7.179": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-pTknb2ngDSDe98AlBKSi5CkaX7EBRVDkam0VA9+voGRGWopB+5Zw2IADbxtBdN6A8R+D+PDM1jwhBep2McBGaw==",
+ "path": "microsoft.build.utilities.core/15.7.179",
+ "hashPath": "microsoft.build.utilities.core.15.7.179.nupkg.sha512"
+ },
+ "Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-m+pJPEO7HyXvrOna5Sr3s77ewXonjYWJTNL6drh8xACnMNxnlqUDKx9HfGeSE9wmfY0lQwppaeZpFTPGaH7kZg==",
+ "path": "microsoft.netframework.referenceassemblies/1.0.0-preview.2",
+ "hashPath": "microsoft.netframework.referenceassemblies.1.0.0-preview.2.nupkg.sha512"
+ },
+ "Microsoft.SourceLink.Common/1.0.0-beta2-19367-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-T6ZEkbRgqcmDoTQDn0ES4FcXiq6uOiqPmbb+hCnKQ/i45W3WjM1+hfNGmsXvTK/e/AqEGiqtXJIi9ZtmbHnzHQ==",
+ "path": "microsoft.sourcelink.common/1.0.0-beta2-19367-01",
+ "hashPath": "microsoft.sourcelink.common.1.0.0-beta2-19367-01.nupkg.sha512"
+ },
+ "Microsoft.SourceLink.GitHub/1.0.0-beta2-19367-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+Zfc8EddeIPTy9w26xrMOqIL5k5fPICfoYGPMhvlCcmENVT0pslIvrOzRaEvv1UgUL1cjbGRO8SXa1HtoVEhPA==",
+ "path": "microsoft.sourcelink.github/1.0.0-beta2-19367-01",
+ "hashPath": "microsoft.sourcelink.github.1.0.0-beta2-19367-01.nupkg.sha512"
+ },
+ "Microsoft.SourceLink.Vsts.Git/1.0.0-beta2-19367-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-vfYRwh2jIQ5XFmqk9BebaGnj3tL9p1hkZ270NMXutiE7jCGH1zMB+3HCPec6DpnC4V3XX1oWlwAXoxNtXB90pQ==",
+ "path": "microsoft.sourcelink.vsts.git/1.0.0-beta2-19367-01",
+ "hashPath": "microsoft.sourcelink.vsts.git.1.0.0-beta2-19367-01.nupkg.sha512"
+ },
+ "Microsoft.Win32.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "path": "microsoft.win32.primitives/4.3.0",
+ "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512"
+ },
+ "NuGet.Versioning/4.4.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-lELQzXW54Y4JB9r1PFoI+QBtSVDwxUl6wAWs0XpZ6Dp+sIBkAiA6TcddQ9vRhd5vrTldKjlw2nUdmAqcqdM8qg==",
+ "path": "nuget.versioning/4.4.0",
+ "hashPath": "nuget.versioning.4.4.0.nupkg.sha512"
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==",
+ "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==",
+ "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==",
+ "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.native.System/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "path": "runtime.native.system/4.3.0",
+ "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "path": "runtime.native.system.io.compression/4.3.0",
+ "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Net.Http/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "path": "runtime.native.system.net.http/4.3.0",
+ "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "path": "runtime.native.system.security.cryptography.apple/4.3.0",
+ "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==",
+ "path": "runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==",
+ "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==",
+ "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==",
+ "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0",
+ "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==",
+ "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==",
+ "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==",
+ "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==",
+ "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==",
+ "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "System.Buffers/4.5.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==",
+ "path": "system.buffers/4.5.0",
+ "hashPath": "system.buffers.4.5.0.nupkg.sha512"
+ },
+ "System.Collections/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "path": "system.collections/4.3.0",
+ "hashPath": "system.collections.4.3.0.nupkg.sha512"
+ },
+ "System.Collections.Concurrent/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "path": "system.collections.concurrent/4.3.0",
+ "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512"
+ },
+ "System.Collections.Immutable/1.3.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-n+AGX7zmiZumW9aggOkXaHzUeAS3EfeTErnkKCusyONUozbTv+kMb8VE36m+ldV6kF9g57G2c641KCdgH9E0pg==",
+ "path": "system.collections.immutable/1.3.1",
+ "hashPath": "system.collections.immutable.1.3.1.nupkg.sha512"
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "path": "system.diagnostics.debug/4.3.0",
+ "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.DiagnosticSource/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "path": "system.diagnostics.diagnosticsource/4.3.0",
+ "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.TraceSource/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "path": "system.diagnostics.tracesource/4.0.0",
+ "hashPath": "system.diagnostics.tracesource.4.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "path": "system.diagnostics.tracing/4.3.0",
+ "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
+ },
+ "System.Dynamic.Runtime/4.0.11": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "path": "system.dynamic.runtime/4.0.11",
+ "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512"
+ },
+ "System.Globalization/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "path": "system.globalization/4.3.0",
+ "hashPath": "system.globalization.4.3.0.nupkg.sha512"
+ },
+ "System.Globalization.Calendars/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "path": "system.globalization.calendars/4.3.0",
+ "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512"
+ },
+ "System.Globalization.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "path": "system.globalization.extensions/4.3.0",
+ "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.IO/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "path": "system.io/4.3.0",
+ "hashPath": "system.io.4.3.0.nupkg.sha512"
+ },
+ "System.IO.Compression/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "path": "system.io.compression/4.3.0",
+ "hashPath": "system.io.compression.4.3.0.nupkg.sha512"
+ },
+ "System.IO.FileSystem/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "path": "system.io.filesystem/4.3.0",
+ "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512"
+ },
+ "System.IO.FileSystem.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "path": "system.io.filesystem.primitives/4.3.0",
+ "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.IO.Pipes/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "path": "system.io.pipes/4.3.0",
+ "hashPath": "system.io.pipes.4.3.0.nupkg.sha512"
+ },
+ "System.IO.Pipes.AccessControl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NL+cHz8fuWdtDhUqgRG10XLgtuPnDcapxgcsW3c2Cax/6S1MMniaVD53keNCkojWXzg8lkMDUIEnY0gCEJ7+Mw==",
+ "path": "system.io.pipes.accesscontrol/4.3.0",
+ "hashPath": "system.io.pipes.accesscontrol.4.3.0.nupkg.sha512"
+ },
+ "System.Linq/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "path": "system.linq/4.3.0",
+ "hashPath": "system.linq.4.3.0.nupkg.sha512"
+ },
+ "System.Linq.Expressions/4.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==",
+ "path": "system.linq.expressions/4.1.0",
+ "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512"
+ },
+ "System.Linq.Parallel/4.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-J7XCa7n2cFn32uLbtceXfBFhgCk5M++50lylHKNbqTiJkw5y4Tglpi6amuJNPCvj9bLzNSI7rs1fi4joLMNRgg==",
+ "path": "system.linq.parallel/4.0.1",
+ "hashPath": "system.linq.parallel.4.0.1.nupkg.sha512"
+ },
+ "System.Memory/4.5.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==",
+ "path": "system.memory/4.5.1",
+ "hashPath": "system.memory.4.5.1.nupkg.sha512"
+ },
+ "System.Net.Http/4.3.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7rCqIbkC/P2+A00NoDH5gnvFhADmX7Dc4INvsOajbU1MVhktE9vZNrjPtF82N6Uo7obK+yzlrPUv/M+snnN/9w==",
+ "path": "system.net.http/4.3.3",
+ "hashPath": "system.net.http.4.3.3.nupkg.sha512"
+ },
+ "System.Net.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "path": "system.net.primitives/4.3.0",
+ "hashPath": "system.net.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Net.Sockets/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "path": "system.net.sockets/4.3.0",
+ "hashPath": "system.net.sockets.4.3.0.nupkg.sha512"
+ },
+ "System.Numerics.Vectors/4.4.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==",
+ "path": "system.numerics.vectors/4.4.0",
+ "hashPath": "system.numerics.vectors.4.4.0.nupkg.sha512"
+ },
+ "System.ObjectModel/4.0.12": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
+ "path": "system.objectmodel/4.0.12",
+ "hashPath": "system.objectmodel.4.0.12.nupkg.sha512"
+ },
+ "System.Reflection/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "path": "system.reflection/4.3.0",
+ "hashPath": "system.reflection.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Emit/4.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==",
+ "path": "system.reflection.emit/4.0.1",
+ "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512"
+ },
+ "System.Reflection.Emit.ILGeneration/4.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
+ "path": "system.reflection.emit.ilgeneration/4.0.1",
+ "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512"
+ },
+ "System.Reflection.Emit.Lightweight/4.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
+ "path": "system.reflection.emit.lightweight/4.0.1",
+ "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512"
+ },
+ "System.Reflection.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "path": "system.reflection.extensions/4.3.0",
+ "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/1.4.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KYPNMDrLB2R+G5JJiJ2fjBpihtktKVIjsirmyyv+VDo5rQkIR9BWeCYM1wDSzbQatWNZ/NQfPsQyTB1Ui3qBfQ==",
+ "path": "system.reflection.metadata/1.4.2",
+ "hashPath": "system.reflection.metadata.1.4.2.nupkg.sha512"
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "path": "system.reflection.primitives/4.3.0",
+ "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.TypeExtensions/4.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
+ "path": "system.reflection.typeextensions/4.1.0",
+ "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512"
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "path": "system.resources.resourcemanager/4.3.0",
+ "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
+ },
+ "System.Resources.Writer/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Hz+ZS81dVSNy93YyJhhL3GwzmMhfcQ8FbUooAt9MO4joIe0vPM4gclv0C82ko1tuN/Kw6CvZFLYkgk6n9xvEkg==",
+ "path": "system.resources.writer/4.0.0",
+ "hashPath": "system.resources.writer.4.0.0.nupkg.sha512"
+ },
+ "System.Runtime/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "path": "system.runtime/4.3.0",
+ "hashPath": "system.runtime.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.CompilerServices.Unsafe/4.5.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YrzNWduCDHhUaSRBxHxL11UkM2fD6y8hITHis4/LbQZ6vj3vdRjoH3IoPWWC9uDXK2wHIqn+b5gv1Np/VKyM1g==",
+ "path": "system.runtime.compilerservices.unsafe/4.5.0",
+ "hashPath": "system.runtime.compilerservices.unsafe.4.5.0.nupkg.sha512"
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "path": "system.runtime.extensions/4.3.0",
+ "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "path": "system.runtime.handles/4.3.0",
+ "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "path": "system.runtime.interopservices/4.3.0",
+ "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "path": "system.runtime.interopservices.runtimeinformation/4.3.0",
+ "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Loader/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==",
+ "path": "system.runtime.loader/4.0.0",
+ "hashPath": "system.runtime.loader.4.0.0.nupkg.sha512"
+ },
+ "System.Runtime.Numerics/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "path": "system.runtime.numerics/4.3.0",
+ "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Serialization.Primitives/4.1.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "path": "system.runtime.serialization.primitives/4.1.1",
+ "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512"
+ },
+ "System.Security.AccessControl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AqO2yLFGvtaTREHXTma3XR8RVlj/+nOMA2zlcWd+TGD13eCbl+JbfzCQU4chy7gLRLGJvJHNQAOk1TJc7E7JEQ==",
+ "path": "system.security.accesscontrol/4.3.0",
+ "hashPath": "system.security.accesscontrol.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Claims/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-P/+BR/2lnc4PNDHt/TPBAWHVMLMRHsyYZbU1NphW4HIWzCggz8mJbTQQ3MKljFE7LS3WagmVFuBgoLcFzYXlkA==",
+ "path": "system.security.claims/4.3.0",
+ "hashPath": "system.security.claims.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Algorithms/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "path": "system.security.cryptography.algorithms/4.3.0",
+ "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Cng/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "path": "system.security.cryptography.cng/4.3.0",
+ "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Csp/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "path": "system.security.cryptography.csp/4.3.0",
+ "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Encoding/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "path": "system.security.cryptography.encoding/4.3.0",
+ "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "path": "system.security.cryptography.openssl/4.3.0",
+ "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "path": "system.security.cryptography.primitives/4.3.0",
+ "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.X509Certificates/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "path": "system.security.cryptography.x509certificates/4.3.0",
+ "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Principal/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "path": "system.security.principal/4.3.0",
+ "hashPath": "system.security.principal.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Principal.Windows/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HVL1rvqYtnRCxFsYag/2le/ZfKLK4yMw79+s6FmKXbSCNN0JeAhrYxnRAHFoWRa0dEojsDcbBSpH3l22QxAVyw==",
+ "path": "system.security.principal.windows/4.3.0",
+ "hashPath": "system.security.principal.windows.4.3.0.nupkg.sha512"
+ },
+ "System.Text.Encoding/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "path": "system.text.encoding/4.3.0",
+ "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
+ },
+ "System.Text.Encoding.CodePages/4.4.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6JX7ZdaceBiLKLkYt8zJcp4xTJd1uYyXXEkPw6mnlUIjh1gZPIVKPtRXPmY5kLf6DwZmf5YLwR3QUrRonl7l0A==",
+ "path": "system.text.encoding.codepages/4.4.0",
+ "hashPath": "system.text.encoding.codepages.4.4.0.nupkg.sha512"
+ },
+ "System.Text.Encoding.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "path": "system.text.encoding.extensions/4.3.0",
+ "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Threading/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "path": "system.threading/4.3.0",
+ "hashPath": "system.threading.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Overlapped/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "path": "system.threading.overlapped/4.3.0",
+ "hashPath": "system.threading.overlapped.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "path": "system.threading.tasks/4.3.0",
+ "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks.Dataflow/4.6.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2hRjGu2r2jxRZ55wmcHO/WbdX+YAOz9x6FE8xqkHZgPaoFMKQZRe9dk8xTZIas8fRjxRmzawnTEWIrhlM+Un7w==",
+ "path": "system.threading.tasks.dataflow/4.6.0",
+ "hashPath": "system.threading.tasks.dataflow.4.6.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks.Extensions/4.5.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-WSKUTtLhPR8gllzIWO2x6l4lmAIfbyMAiTlyXAis4QBDonXK4b4S6F8zGARX4/P8wH3DH+sLdhamCiHn+fTU1A==",
+ "path": "system.threading.tasks.extensions/4.5.1",
+ "hashPath": "system.threading.tasks.extensions.4.5.1.nupkg.sha512"
+ },
+ "System.Threading.Thread/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "path": "system.threading.thread/4.3.0",
+ "hashPath": "system.threading.thread.4.3.0.nupkg.sha512"
+ }
+ }
+} \ No newline at end of file
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.dll
new file mode 100755
index 0000000000..1c058721f8
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/NuGet.Versioning.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/NuGet.Versioning.dll
new file mode 100755
index 0000000000..58e3b471d9
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/NuGet.Versioning.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/System.Runtime.CompilerServices.Unsafe.dll b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100755
index 0000000000..55d867e645
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/netcoreapp2.1/System.Runtime.CompilerServices.Unsafe.dll
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/35MSSharedLib1024.snk b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/35MSSharedLib1024.snk
new file mode 100755
index 0000000000..695f1b3877
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/35MSSharedLib1024.snk
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/AspNetCore.snk b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/AspNetCore.snk
new file mode 100755
index 0000000000..e10e4889c1
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/AspNetCore.snk
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/ECMA.snk b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/ECMA.snk
new file mode 100755
index 0000000000..efafe9240e
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/ECMA.snk
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/MSFT.snk b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/MSFT.snk
new file mode 100755
index 0000000000..110b59c7b0
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/MSFT.snk
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/Open.snk b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/Open.snk
new file mode 100755
index 0000000000..22a3cbd253
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/Open.snk
Binary files differ
diff --git a/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/SilverlightPlatformPublicKey.snk b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/SilverlightPlatformPublicKey.snk
new file mode 100755
index 0000000000..60146e8891
--- /dev/null
+++ b/.packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19577.5/tools/snk/SilverlightPlatformPublicKey.snk
Binary files differ