From f3a3130dbe359722f10e408b2de077f3819bbb0b Mon Sep 17 00:00:00 2001 From: Daniel Plaisted Date: Mon, 29 Oct 2018 11:34:47 -0700 Subject: [PATCH] Create script to set up command line build environment --- eng/restore-toolset.ps1 | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 eng/restore-toolset.ps1 diff --git a/eng/restore-toolset.ps1 b/eng/restore-toolset.ps1 new file mode 100644 index 000000000..319669ee1 --- /dev/null +++ b/eng/restore-toolset.ps1 @@ -0,0 +1,50 @@ +function InitializeCustomSDKToolset { + if (-not $restore) { + return + } + + # The following frameworks and tools are used only for testing. + # Do not attempt to install them in source build. + if ($env:DotNetBuildFromSource -eq "true") { + return + } + + # InstallDotNetSharedFramework "1.0.5" + # InstallDotNetSharedFramework "1.1.2" + # InstallDotNetSharedFramework "2.1.0" + + CreateBuildEnvScript +} + +function CreateBuildEnvScript() +{ + Create-Directory $ArtifactsDir + $scriptPath = Join-Path $ArtifactsDir "core-sdk-build-env.bat" + $scriptContents = @" +@echo off +title Core SDK Build ($RepoRoot) +set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 +set DOTNET_MULTILEVEL_LOOKUP=0 + +set PATH=$env:DOTNET_INSTALL_DIR;%PATH% +set NUGET_PACKAGES=$env:NUGET_PACKAGES +"@ + + Out-File -FilePath $scriptPath -InputObject $scriptContents -Encoding ASCII +} + +function InstallDotNetSharedFramework([string]$version) { + $dotnetRoot = $env:DOTNET_INSTALL_DIR + $fxDir = Join-Path $dotnetRoot "shared\Microsoft.NETCore.App\$version" + + if (!(Test-Path $fxDir)) { + $installScript = GetDotNetInstallScript $dotnetRoot + & $installScript -Version $version -InstallDir $dotnetRoot -Runtime "dotnet" + + if($lastExitCode -ne 0) { + throw "Failed to install shared Framework $version to '$dotnetRoot' (exit code '$lastExitCode')." + } + } +} + +InitializeCustomSDKToolset \ No newline at end of file